@@ -168,6 +168,46 @@ func TestRunner_MissingTriggersAreNotRequired(t *testing.T) {
168
168
require .NoError (t , err )
169
169
}
170
170
171
+ func TestRunner_MissingTriggerStubsAreNotRequired (t * testing.T ) {
172
+ anyConfig := & basictrigger.Config {Name : "name" , Number : 123 }
173
+ anyConfig2 := & actionandtrigger.Config {Name : "b" }
174
+ anyTrigger := & basictrigger.Outputs {CoolOutput : "cool" }
175
+
176
+ trigger , err := basictriggermock .NewBasicCapability (t )
177
+ require .NoError (t , err )
178
+ trigger .Trigger = func (_ context.Context , config * basictrigger.Config ) (* basictrigger.Outputs , error ) {
179
+ return anyTrigger , nil
180
+ }
181
+
182
+ _ , err = actionandtriggermock .NewBasicCapability (t )
183
+ require .NoError (t , err )
184
+
185
+ runner := testutils .NewDonRunner (t , nil )
186
+ require .NoError (t , err )
187
+
188
+ anyResult := "ok"
189
+ runner .Run (& sdk.WorkflowArgs [sdk.DonRuntime ]{
190
+ Handlers : []sdk.Handler [sdk.DonRuntime ]{
191
+ sdk .NewDonHandler (
192
+ basictrigger.Basic {}.Trigger (anyConfig ),
193
+ func (rt sdk.DonRuntime , input * basictrigger.Outputs ) (string , error ) {
194
+ return anyResult , nil
195
+ },
196
+ ),
197
+ sdk .NewDonHandler (
198
+ actionandtrigger.Basic {}.Trigger (anyConfig2 ),
199
+ func (rt sdk.DonRuntime , in * actionandtrigger.TriggerEvent ) (* string , error ) {
200
+ assert .Fail (t , "This trigger shouldn'tb fire" )
201
+ return nil , nil
202
+ },
203
+ ),
204
+ },
205
+ })
206
+
207
+ _ , _ , err = runner .Result ()
208
+ require .NoError (t , err )
209
+ }
210
+
171
211
func TestRunner_FiringTwoTriggersReturnsAnError (t * testing.T ) {
172
212
anyConfig1 := & basictrigger.Config {Name : "a" , Number : 1 }
173
213
anyConfig2 := & actionandtrigger.Config {Name : "b" }
@@ -254,6 +294,47 @@ func TestRunner_StrictTriggers_FailsIfTriggerIsNotRegistered(t *testing.T) {
254
294
assert .Error (t , err )
255
295
}
256
296
297
+ func TestRunner_StrictTriggers_FailsIfTriggerIsNotStubbed (t * testing.T ) {
298
+ anyConfig := & basictrigger.Config {Name : "name" , Number : 123 }
299
+ anyConfig2 := & actionandtrigger.Config {Name : "b" }
300
+ anyTrigger := & basictrigger.Outputs {CoolOutput : "cool" }
301
+
302
+ trigger , err := basictriggermock .NewBasicCapability (t )
303
+ require .NoError (t , err )
304
+ trigger .Trigger = func (_ context.Context , config * basictrigger.Config ) (* basictrigger.Outputs , error ) {
305
+ return anyTrigger , nil
306
+ }
307
+
308
+ _ , err = actionandtriggermock .NewBasicCapability (t )
309
+ require .NoError (t , err )
310
+
311
+ runner := testutils .NewDonRunner (t , nil )
312
+ require .NoError (t , err )
313
+ runner .SetStrictTriggers (true )
314
+
315
+ anyResult := "ok"
316
+ runner .Run (& sdk.WorkflowArgs [sdk.DonRuntime ]{
317
+ Handlers : []sdk.Handler [sdk.DonRuntime ]{
318
+ sdk .NewDonHandler (
319
+ basictrigger.Basic {}.Trigger (anyConfig ),
320
+ func (rt sdk.DonRuntime , input * basictrigger.Outputs ) (string , error ) {
321
+ return anyResult , nil
322
+ },
323
+ ),
324
+ sdk .NewDonHandler (
325
+ actionandtrigger.Basic {}.Trigger (anyConfig2 ),
326
+ func (rt sdk.DonRuntime , in * actionandtrigger.TriggerEvent ) (* string , error ) {
327
+ assert .Fail (t , "This trigger shouldn'tb fire" )
328
+ return nil , nil
329
+ },
330
+ ),
331
+ },
332
+ })
333
+
334
+ _ , _ , err = runner .Result ()
335
+ assert .Error (t , err )
336
+ }
337
+
257
338
func TestRunner_CanStartInNodeMode (t * testing.T ) {
258
339
anyConfig := & nodetrigger.Config {Name : "name" , Number : 123 }
259
340
anyTrigger := & nodetrigger.Outputs {CoolOutput : "cool" }
0 commit comments