-
Notifications
You must be signed in to change notification settings - Fork 3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added tests for `verifySignedCommits` workflow See: #13604
- Loading branch information
1 parent
4428ec7
commit a01c9c3
Showing
4 changed files
with
152 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
27 changes: 27 additions & 0 deletions
27
workflow_tests/assertions/verifySignedCommitsAssertions.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
const utils = require('../utils/utils'); | ||
|
||
const assertVerifySignedCommitsJobExecuted = (workflowResult, didExecute = true) => { | ||
const steps = [ | ||
utils.getStepAssertion( | ||
'Verify signed commits', | ||
true, | ||
null, | ||
'VERIFYSIGNEDCOMMITS', | ||
'Verify signed commits', | ||
[{key: 'GITHUB_TOKEN', value: '***'}], | ||
[], | ||
), | ||
]; | ||
|
||
for (const expectedStep of steps) { | ||
if (didExecute) { | ||
expect(workflowResult).toEqual(expect.arrayContaining([expectedStep])); | ||
} else { | ||
expect(workflowResult).not.toEqual(expect.arrayContaining([expectedStep])); | ||
} | ||
} | ||
}; | ||
|
||
module.exports = { | ||
assertVerifySignedCommitsJobExecuted, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
const utils = require('../utils/utils'); | ||
|
||
// verifysignedcommits | ||
const VERIFYSIGNEDCOMMITS__VERIFYSIGNEDCOMMITS__VERIFY_SIGNED_COMMITS__STEP_MOCK = utils.getMockStep( | ||
'Verify signed commits', | ||
'Verify signed commits', | ||
'VERIFYSIGNEDCOMMITS', | ||
['GITHUB_TOKEN'], | ||
[], | ||
); | ||
const VERIFYSIGNEDCOMMITS__VERIFYSIGNEDCOMMITS__STEP_MOCKS = [ | ||
VERIFYSIGNEDCOMMITS__VERIFYSIGNEDCOMMITS__VERIFY_SIGNED_COMMITS__STEP_MOCK, | ||
]; | ||
|
||
module.exports = { | ||
VERIFYSIGNEDCOMMITS__VERIFYSIGNEDCOMMITS__STEP_MOCKS, | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
const path = require('path'); | ||
const kieMockGithub = require('@kie/mock-github'); | ||
const utils = require('./utils/utils'); | ||
const assertions = require('./assertions/verifySignedCommitsAssertions'); | ||
const mocks = require('./mocks/verifySignedCommitsMocks'); | ||
const eAct = require('./utils/ExtendedAct'); | ||
|
||
jest.setTimeout(60 * 1000); | ||
let mockGithub; | ||
const FILES_TO_COPY_INTO_TEST_REPO = [ | ||
{ | ||
src: path.resolve(__dirname, '..', '.github', 'actions'), | ||
dest: '.github/actions', | ||
}, | ||
{ | ||
src: path.resolve(__dirname, '..', '.github', 'libs'), | ||
dest: '.github/libs', | ||
}, | ||
{ | ||
src: path.resolve(__dirname, '..', '.github', 'scripts'), | ||
dest: '.github/scripts', | ||
}, | ||
{ | ||
src: path.resolve(__dirname, '..', '.github', 'workflows', 'verifySignedCommits.yml'), | ||
dest: '.github/workflows/verifySignedCommits.yml', | ||
}, | ||
]; | ||
|
||
describe('test workflow verifySignedCommits', () => { | ||
const githubToken = 'dummy_github_token'; | ||
const actor = 'Dummy Actor'; | ||
beforeEach(async () => { | ||
// create a local repository and copy required files | ||
mockGithub = new kieMockGithub.MockGithub({ | ||
repo: { | ||
testVerifySignedCommitsWorkflowRepo: { | ||
files: FILES_TO_COPY_INTO_TEST_REPO, | ||
}, | ||
}, | ||
}); | ||
|
||
await mockGithub.setup(); | ||
}); | ||
|
||
afterEach(async () => { | ||
await mockGithub.teardown(); | ||
}); | ||
describe('pull request opened', () => { | ||
const event = 'pull_request'; | ||
const eventOptions = { | ||
action: 'opened', | ||
}; | ||
it('test stub', async () => { | ||
const repoPath = mockGithub.repo.getPath('testVerifySignedCommitsWorkflowRepo') || ''; | ||
const workflowPath = path.join(repoPath, '.github', 'workflows', 'verifySignedCommits.yml'); | ||
let act = new eAct.ExtendedAct(repoPath, workflowPath); | ||
act = utils.setUpActParams( | ||
act, | ||
event, | ||
eventOptions, | ||
{}, | ||
githubToken, | ||
); | ||
const testMockSteps = { | ||
verifySignedCommits: mocks.VERIFYSIGNEDCOMMITS__VERIFYSIGNEDCOMMITS__STEP_MOCKS, | ||
}; | ||
const result = await act | ||
.runEvent(event, { | ||
workflowFile: path.join(repoPath, '.github', 'workflows'), | ||
mockSteps: testMockSteps, | ||
actor, | ||
}); | ||
|
||
assertions.assertVerifySignedCommitsJobExecuted(result); | ||
}); | ||
}); | ||
describe('pull request synchronized', () => { | ||
const event = 'pull_request'; | ||
const eventOptions = { | ||
action: 'synchronize', | ||
}; | ||
it('test stub', async () => { | ||
const repoPath = mockGithub.repo.getPath('testVerifySignedCommitsWorkflowRepo') || ''; | ||
const workflowPath = path.join(repoPath, '.github', 'workflows', 'verifySignedCommits.yml'); | ||
let act = new eAct.ExtendedAct(repoPath, workflowPath); | ||
act = utils.setUpActParams( | ||
act, | ||
event, | ||
eventOptions, | ||
{}, | ||
githubToken, | ||
); | ||
const testMockSteps = { | ||
verifySignedCommits: mocks.VERIFYSIGNEDCOMMITS__VERIFYSIGNEDCOMMITS__STEP_MOCKS, | ||
}; | ||
const result = await act | ||
.runEvent(event, { | ||
workflowFile: path.join(repoPath, '.github', 'workflows'), | ||
mockSteps: testMockSteps, | ||
actor, | ||
}); | ||
|
||
assertions.assertVerifySignedCommitsJobExecuted(result); | ||
}); | ||
}); | ||
}); |