diff --git a/workflow_tests/failureNotifier.test.js b/workflow_tests/failureNotifier.test.ts similarity index 68% rename from workflow_tests/failureNotifier.test.js rename to workflow_tests/failureNotifier.test.ts index d521c6cde00e..8dfc092c7e61 100644 --- a/workflow_tests/failureNotifier.test.js +++ b/workflow_tests/failureNotifier.test.ts @@ -1,28 +1,31 @@ -const path = require('path'); -const kieMockGithub = require('@kie/mock-github'); -const assertions = require('./assertions/failureNotifierAssertions'); -const mocks = require('./mocks/failureNotifierMocks'); -const ExtendedAct = require('./utils/ExtendedAct').default; +import type {MockStep} from '@kie/act-js/build/src/step-mocker/step-mocker.types'; +import type {CreateRepositoryFile} from '@kie/mock-github'; +import {MockGithub} from '@kie/mock-github'; +import path from 'path'; +import assertions from './assertions/failureNotifierAssertions'; +import mocks from './mocks/failureNotifierMocks'; +import ExtendedAct from './utils/ExtendedAct'; jest.setTimeout(90 * 1000); -let mockGithub; +let mockGithub: MockGithub; + const FILES_TO_COPY_INTO_TEST_REPO = [ { src: path.resolve(__dirname, '..', '.github', 'workflows', 'failureNotifier.yml'), dest: '.github/workflows/failureNotifier.yml', }, -]; +] as const satisfies CreateRepositoryFile[]; describe('test workflow failureNotifier', () => { const actor = 'Dummy Actor'; beforeEach(async () => { // create a local repository and copy required files - mockGithub = new kieMockGithub.MockGithub({ + mockGithub = new MockGithub({ repo: { testFailureNotifierWorkflowRepo: { files: FILES_TO_COPY_INTO_TEST_REPO, - // if any branches besides main are need add: pushedBranches: ['staging', 'production'], + // if any branches besides main are needed add: pushedBranches: ['staging', 'production'], }, }, }); @@ -34,11 +37,12 @@ describe('test workflow failureNotifier', () => { await mockGithub.teardown(); }); it('runs the notify failure when main fails', async () => { - const repoPath = mockGithub.repo.getPath('testFailureNotifierWorkflowRepo') || ''; + const repoPath = mockGithub.repo.getPath('testFailureNotifierWorkflowRepo') ?? ''; const workflowPath = path.join(repoPath, '.github', 'workflows', 'failureNotifier.yml'); let act = new ExtendedAct(repoPath, workflowPath); const event = 'workflow_run'; act = act.setEvent({ + // eslint-disable-next-line @typescript-eslint/naming-convention workflow_run: { name: 'Process new code merged to main', conclusion: 'failure', @@ -46,7 +50,8 @@ describe('test workflow failureNotifier', () => { }); const testMockSteps = { notifyFailure: mocks.FAILURENOTIFIER__NOTIFYFAILURE__STEP_MOCKS, - }; + } as const satisfies MockStep; + const result = await act.runEvent(event, { workflowFile: path.join(repoPath, '.github', 'workflows', 'failureNotifier.yml'), mockSteps: testMockSteps,