Select Git revision
post-release.sh
onboarding.spec.js 13.45 KiB
const apis = require('../../../lib/workers/repository/apis');
const onboarding = require('../../../lib/workers/repository/onboarding');
const logger = require('../../_fixtures/logger');
const defaultConfig = require('../../../lib/config/defaults').getConfig();
describe('lib/workers/repository/onboarding', () => {
describe('isRepoPrivate(config)', () => {
let config;
beforeEach(() => {
config = {
api: {
getFileJson: jest.fn(),
},
packageFiles: [
'package.json',
{
packageFile: 'a/package.json',
},
],
};
});
it('returns true if all are private', async () => {
config.api.getFileJson.mockReturnValueOnce({ private: true });
config.api.getFileJson.mockReturnValueOnce({ private: true });
expect(await onboarding.isRepoPrivate(config)).toBe(true);
});
it('returns false if some are not private', async () => {
config.api.getFileJson.mockReturnValueOnce({ private: true });
config.api.getFileJson.mockReturnValueOnce({});
expect(await onboarding.isRepoPrivate(config)).toBe(false);
});
});
describe('ensurePr(config, branchUpgrades)', () => {
let config;
let branchUpgrades;
beforeEach(() => {
config = {
branchPrefix: 'renovate/',
errors: [],
warnings: [],
api: {
createPr: jest.fn(() => ({ displayNumber: 1 })),
getBranchPr: jest.fn(),
updatePr: jest.fn(),
},
logger,
};
branchUpgrades = [];
});
it('creates pr', async () => {
config.contentBaseBranch = 'next';
await onboarding.ensurePr(config, branchUpgrades);
expect(config.api.createPr.mock.calls.length).toBe(1);
expect(config.api.updatePr.mock.calls.length).toBe(0);
expect(config.api.createPr.mock.calls).toMatchSnapshot();
});
it('creates pr with preset descriptions', async () => {
config.description = ['Description 1', 'Description 2'];
await onboarding.ensurePr(config, branchUpgrades);
expect(config.api.createPr.mock.calls.length).toBe(1);
expect(config.api.updatePr.mock.calls.length).toBe(0);
expect(
config.api.createPr.mock.calls[0][2].indexOf('## Configuration Summary')
).not.toBe(-1);
expect(config.api.createPr.mock.calls[0]).toMatchSnapshot();
});
it('creates pr with dynamic descriptions', async () => {
config.labels = ['renovate', 'upgrades'];
config.assignees = ['rarkins'];
config.schedule = ['before 5am'];