@@ -14,6 +14,8 @@ import any from '@travi/any';
1414
1515Before ( async function ( ) {
1616 this . prTriggerConfig = any . simpleObject ( ) ;
17+
18+ this . injectedJobs = [ ] ;
1719} ) ;
1820
1921Given ( 'a CI workflow exists' , async function ( ) {
@@ -32,6 +34,25 @@ Given('a CI workflow exists', async function () {
3234 } ) ;
3335} ) ;
3436
37+ Given ( 'a {string} job exists' , async function ( jobName ) {
38+ const existingWorkflowContents = await loadWorkflowFile ( { projectRoot : this . projectRoot , name : 'node-ci' } ) ;
39+ const job = any . simpleObject ( ) ;
40+
41+ this . injectedJobs [ jobName ] = job ;
42+
43+ await writeWorkflowFile ( {
44+ projectRoot : this . projectRoot ,
45+ name : 'node-ci' ,
46+ config : {
47+ ...existingWorkflowContents ,
48+ jobs : {
49+ ...existingWorkflowContents . jobs ,
50+ [ jobName ] : job
51+ }
52+ }
53+ } ) ;
54+ } ) ;
55+
3556Then ( 'the ci config remains unchanged' , async function ( ) {
3657 const { on : triggers , jobs} = await loadWorkflowFile ( { projectRoot : this . projectRoot , name : 'node-ci' } ) ;
3758
@@ -79,3 +100,21 @@ Then('the verification workflow is created', async function () {
79100 ]
80101 ) ;
81102} ) ;
103+
104+ Then ( 'the workflow-result job exists' , async function ( ) {
105+ const { jobs} = await loadWorkflowFile ( { projectRoot : this . projectRoot , name : 'node-ci' } ) ;
106+
107+ assert . include ( Object . keys ( jobs ) , 'workflow-result' ) ;
108+ } ) ;
109+
110+ Then ( 'the {string} job is unchanged' , async function ( jobName ) {
111+ const { jobs} = await loadWorkflowFile ( { projectRoot : this . projectRoot , name : 'node-ci' } ) ;
112+
113+ assert . deepEqual ( jobs [ jobName ] , this . injectedJobs [ jobName ] ) ;
114+ } ) ;
115+
116+ Then ( 'the workflow-result job depends on {string}' , async function ( jobName ) {
117+ const { jobs} = await loadWorkflowFile ( { projectRoot : this . projectRoot , name : 'node-ci' } ) ;
118+
119+ assert . include ( jobs [ 'workflow-result' ] . needs , jobName ) ;
120+ } ) ;
0 commit comments