@@ -417,3 +417,107 @@ func TestStep_ShellCommand(t *testing.T) {
417
417
})
418
418
}
419
419
}
420
+
421
+ func TestReadWorkflow_WorkflowDispatchConfig (t * testing.T ) {
422
+ yaml := `
423
+ name: local-action-docker-url
424
+ `
425
+ workflow , err := ReadWorkflow (strings .NewReader (yaml ))
426
+ assert .NoError (t , err , "read workflow should succeed" )
427
+ workflowDispatch := workflow .WorkflowDispatchConfig ()
428
+ assert .Nil (t , workflowDispatch )
429
+
430
+ yaml = `
431
+ name: local-action-docker-url
432
+ on: push
433
+ `
434
+ workflow , err = ReadWorkflow (strings .NewReader (yaml ))
435
+ assert .NoError (t , err , "read workflow should succeed" )
436
+ workflowDispatch = workflow .WorkflowDispatchConfig ()
437
+ assert .Nil (t , workflowDispatch )
438
+
439
+ yaml = `
440
+ name: local-action-docker-url
441
+ on: workflow_dispatch
442
+ `
443
+ workflow , err = ReadWorkflow (strings .NewReader (yaml ))
444
+ assert .NoError (t , err , "read workflow should succeed" )
445
+ workflowDispatch = workflow .WorkflowDispatchConfig ()
446
+ assert .NotNil (t , workflowDispatch )
447
+ assert .Nil (t , workflowDispatch .Inputs )
448
+
449
+ yaml = `
450
+ name: local-action-docker-url
451
+ on: [push, pull_request]
452
+ `
453
+ workflow , err = ReadWorkflow (strings .NewReader (yaml ))
454
+ assert .NoError (t , err , "read workflow should succeed" )
455
+ workflowDispatch = workflow .WorkflowDispatchConfig ()
456
+ assert .Nil (t , workflowDispatch )
457
+
458
+ yaml = `
459
+ name: local-action-docker-url
460
+ on: [push, workflow_dispatch]
461
+ `
462
+ workflow , err = ReadWorkflow (strings .NewReader (yaml ))
463
+ assert .NoError (t , err , "read workflow should succeed" )
464
+ workflowDispatch = workflow .WorkflowDispatchConfig ()
465
+ assert .NotNil (t , workflowDispatch )
466
+ assert .Nil (t , workflowDispatch .Inputs )
467
+
468
+ yaml = `
469
+ name: local-action-docker-url
470
+ on:
471
+ - push
472
+ - workflow_dispatch
473
+ `
474
+ workflow , err = ReadWorkflow (strings .NewReader (yaml ))
475
+ assert .NoError (t , err , "read workflow should succeed" )
476
+ workflowDispatch = workflow .WorkflowDispatchConfig ()
477
+ assert .NotNil (t , workflowDispatch )
478
+ assert .Nil (t , workflowDispatch .Inputs )
479
+
480
+ yaml = `
481
+ name: local-action-docker-url
482
+ on:
483
+ push:
484
+ pull_request:
485
+ `
486
+ workflow , err = ReadWorkflow (strings .NewReader (yaml ))
487
+ assert .NoError (t , err , "read workflow should succeed" )
488
+ workflowDispatch = workflow .WorkflowDispatchConfig ()
489
+ assert .Nil (t , workflowDispatch )
490
+
491
+ yaml = `
492
+ name: local-action-docker-url
493
+ on:
494
+ push:
495
+ pull_request:
496
+ workflow_dispatch:
497
+ inputs:
498
+ logLevel:
499
+ description: 'Log level'
500
+ required: true
501
+ default: 'warning'
502
+ type: choice
503
+ options:
504
+ - info
505
+ - warning
506
+ - debug
507
+ `
508
+ workflow , err = ReadWorkflow (strings .NewReader (yaml ))
509
+ assert .NoError (t , err , "read workflow should succeed" )
510
+ workflowDispatch = workflow .WorkflowDispatchConfig ()
511
+ assert .NotNil (t , workflowDispatch )
512
+ assert .Equal (t , WorkflowDispatchInput {
513
+ Default : "warning" ,
514
+ Description : "Log level" ,
515
+ Options : []string {
516
+ "info" ,
517
+ "warning" ,
518
+ "debug" ,
519
+ },
520
+ Required : true ,
521
+ Type : "choice" ,
522
+ }, workflowDispatch .Inputs ["logLevel" ])
523
+ }
0 commit comments