Skip to content

Commit

Permalink
test: add new utils test file
Browse files Browse the repository at this point in the history
  • Loading branch information
alicelovescake committed Apr 10, 2024
1 parent d606031 commit 6f6a788
Showing 1 changed file with 10 additions and 36 deletions.
46 changes: 10 additions & 36 deletions spec/operations.spec.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import { spawnSync } from 'child_process';
import * as fs from 'fs-extra';
import * as logUtils from '../src/utils/log-util';
import * as os from 'os';
import * as path from 'path';
import simpleGit from 'simple-git';

import { LogLevel, PRChange } from '../src/enums';
import { PRChange } from '../src/enums';
import { initRepo } from '../src/operations/init-repo';
import { setupRemotes } from '../src/operations/setup-remotes';
import { updateManualBackport } from '../src/operations/update-manual-backport';
import { tagBackportReviewers } from '../src/utils';

let dirObject: { dir?: string } | null = null;

Expand All @@ -27,7 +27,7 @@ jest.mock('../src/constants', () => ({
}));

jest.mock('../src/utils', () => ({
...jest.requireActual('../src/utils'),
tagBackportReviewers: jest.fn().mockReturnValue(Promise.resolve()),
isSemverMinorPR: jest.fn().mockReturnValue(false),
}));

Expand Down Expand Up @@ -131,29 +131,25 @@ describe('runner', () => {
const octokit = {
pulls: {
get: jest.fn().mockReturnValue(Promise.resolve({})),
requestReviewers: jest.fn(),
},
issues: {
createComment: jest.fn().mockReturnValue(Promise.resolve({})),
listComments: jest.fn().mockReturnValue(Promise.resolve({ data: [] })),
},
};

const mockContext = { octokit, repo: jest.fn((obj) => obj) };

beforeEach(() => jest.clearAllMocks());
const mockContext = { octokit, repo: jest.fn() };

it('tags reviewers on manual backport creation', async () => {
const context = {
...backportPROpenedEvent,
...mockContext,
};
await updateManualBackport(context, PRChange.OPEN, 1234);
expect(octokit.pulls.requestReviewers).toHaveBeenCalled();
expect(octokit.pulls.requestReviewers).toHaveBeenCalledWith({
pull_number: 7,
team_reviewers: ['wg-releases'],
reviewers: [],
expect(tagBackportReviewers).toHaveBeenCalled();
expect(tagBackportReviewers).toHaveBeenCalledWith({
context,
targetPrNumber: 7,
});
});

Expand All @@ -163,7 +159,7 @@ describe('runner', () => {
...mockContext,
};
await updateManualBackport(context, PRChange.MERGE, 1234);
expect(octokit.pulls.requestReviewers).not.toHaveBeenCalled();
expect(tagBackportReviewers).not.toHaveBeenCalled();
});

it('does not tag reviewers on closed PRs', async () => {
Expand All @@ -172,29 +168,7 @@ describe('runner', () => {
...mockContext,
};
await updateManualBackport(context, PRChange.CLOSE, 1234);
expect(octokit.pulls.requestReviewers).not.toHaveBeenCalled();
});

it('logs an error if requestReviewer fails', async () => {
const error = new Error('Request failed');
mockContext.octokit.pulls.requestReviewers = jest
.fn()
.mockRejectedValue(error);
const context = {
...backportPROpenedEvent,
...mockContext,
};
const logSpy = jest.spyOn(logUtils, 'log');
await updateManualBackport(context, PRChange.OPEN, 1234);

expect(octokit.pulls.requestReviewers).toHaveBeenCalled();

expect(logSpy).toHaveBeenCalledWith(
'tagBackportReviewers',
LogLevel.ERROR,
`Failed to request reviewers for PR #7`,
error,
);
expect(tagBackportReviewers).not.toHaveBeenCalled();
});
});
});

0 comments on commit 6f6a788

Please sign in to comment.