@@ -133,9 +133,9 @@ func TestInvokeAsyncFn(t *testing.T) {
133133 a .NilNow (err )
134134 a .EqualNow (ret , []any {})
135135
136- a .PanicOfNow (func () {
137- invokeAsyncFn (func (ctx context.Context , vals ... int ) {}, ctx , []any {nil })
138- }, "variadic function unsupported" )
136+ // a.PanicOfNow(func() {
137+ // invokeAsyncFn(func(ctx context.Context, vals ...int) {}, ctx, []any{nil})
138+ // }, "variadic function unsupported")
139139
140140 ret , err = invokeAsyncFn (func () int {
141141 panic (expectErr )
@@ -144,6 +144,52 @@ func TestInvokeAsyncFn(t *testing.T) {
144144 a .EqualNow (ret , []any {0 })
145145}
146146
147+ func TestInvokeVariadicAsyncFn (t * testing.T ) {
148+ a := assert .New (t )
149+ ctx := context .Background ()
150+
151+ ret , err := invokeAsyncFn (func (vals ... int ) {}, ctx , []any {})
152+ a .NilNow (err )
153+ a .EqualNow (ret , []any {})
154+
155+ ret , err = invokeAsyncFn (func (ctx context.Context , vals ... int ) {}, ctx , []any {})
156+ a .NilNow (err )
157+ a .EqualNow (ret , []any {})
158+
159+ ret , err = invokeAsyncFn (func (vals ... int ) {}, ctx , []any {1 , 2 , 3 })
160+ a .NilNow (err )
161+ a .EqualNow (ret , []any {})
162+
163+ ret , err = invokeAsyncFn (func (ctx context.Context , vals ... int ) {}, ctx , []any {ctx , 1 , 2 , 3 })
164+ a .NilNow (err )
165+ a .EqualNow (ret , []any {})
166+
167+ ret , err = invokeAsyncFn (func (ctx context.Context , s string , vals ... int ) {}, ctx , []any {"test" , 1 })
168+ a .NilNow (err )
169+ a .EqualNow (ret , []any {})
170+
171+ ret , err = invokeAsyncFn (func (vals ... int ) int {
172+ if len (vals ) > 0 {
173+ return vals [0 ]
174+ }
175+ return - 1
176+ }, ctx , []any {1 , 2 , 3 })
177+ a .NilNow (err )
178+ a .EqualNow (ret , []any {1 })
179+
180+ a .PanicNow (func () {
181+ invokeAsyncFn (func (ctx context.Context , s string , vals ... int ) {}, ctx , []any {})
182+ })
183+
184+ a .PanicNow (func () {
185+ invokeAsyncFn (func (ctx context.Context , s string , vals ... int ) {}, ctx , []any {"a" , "b" })
186+ })
187+
188+ a .PanicNow (func () {
189+ invokeAsyncFn (func (ctx context.Context , vals ... int ) {}, ctx , []any {"a" , "b" })
190+ })
191+ }
192+
147193func TestInvokeAsyncFnWithParams (t * testing.T ) {
148194 a := assert .New (t )
149195 ctx := context .Background ()
0 commit comments