Skip to content

Commit

Permalink
Merge pull request #38678 from software-mansion-labs/ts-migration/fai…
Browse files Browse the repository at this point in the history
…lure-notifier

[No QA][TS migration] Failure notifier TypeScript migration
  • Loading branch information
cristipaval authored Mar 25, 2024
2 parents 9f56f02 + 81ee7ce commit 9726cfb
Showing 1 changed file with 16 additions and 11 deletions.
Original file line number Diff line number Diff line change
@@ -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'],
},
},
});
Expand All @@ -34,19 +37,21 @@ 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',
},
});
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,
Expand Down

0 comments on commit 9726cfb

Please sign in to comment.