diff --git a/lib/workers/repository/configured.js b/lib/workers/repository/configured.ts similarity index 57% rename from lib/workers/repository/configured.js rename to lib/workers/repository/configured.ts index df772c4fd65f582223ecc00ae121e90b1e85e7aa..021a262e60b7898d8ed20154e69d19ea9a532e67 100644 --- a/lib/workers/repository/configured.js +++ b/lib/workers/repository/configured.ts @@ -1,8 +1,6 @@ -module.exports = { - checkIfConfigured, -}; +import { RenovateConfig } from '../../config'; -function checkIfConfigured(config) { +export function checkIfConfigured(config: RenovateConfig): void { if (config.enabled === false) { throw new Error('disabled'); } diff --git a/lib/workers/repository/error-config.js b/lib/workers/repository/error-config.ts similarity index 86% rename from lib/workers/repository/error-config.js rename to lib/workers/repository/error-config.ts index b3755a627c68065c1c305d8e8f3a2f9af6b3a764..11277bc2778d9c6eef44836c0489e3bcc2882b1d 100644 --- a/lib/workers/repository/error-config.js +++ b/lib/workers/repository/error-config.ts @@ -1,11 +1,11 @@ -const { logger } = require('../../logger'); -const { platform } = require('../../platform'); +import { logger } from '../../logger'; +import { platform } from '../../platform'; +import { RenovateConfig } from '../../config'; -module.exports = { - raiseConfigWarningIssue, -}; - -async function raiseConfigWarningIssue(config, error) { +export async function raiseConfigWarningIssue( + config: RenovateConfig, + error: Error +): Promise<void> { logger.debug('raiseConfigWarningIssue()'); let body = `There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.\n\n`; if (error.configFile) { diff --git a/lib/workers/repository/error.js b/lib/workers/repository/error.ts similarity index 97% rename from lib/workers/repository/error.js rename to lib/workers/repository/error.ts index 614fb62e9ce6d49c68f1072be1a6ada722d4aac8..a12820b8899646b8c7b4e02393848fa9d3103b58 100644 --- a/lib/workers/repository/error.js +++ b/lib/workers/repository/error.ts @@ -1,7 +1,11 @@ import { logger, setMeta } from '../../logger'; import { raiseConfigWarningIssue } from './error-config'; +import { RenovateConfig } from '../../config'; -export default async function handleError(config, err) { +export default async function handleError( + config: RenovateConfig, + err: Error +): Promise<string> { setMeta({ repository: config.repository, }); diff --git a/lib/workers/repository/index.js b/lib/workers/repository/index.ts similarity index 66% rename from lib/workers/repository/index.js rename to lib/workers/repository/index.ts index 49798d330a0753f5e38632dee9055ac1e4692fc6..03367faab2c0d7b16498d05c318dddf19d3521a1 100644 --- a/lib/workers/repository/index.js +++ b/lib/workers/repository/index.ts @@ -1,24 +1,25 @@ +import fs from 'fs-extra'; + import handleError from './error'; import { platform } from '../../platform'; - -const fs = require('fs-extra'); -const { logger, setMeta } = require('../../logger'); -const { initRepo } = require('./init'); -const { ensureOnboardingPr } = require('./onboarding/pr'); -const { processResult } = require('./result'); -const { processRepo } = require('./process'); -const { finaliseRepo } = require('./finalise'); -const { ensureMasterIssue } = require('./master-issue'); - -export { renovateRepository }; +import { logger, setMeta } from '../../logger'; +import { initRepo } from './init'; +import { ensureOnboardingPr } from './onboarding/pr'; +import { processResult, ProcessResult } from './result'; +import { processRepo } from './process'; +import { finaliseRepo } from './finalise'; +import { ensureMasterIssue } from './master-issue'; +import { RenovateConfig } from '../../config'; // istanbul ignore next -async function renovateRepository(repoConfig) { +export async function renovateRepository( + repoConfig: RenovateConfig +): Promise<ProcessResult> { let config = { ...repoConfig }; setMeta({ repository: config.repository }); logger.info('Renovating repository'); logger.trace({ config }); - let repoResult; + let repoResult: ProcessResult; try { await fs.ensureDir(config.localDir); logger.debug('Using localDir: ' + config.localDir); diff --git a/lib/workers/repository/master-issue.js b/lib/workers/repository/master-issue.ts similarity index 94% rename from lib/workers/repository/master-issue.js rename to lib/workers/repository/master-issue.ts index 32e7e9bf836403dfb4d3c4bffd3b263a1655d2c2..82296b31f493c3ba983f0a0a1bb47ab581c94331 100644 --- a/lib/workers/repository/master-issue.js +++ b/lib/workers/repository/master-issue.ts @@ -1,11 +1,9 @@ -const { logger } = require('../../logger'); -const { platform } = require('../../platform'); +import { logger } from '../../logger'; +import { platform, Pr } from '../../platform'; +import { BranchConfig } from '../common'; +import { RenovateConfig } from '../../config'; -module.exports = { - ensureMasterIssue, -}; - -function getListItem(branch, type, pr) { +function getListItem(branch: BranchConfig, type: string, pr?: Pr): string { let item = ' - [ ] '; item += `<!-- ${type}-branch=${branch.branchName} -->`; if (pr) { @@ -22,7 +20,10 @@ function getListItem(branch, type, pr) { return item + ' (' + uniquePackages.join(', ') + ')\n'; } -async function ensureMasterIssue(config, branches) { +export async function ensureMasterIssue( + config: RenovateConfig, + branches: BranchConfig[] +): Promise<void> { if ( !( config.masterIssue || diff --git a/lib/workers/repository/result.js b/lib/workers/repository/result.ts similarity index 61% rename from lib/workers/repository/result.js rename to lib/workers/repository/result.ts index 76a08c1a76b32a8afd0f90c91ecc890c114bec16..4a90fdeac176c7381986d78e574ebe0bdbd61b93 100644 --- a/lib/workers/repository/result.js +++ b/lib/workers/repository/result.ts @@ -1,8 +1,16 @@ -module.exports = { - processResult, -}; +import { RenovateConfig } from '../../config'; -function processResult(config, res) { +type ProcessStatus = 'disabled' | 'enabled' | 'onboarding' | 'unknown'; + +export interface ProcessResult { + res: string; + status: ProcessStatus; +} + +export function processResult( + config: RenovateConfig, + res: string +): ProcessResult { const disabledStatuses = [ 'archived', 'blocked', @@ -16,7 +24,7 @@ function processResult(config, res) { 'uninitiated', 'empty', ]; - let status; + let status: ProcessStatus; // istanbul ignore next if (disabledStatuses.includes(res)) { status = 'disabled'; diff --git a/package.json b/package.json index f4a6a528e1e5f4ca5f61b24661cab70856abd394..639278a4ed463963e3df61e77ff1f08f4184a739 100644 --- a/package.json +++ b/package.json @@ -213,6 +213,7 @@ "husky": "3.1.0", "jest": "24.9.0", "jest-junit": "10.0.0", + "jest-mock-extended": "1.0.7", "jest-silent-reporter": "0.1.2", "mockdate": "2.0.5", "nock": "11.7.1", diff --git a/test/workers/repository/__snapshots__/index.spec.js.snap b/test/workers/repository/__snapshots__/index.spec.ts.snap similarity index 100% rename from test/workers/repository/__snapshots__/index.spec.js.snap rename to test/workers/repository/__snapshots__/index.spec.ts.snap diff --git a/test/workers/repository/configured.spec.js b/test/workers/repository/configured.spec.ts similarity index 75% rename from test/workers/repository/configured.spec.js rename to test/workers/repository/configured.spec.ts index 1264df280e2bda263fc045a527586b5606e1f293..1977926e2d4b0f63f6338380760d6d718de4f009 100644 --- a/test/workers/repository/configured.spec.js +++ b/test/workers/repository/configured.spec.ts @@ -1,11 +1,10 @@ -const { - checkIfConfigured, -} = require('../../../lib/workers/repository/configured'); +import { checkIfConfigured } from '../../../lib/workers/repository/configured'; +import { getConfig, RenovateConfig } from '../../util'; -let config; +let config: RenovateConfig; beforeEach(() => { jest.resetAllMocks(); - config = { ...require('../../config/config/_fixtures') }; + config = getConfig; }); describe('workers/repository/configured', () => { diff --git a/test/workers/repository/error-config.spec.js b/test/workers/repository/error-config.spec.ts similarity index 67% rename from test/workers/repository/error-config.spec.js rename to test/workers/repository/error-config.spec.ts index 354f5cd8e4240e46662cc8082ec701f9320f742a..fab8668426de047818a28775d7a0b5e832fb7ff0 100644 --- a/test/workers/repository/error-config.spec.js +++ b/test/workers/repository/error-config.spec.ts @@ -1,14 +1,15 @@ -const { - raiseConfigWarningIssue, -} = require('../../../lib/workers/repository/error-config'); +import { mock } from 'jest-mock-extended'; -/** @type any */ -const { platform } = require('../../../lib/platform'); +import { raiseConfigWarningIssue } from '../../../lib/workers/repository/error-config'; +import { RenovateConfig, getConfig, platform } from '../../util'; +import { Pr } from '../../../lib/platform'; -let config; +jest.mock('../../../lib/platform'); + +let config: RenovateConfig; beforeEach(() => { jest.resetAllMocks(); - config = require('../../config/config/_fixtures'); + config = getConfig; }); describe('workers/repository/error-config', () => { @@ -17,7 +18,7 @@ describe('workers/repository/error-config', () => { const error = new Error('config-validation'); error.configFile = 'package.json'; error.validationMessage = 'some-message'; - platform.ensureIssue.mockReturnValue('created'); + platform.ensureIssue.mockResolvedValueOnce('created'); const res = await raiseConfigWarningIssue(config, error); expect(res).toBeUndefined(); }); @@ -25,7 +26,7 @@ describe('workers/repository/error-config', () => { const error = new Error('config-validation'); error.configFile = 'package.json'; error.validationMessage = 'some-message'; - platform.ensureIssue.mockReturnValue('created'); + platform.ensureIssue.mockResolvedValueOnce('created'); const res = await raiseConfigWarningIssue( { ...config, dryRun: true }, error @@ -36,7 +37,11 @@ describe('workers/repository/error-config', () => { const error = new Error('config-validation'); error.configFile = 'package.json'; error.validationMessage = 'some-message'; - platform.getBranchPr.mockReturnValueOnce({ number: 1, state: 'open' }); + platform.getBranchPr.mockResolvedValue({ + ...mock<Pr>(), + number: 1, + state: 'open', + }); const res = await raiseConfigWarningIssue(config, error); expect(res).toBeUndefined(); }); @@ -44,7 +49,11 @@ describe('workers/repository/error-config', () => { const error = new Error('config-validation'); error.configFile = 'package.json'; error.validationMessage = 'some-message'; - platform.getBranchPr.mockReturnValueOnce({ number: 1, state: 'open' }); + platform.getBranchPr.mockResolvedValue({ + ...mock<Pr>(), + number: 1, + state: 'open', + }); const res = await raiseConfigWarningIssue( { ...config, dryRun: true }, error diff --git a/test/workers/repository/error.spec.js b/test/workers/repository/error.spec.ts similarity index 94% rename from test/workers/repository/error.spec.js rename to test/workers/repository/error.spec.ts index 504c41b26dcca036becd89aec05d93fa8cd29d13..0c72cb47318a90771124997266e21e313e7569c9 100644 --- a/test/workers/repository/error.spec.js +++ b/test/workers/repository/error.spec.ts @@ -1,11 +1,12 @@ import handleError from '../../../lib/workers/repository/error'; +import { RenovateConfig, getConfig } from '../../util'; jest.mock('../../../lib/workers/repository/error-config'); -let config; +let config: RenovateConfig; beforeEach(() => { jest.resetAllMocks(); - config = require('../../config/config/_fixtures'); + config = getConfig; }); describe('workers/repository/error', () => { diff --git a/test/workers/repository/extract/manager-files.spec.ts b/test/workers/repository/extract/manager-files.spec.ts index 766d1a979cd4da215a3450841ba3c02a63594a9b..4220a56faa6347d0e0c56288012745e62e4efe3c 100644 --- a/test/workers/repository/extract/manager-files.spec.ts +++ b/test/workers/repository/extract/manager-files.spec.ts @@ -1,7 +1,7 @@ import { getManagerPackageFiles } from '../../../../lib/workers/repository/extract/manager-files'; import * as _fileMatch from '../../../../lib/workers/repository/extract/file-match'; import * as _dockerfile from '../../../../lib/manager/dockerfile'; -import { mocked, platform } from '../../../util'; +import { mocked, platform, getConfig } from '../../../util'; import { RenovateConfig } from '../../../../lib/config'; jest.mock('../../../../lib/workers/repository/extract/file-match'); @@ -15,7 +15,7 @@ describe('workers/repository/extract/manager-files', () => { let config: RenovateConfig; beforeEach(() => { jest.resetAllMocks(); - config = { ...require('../../../config/config/_fixtures') }; + config = getConfig; }); it('returns empty of manager is disabled', async () => { const managerConfig = { manager: 'travis', enabled: false }; diff --git a/test/workers/repository/index.spec.js b/test/workers/repository/index.spec.js deleted file mode 100644 index 26a16de3e7b6471d8194db18cd1d3c12d17cc7d9..0000000000000000000000000000000000000000 --- a/test/workers/repository/index.spec.js +++ /dev/null @@ -1,22 +0,0 @@ -const { renovateRepository } = require('../../../lib/workers/repository/index'); -/** @type any */ -const process = require('../../../lib/workers/repository/process'); - -jest.mock('../../../lib/workers/repository/init'); -jest.mock('../../../lib/workers/repository/process'); -jest.mock('../../../lib/workers/repository/result'); -jest.mock('../../../lib/workers/repository/error'); - -describe('workers/repository', () => { - describe('renovateRepository()', () => { - let config; - beforeEach(() => { - config = require('../../config/config/_fixtures'); - }); - it('runs', async () => { - process.processRepo = jest.fn(() => ({})); - const res = await renovateRepository(config); - expect(res).toMatchSnapshot(); - }); - }); -}); diff --git a/test/workers/repository/index.spec.ts b/test/workers/repository/index.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..9cce00c58ad5eaafc6d851c667fd80a20b8012b8 --- /dev/null +++ b/test/workers/repository/index.spec.ts @@ -0,0 +1,27 @@ +import { mock } from 'jest-mock-extended'; + +import { renovateRepository } from '../../../lib/workers/repository/index'; +import * as _process from '../../../lib/workers/repository/process'; +import { mocked, RenovateConfig, getConfig } from '../../util'; +import { ExtractAndUpdateResult } from '../../../lib/workers/repository/process/extract-update'; + +const process = mocked(_process); + +jest.mock('../../../lib/workers/repository/init'); +jest.mock('../../../lib/workers/repository/process'); +jest.mock('../../../lib/workers/repository/result'); +jest.mock('../../../lib/workers/repository/error'); + +describe('workers/repository', () => { + describe('renovateRepository()', () => { + let config: RenovateConfig; + beforeEach(() => { + config = getConfig; + }); + it('runs', async () => { + process.processRepo.mockResolvedValue(mock<ExtractAndUpdateResult>()); + const res = await renovateRepository(config); + expect(res).toMatchSnapshot(); + }); + }); +}); diff --git a/test/workers/repository/master-issue.spec.js b/test/workers/repository/master-issue.spec.ts similarity index 76% rename from test/workers/repository/master-issue.spec.js rename to test/workers/repository/master-issue.spec.ts index 668d70c3ad963cae672fcaefdd9c9da21dce2342..cde7b50edf57ff72a598c3d59ae5ebdf094b21a0 100644 --- a/test/workers/repository/master-issue.spec.js +++ b/test/workers/repository/master-issue.spec.ts @@ -1,21 +1,22 @@ -const fs = require('fs'); -const masterIssue = require('../../../lib/workers/repository/master-issue'); +import fs from 'fs'; +import { mock } from 'jest-mock-extended'; -/** @type any */ -const { platform } = require('../../../lib/platform'); +import * as masterIssue from '../../../lib/workers/repository/master-issue'; +import { RenovateConfig, getConfig, platform } from '../../util'; +import { BranchConfig, PrUpgrade } from '../../../lib/workers/common'; +import { Pr } from '../../../lib/platform'; -/** @type any */ -let config; +let config: RenovateConfig; beforeEach(() => { jest.resetAllMocks(); - config = { ...require('../../config/config/_fixtures') }; + config = getConfig(); config.platform = 'github'; config.errors = []; config.warnings = []; }); async function dryRun( - branches, + branches: BranchConfig[], // eslint-disable-next-line no-shadow platform, ensureIssueClosingCalls = 0, @@ -37,7 +38,7 @@ async function dryRun( describe('workers/repository/master-issue', () => { describe('ensureMasterIssue()', () => { it('do nothing if masterissue is disable', async () => { - const branches = []; + const branches: BranchConfig[] = []; await masterIssue.ensureMasterIssue(config, branches); expect(platform.ensureIssueClosing).toHaveBeenCalledTimes(0); expect(platform.ensureIssue).toHaveBeenCalledTimes(0); @@ -51,9 +52,11 @@ describe('workers/repository/master-issue', () => { it('do nothing if it has no masterissueapproval branches', async () => { const branches = [ { + ...mock<BranchConfig>(), prTitle: 'pr1', }, { + ...mock<BranchConfig>(), prTitle: 'pr2', masterIssueApproval: false, }, @@ -69,7 +72,7 @@ describe('workers/repository/master-issue', () => { }); it('closes master issue when there is 0 PR opened and masterIssueAutoclose is true', async () => { - const branches = []; + const branches: BranchConfig[] = []; config.masterIssue = true; config.masterIssueAutoclose = true; await masterIssue.ensureMasterIssue(config, branches); @@ -87,11 +90,9 @@ describe('workers/repository/master-issue', () => { it('closes master issue when all branches are automerged and masterIssueAutoclose is true', async () => { const branches = [ + { ...mock<BranchConfig>(), prTitle: 'pr1', res: 'automerged' }, { - prTitle: 'pr1', - res: 'automerged', - }, - { + ...mock<BranchConfig>(), prTitle: 'pr2', res: 'automerged', masterIssueApproval: false, @@ -113,7 +114,7 @@ describe('workers/repository/master-issue', () => { }); it('open or update master issue when all branches are closed and masterIssueAutoclose is false', async () => { - const branches = []; + const branches: BranchConfig[] = []; config.masterIssue = true; await masterIssue.ensureMasterIssue(config, branches); expect(platform.ensureIssueClosing).toHaveBeenCalledTimes(0); @@ -134,50 +135,58 @@ describe('workers/repository/master-issue', () => { it('checks an issue with 2 Pending Approvals, 2 not scheduled, 2 pr-hourly-limit-reached and 2 in error', async () => { const branches = [ { + ...mock<BranchConfig>(), prTitle: 'pr1', - upgrades: [{ depName: 'dep1' }], + upgrades: [{ ...mock<PrUpgrade>(), depName: 'dep1' }], res: 'needs-approval', branchName: 'branchName1', }, { + ...mock<BranchConfig>(), prTitle: 'pr2', - upgrades: [{ depName: 'dep2' }], + upgrades: [{ ...mock<PrUpgrade>(), depName: 'dep2' }], res: 'needs-approval', branchName: 'branchName2', }, { + ...mock<BranchConfig>(), prTitle: 'pr3', - upgrades: [{ depName: 'dep3' }], + upgrades: [{ ...mock<PrUpgrade>(), depName: 'dep3' }], res: 'not-scheduled', branchName: 'branchName3', }, { + ...mock<BranchConfig>(), prTitle: 'pr4', - upgrades: [{ depName: 'dep4' }], + upgrades: [{ ...mock<PrUpgrade>(), depName: 'dep4' }], res: 'not-scheduled', branchName: 'branchName4', }, { + ...mock<BranchConfig>(), prTitle: 'pr5', - upgrades: [{ depName: 'dep5' }], + upgrades: [{ ...mock<PrUpgrade>(), depName: 'dep5' }], res: 'pr-hourly-limit-reached', branchName: 'branchName5', }, { + ...mock<BranchConfig>(), prTitle: 'pr6', - upgrades: [{ depName: 'dep6' }], + upgrades: [{ ...mock<PrUpgrade>(), depName: 'dep6' }], res: 'pr-hourly-limit-reached', branchName: 'branchName6', }, { + ...mock<BranchConfig>(), prTitle: 'pr7', - upgrades: [{ depName: 'dep7' }], + upgrades: [{ ...mock<PrUpgrade>(), depName: 'dep7' }], res: 'error', branchName: 'branchName7', }, { + ...mock<BranchConfig>(), prTitle: 'pr8', - upgrades: [{ depName: 'dep8' }], + upgrades: [{ ...mock<PrUpgrade>(), depName: 'dep8' }], res: 'error', branchName: 'branchName8', }, @@ -205,21 +214,27 @@ describe('workers/repository/master-issue', () => { it('checks an issue with 2 PR pr-edited', async () => { const branches = [ { + ...mock<BranchConfig>(), prTitle: 'pr1', - upgrades: [{ depName: 'dep1' }], + upgrades: [{ ...mock<PrUpgrade>(), depName: 'dep1' }], res: 'pr-edited', branchName: 'branchName1', }, { + ...mock<BranchConfig>(), prTitle: 'pr2', - upgrades: [{ depName: 'dep2' }, { depName: 'dep3' }], + upgrades: [ + { ...mock<PrUpgrade>(), depName: 'dep2' }, + { ...mock<PrUpgrade>(), depName: 'dep3' }, + ], res: 'pr-edited', branchName: 'branchName2', }, ]; config.masterIssue = true; - platform.getBranchPr.mockReturnValueOnce({ number: 1 }); - platform.getBranchPr.mockReturnValueOnce(undefined); + platform.getBranchPr + .mockResolvedValueOnce({ ...mock<Pr>(), number: 1 }) + .mockResolvedValueOnce(undefined); await masterIssue.ensureMasterIssue(config, branches); expect(platform.ensureIssueClosing).toHaveBeenCalledTimes(0); expect(platform.ensureIssue).toHaveBeenCalledTimes(1); @@ -244,28 +259,35 @@ describe('workers/repository/master-issue', () => { it('checks an issue with 3 PR in progress and rebase all option', async () => { const branches = [ { + ...mock<BranchConfig>(), prTitle: 'pr1', - upgrades: [{ depName: 'dep1' }], + upgrades: [{ ...mock<PrUpgrade>(), depName: 'dep1' }], res: 'rebase', branchName: 'branchName1', }, { + ...mock<BranchConfig>(), prTitle: 'pr2', - upgrades: [{ depName: 'dep2' }, { depName: 'dep3' }], + upgrades: [ + { ...mock<PrUpgrade>(), depName: 'dep2' }, + { ...mock<PrUpgrade>(), depName: 'dep3' }, + ], res: 'rebase', branchName: 'branchName2', }, { + ...mock<BranchConfig>(), prTitle: 'pr3', - upgrades: [{ depName: 'dep3' }], + upgrades: [{ ...mock<PrUpgrade>(), depName: 'dep3' }], res: 'rebase', branchName: 'branchName3', }, ]; config.masterIssue = true; - platform.getBranchPr.mockReturnValueOnce({ number: 1 }); - platform.getBranchPr.mockReturnValueOnce(undefined); - platform.getBranchPr.mockReturnValueOnce({ number: 3 }); + platform.getBranchPr + .mockResolvedValueOnce({ ...mock<Pr>(), number: 1 }) + .mockResolvedValueOnce(undefined) + .mockResolvedValueOnce({ ...mock<Pr>(), number: 3 }); await masterIssue.ensureMasterIssue(config, branches); expect(platform.ensureIssueClosing).toHaveBeenCalledTimes(0); expect(platform.ensureIssue).toHaveBeenCalledTimes(1); @@ -291,22 +313,28 @@ describe('workers/repository/master-issue', () => { it('checks an issue with 2 PR closed / ignored', async () => { const branches = [ { + ...mock<BranchConfig>(), prTitle: 'pr1', - upgrades: [{ depName: 'dep1' }], + upgrades: [{ ...mock<PrUpgrade>(), depName: 'dep1' }], res: 'already-existed', branchName: 'branchName1', }, { + ...mock<BranchConfig>(), prTitle: 'pr2', - upgrades: [{ depName: 'dep2' }, { depName: 'dep3' }], + upgrades: [ + { ...mock<PrUpgrade>(), depName: 'dep2' }, + { ...mock<PrUpgrade>(), depName: 'dep3' }, + ], res: 'already-existed', branchName: 'branchName2', }, ]; config.masterIssue = true; - platform.getBranchPr.mockReturnValueOnce({ number: 1 }); - platform.getBranchPr.mockReturnValueOnce(undefined); - platform.getBranchPr.mockReturnValueOnce({ number: 3 }); + platform.getBranchPr + .mockResolvedValueOnce({ ...mock<Pr>(), number: 1 }) + .mockResolvedValueOnce(undefined) + .mockResolvedValueOnce({ ...mock<Pr>(), number: 3 }); await masterIssue.ensureMasterIssue(config, branches); expect(platform.ensureIssueClosing).toHaveBeenCalledTimes(0); expect(platform.ensureIssue).toHaveBeenCalledTimes(1); @@ -335,26 +363,33 @@ describe('workers/repository/master-issue', () => { it('checks an issue with 3 PR in approval', async () => { const branches = [ { + ...mock<BranchConfig>(), prTitle: 'pr1', - upgrades: [{ depName: 'dep1' }], + upgrades: [{ ...mock<PrUpgrade>(), depName: 'dep1' }], res: 'needs-pr-approval', branchName: 'branchName1', }, { + ...mock<BranchConfig>(), prTitle: 'pr2', - upgrades: [{ depName: 'dep2' }, { depName: 'dep3' }], + upgrades: [ + { ...mock<PrUpgrade>(), depName: 'dep2' }, + { ...mock<PrUpgrade>(), depName: 'dep3' }, + ], res: 'needs-pr-approval', branchName: 'branchName2', }, { + ...mock<BranchConfig>(), prTitle: 'pr3', - upgrades: [{ depName: 'dep3' }], + upgrades: [{ ...mock<PrUpgrade>(), depName: 'dep3' }], res: 'needs-pr-approval', branchName: 'branchName3', }, { + ...mock<BranchConfig>(), prTitle: 'pr4', - upgrades: [{ depName: 'dep4' }], + upgrades: [{ ...mock<PrUpgrade>(), depName: 'dep4' }], res: 'pending', branchName: 'branchName4', }, diff --git a/test/workers/repository/onboarding/branch/__snapshots__/index.spec.js.snap b/test/workers/repository/onboarding/branch/__snapshots__/index.spec.ts.snap similarity index 100% rename from test/workers/repository/onboarding/branch/__snapshots__/index.spec.js.snap rename to test/workers/repository/onboarding/branch/__snapshots__/index.spec.ts.snap diff --git a/test/workers/repository/onboarding/branch/index.spec.js b/test/workers/repository/onboarding/branch/index.spec.ts similarity index 69% rename from test/workers/repository/onboarding/branch/index.spec.js rename to test/workers/repository/onboarding/branch/index.spec.ts index 8e9cb59ccc7129be28cc75dc1c18c7187d65648b..cb7073bc41c44e41a842f3f32250c6f779716346 100644 --- a/test/workers/repository/onboarding/branch/index.spec.js +++ b/test/workers/repository/onboarding/branch/index.spec.ts @@ -1,21 +1,17 @@ -const defaultConfig = require('../../../../../lib/config/defaults').getConfig(); -const { - checkOnboardingBranch, -} = require('../../../../../lib/workers/repository/onboarding/branch'); -/** @type any */ -const { platform } = require('../../../../../lib/platform'); +import { mock } from 'jest-mock-extended'; +import { RenovateConfig, platform, getConfig } from '../../../../util'; +import { checkOnboardingBranch } from '../../../../../lib/workers/repository/onboarding/branch'; +import { Pr } from '../../../../../lib/platform'; jest.mock('../../../../../lib/workers/repository/onboarding/branch/rebase'); describe('workers/repository/onboarding/branch', () => { describe('checkOnboardingBranch', () => { - let config; + let config: RenovateConfig; beforeEach(() => { jest.resetAllMocks(); - config = { - ...defaultConfig, - }; - platform.getFileList.mockReturnValue([]); + config = getConfig(); + platform.getFileList.mockResolvedValue([]); }); it('throws if no package files', async () => { await expect(checkOnboardingBranch(config)).rejects.toThrow(); @@ -33,45 +29,45 @@ describe('workers/repository/onboarding/branch', () => { it('handles skipped onboarding, requireConfig=true, and a config file', async () => { config.requireConfig = true; config.onboarding = false; - platform.getFileList.mockReturnValueOnce(['renovate.json']); + platform.getFileList.mockResolvedValueOnce(['renovate.json']); const res = await checkOnboardingBranch(config); expect(res.repoIsOnboarded).toBe(true); }); it('handles skipped onboarding, requireConfig=true, and no config file', async () => { config.requireConfig = true; config.onboarding = false; - platform.getFileList.mockReturnValueOnce(['package.json']); - platform.getFile.mockReturnValueOnce('{}'); + platform.getFileList.mockResolvedValueOnce(['package.json']); + platform.getFile.mockResolvedValueOnce('{}'); const onboardingResult = checkOnboardingBranch(config); await expect(onboardingResult).rejects.toThrow('disabled'); }); it('detects repo is onboarded via file', async () => { - platform.getFileList.mockReturnValueOnce(['renovate.json']); + platform.getFileList.mockResolvedValueOnce(['renovate.json']); const res = await checkOnboardingBranch(config); expect(res.repoIsOnboarded).toBe(true); }); it('detects repo is onboarded via package.json config', async () => { - platform.getFileList.mockReturnValueOnce(['package.json']); - platform.getFile.mockReturnValueOnce('{"renovate":{}}'); + platform.getFileList.mockResolvedValueOnce(['package.json']); + platform.getFile.mockResolvedValueOnce('{"renovate":{}}'); const res = await checkOnboardingBranch(config); expect(res.repoIsOnboarded).toBe(true); }); it('detects repo is onboarded via PR', async () => { config.requireConfig = false; - platform.findPr.mockReturnValue(true); + platform.findPr.mockResolvedValueOnce(mock<Pr>()); const res = await checkOnboardingBranch(config); expect(res.repoIsOnboarded).toBe(true); }); it('throws if no required config', async () => { config.requireConfig = true; - platform.findPr.mockReturnValue(true); - platform.getPrList.mockReturnValueOnce([ - { branchName: 'renovate/something', state: 'open' }, + platform.findPr.mockResolvedValue(mock<Pr>()); + platform.getPrList.mockResolvedValueOnce([ + { ...mock<Pr>(), branchName: 'renovate/something', state: 'open' }, ]); await expect(checkOnboardingBranch(config)).rejects.toThrow(); }); it('creates onboarding branch with greenkeeper migration', async () => { - platform.getFileList.mockReturnValue(['package.json']); + platform.getFileList.mockResolvedValue(['package.json']); const pJsonContent = JSON.stringify({ name: 'some-name', version: '0.0.1', @@ -81,16 +77,16 @@ describe('workers/repository/onboarding/branch', () => { ignore: ['foo', 'bar'], }, }); - platform.getFile.mockReturnValue(pJsonContent); + platform.getFile.mockResolvedValue(pJsonContent); await checkOnboardingBranch(config); expect( platform.commitFilesToBranch.mock.calls[0][0].files[0].contents ).toMatchSnapshot(); }); it('updates onboarding branch', async () => { - platform.getFileList.mockReturnValue(['package.json']); - platform.findPr.mockReturnValueOnce(null); - platform.getBranchPr.mockReturnValueOnce({}); + platform.getFileList.mockResolvedValue(['package.json']); + platform.findPr.mockResolvedValue(null); + platform.getBranchPr.mockResolvedValueOnce(mock<Pr>()); const res = await checkOnboardingBranch(config); expect(res.repoIsOnboarded).toBe(false); expect(res.branchList).toEqual(['renovate/configure']); diff --git a/test/workers/repository/onboarding/branch/rebase.spec.js b/test/workers/repository/onboarding/branch/rebase.spec.ts similarity index 60% rename from test/workers/repository/onboarding/branch/rebase.spec.js rename to test/workers/repository/onboarding/branch/rebase.spec.ts index 98978e1421227079822e9817706bf15b2d6e6345..1449f2ba63de8591e2142041a51b63a2104ea09c 100644 --- a/test/workers/repository/onboarding/branch/rebase.spec.js +++ b/test/workers/repository/onboarding/branch/rebase.spec.ts @@ -1,14 +1,11 @@ -const defaultConfig = require('../../../../../lib/config/defaults').getConfig(); -const { - rebaseOnboardingBranch, -} = require('../../../../../lib/workers/repository/onboarding/branch/rebase'); - -/** @type any */ -const { platform } = require('../../../../../lib/platform'); +import { mock } from 'jest-mock-extended'; +import { RenovateConfig, defaultConfig, platform } from '../../../../util'; +import { rebaseOnboardingBranch } from '../../../../../lib/workers/repository/onboarding/branch/rebase'; +import { Pr } from '../../../../../lib/platform'; describe('workers/repository/onboarding/branch/rebase', () => { describe('rebaseOnboardingBranch()', () => { - let config; + let config: RenovateConfig; beforeEach(() => { jest.resetAllMocks(); config = { @@ -16,7 +13,8 @@ describe('workers/repository/onboarding/branch/rebase', () => { }; }); it('does not rebase modified branch', async () => { - platform.getBranchPr.mockReturnValueOnce({ + platform.getBranchPr.mockResolvedValueOnce({ + ...mock<Pr>(), isModified: true, }); await rebaseOnboardingBranch(config); @@ -25,9 +23,11 @@ describe('workers/repository/onboarding/branch/rebase', () => { it('does nothing if branch is up to date', async () => { const contents = JSON.stringify(defaultConfig.onboardingConfig, null, 2) + '\n'; - platform.getFile.mockReturnValueOnce(contents); // package.json - platform.getFile.mockReturnValueOnce(contents); // renovate.json - platform.getBranchPr.mockReturnValueOnce({ + platform.getFile + .mockResolvedValueOnce(contents) // package.json + .mockResolvedValueOnce(contents); // renovate.json + platform.getBranchPr.mockResolvedValueOnce({ + ...mock<Pr>(), isModified: false, isStale: false, }); @@ -35,7 +35,8 @@ describe('workers/repository/onboarding/branch/rebase', () => { expect(platform.commitFilesToBranch).toHaveBeenCalledTimes(0); }); it('rebases onboarding branch', async () => { - platform.getBranchPr.mockReturnValueOnce({ + platform.getBranchPr.mockResolvedValueOnce({ + ...mock<Pr>(), isStale: true, isModified: false, }); diff --git a/test/workers/repository/onboarding/pr/__snapshots__/base-branch.spec.js.snap b/test/workers/repository/onboarding/pr/__snapshots__/base-branch.spec.ts.snap similarity index 100% rename from test/workers/repository/onboarding/pr/__snapshots__/base-branch.spec.js.snap rename to test/workers/repository/onboarding/pr/__snapshots__/base-branch.spec.ts.snap diff --git a/test/workers/repository/onboarding/pr/__snapshots__/config-description.spec.js.snap b/test/workers/repository/onboarding/pr/__snapshots__/config-description.spec.ts.snap similarity index 100% rename from test/workers/repository/onboarding/pr/__snapshots__/config-description.spec.js.snap rename to test/workers/repository/onboarding/pr/__snapshots__/config-description.spec.ts.snap diff --git a/test/workers/repository/onboarding/pr/__snapshots__/errors-warnings.spec.js.snap b/test/workers/repository/onboarding/pr/__snapshots__/errors-warnings.spec.ts.snap similarity index 100% rename from test/workers/repository/onboarding/pr/__snapshots__/errors-warnings.spec.js.snap rename to test/workers/repository/onboarding/pr/__snapshots__/errors-warnings.spec.ts.snap diff --git a/test/workers/repository/onboarding/pr/base-branch.spec.js b/test/workers/repository/onboarding/pr/base-branch.spec.ts similarity index 65% rename from test/workers/repository/onboarding/pr/base-branch.spec.js rename to test/workers/repository/onboarding/pr/base-branch.spec.ts index 7b6edc92b50da24ce9182af820dedf83add103fc..43631ea468f7cebb91d95d904c486d74a7f9fafc 100644 --- a/test/workers/repository/onboarding/pr/base-branch.spec.js +++ b/test/workers/repository/onboarding/pr/base-branch.spec.ts @@ -1,17 +1,13 @@ -const defaultConfig = require('../../../../../lib/config/defaults').getConfig(); +import { RenovateConfig, getConfig } from '../../../../util'; -const { - getBaseBranchDesc, -} = require('../../../../../lib/workers/repository/onboarding/pr/base-branch'); +import { getBaseBranchDesc } from '../../../../../lib/workers/repository/onboarding/pr/base-branch'; describe('workers/repository/onboarding/pr/base-branch', () => { describe('getBaseBranchDesc()', () => { - let config; + let config: RenovateConfig; beforeEach(() => { jest.resetAllMocks(); - config = { - ...defaultConfig, - }; + config = getConfig(); }); it('returns empty if no baseBranch', () => { const res = getBaseBranchDesc(config); diff --git a/test/workers/repository/onboarding/pr/config-description.spec.js b/test/workers/repository/onboarding/pr/config-description.spec.ts similarity index 84% rename from test/workers/repository/onboarding/pr/config-description.spec.js rename to test/workers/repository/onboarding/pr/config-description.spec.ts index dbd3b7a02250db153459aa96c92375e61b1bf126..4cc1cb2de24e56e45307d254f2c16b2eb6a8996c 100644 --- a/test/workers/repository/onboarding/pr/config-description.spec.js +++ b/test/workers/repository/onboarding/pr/config-description.spec.ts @@ -1,17 +1,13 @@ -const defaultConfig = require('../../../../../lib/config/defaults').getConfig(); +import { RenovateConfig, getConfig } from '../../../../util'; -const { - getConfigDesc, -} = require('../../../../../lib/workers/repository/onboarding/pr/config-description'); +import { getConfigDesc } from '../../../../../lib/workers/repository/onboarding/pr/config-description'; describe('workers/repository/onboarding/pr/config-description', () => { describe('getConfigDesc()', () => { - let config; + let config: RenovateConfig; beforeEach(() => { jest.resetAllMocks(); - config = { - ...defaultConfig, - }; + config = getConfig(); }); it('returns empty', () => { delete config.description; @@ -48,6 +44,7 @@ describe('workers/repository/onboarding/pr/config-description', () => { expect(res.indexOf('Docker-only')).toBe(-1); }); it('assignees, labels and schedule', () => { + delete config.description; config.packageFiles = []; config.assignees = ['someone', '@someone-else']; config.labels = ['renovate', 'deps']; diff --git a/test/workers/repository/onboarding/pr/errors-warnings.spec.js b/test/workers/repository/onboarding/pr/errors-warnings.spec.ts similarity index 85% rename from test/workers/repository/onboarding/pr/errors-warnings.spec.js rename to test/workers/repository/onboarding/pr/errors-warnings.spec.ts index bbdfd32e7a2f76d803e33feee5af79a21035b880..8113863494596e6cea663613cc4ac2ecedcad038 100644 --- a/test/workers/repository/onboarding/pr/errors-warnings.spec.js +++ b/test/workers/repository/onboarding/pr/errors-warnings.spec.ts @@ -1,19 +1,17 @@ -const defaultConfig = require('../../../../../lib/config/defaults').getConfig(); +import { RenovateConfig, getConfig } from '../../../../util'; -const { +import { getWarnings, getErrors, getDepWarnings, -} = require('../../../../../lib/workers/repository/onboarding/pr/errors-warnings'); +} from '../../../../../lib/workers/repository/onboarding/pr/errors-warnings'; describe('workers/repository/onboarding/pr/errors-warnings', () => { describe('getWarnings()', () => { - let config; + let config: RenovateConfig; beforeEach(() => { jest.resetAllMocks(); - config = { - ...defaultConfig, - }; + config = getConfig(); }); it('returns warning text', () => { config.warnings = [ @@ -67,12 +65,10 @@ describe('workers/repository/onboarding/pr/errors-warnings', () => { }); }); describe('getErrors()', () => { - let config; + let config: RenovateConfig; beforeEach(() => { jest.resetAllMocks(); - config = { - ...defaultConfig, - }; + config = getConfig(); }); it('returns error text', () => { config.errors = [ diff --git a/test/workers/repository/onboarding/pr/index.spec.js b/test/workers/repository/onboarding/pr/index.spec.ts similarity index 91% rename from test/workers/repository/onboarding/pr/index.spec.js rename to test/workers/repository/onboarding/pr/index.spec.ts index 80ae3dd6b55f78090552b13ee71fd5179704a106..4924baa230000a7e455a56cf099a45e2d12e1003 100644 --- a/test/workers/repository/onboarding/pr/index.spec.js +++ b/test/workers/repository/onboarding/pr/index.spec.ts @@ -1,4 +1,5 @@ -const defaultConfig = require('../../../../../lib/config/defaults').getConfig(); +import { RenovateConfig, defaultConfig } from '../../../../util'; +import { BranchConfig } from '../../../../../lib/workers/common'; const { ensureOnboardingPr, @@ -9,9 +10,9 @@ const { platform } = require('../../../../../lib/platform'); describe('workers/repository/onboarding/pr', () => { describe('ensureOnboardingPr()', () => { - let config; + let config: RenovateConfig; let packageFiles; - let branches; + let branches: BranchConfig[]; beforeEach(() => { jest.resetAllMocks(); config = { @@ -25,7 +26,7 @@ describe('workers/repository/onboarding/pr', () => { platform.getPrBody = jest.fn(input => input); platform.createPr.mockReturnValue({}); }); - let createPrBody; + let createPrBody: string; it('returns if onboarded', async () => { config.repoIsOnboarded = true; await ensureOnboardingPr(config, packageFiles, branches); diff --git a/test/workers/repository/result.spec.js b/test/workers/repository/result.spec.ts similarity index 54% rename from test/workers/repository/result.spec.js rename to test/workers/repository/result.spec.ts index b739e56736c3986b1e9700289b436cadbe0a22a2..dd35e8db8764842e6faf51102a11a1b971e16b7b 100644 --- a/test/workers/repository/result.spec.js +++ b/test/workers/repository/result.spec.ts @@ -1,9 +1,10 @@ -const { processResult } = require('../../../lib/workers/repository/result'); +import { processResult } from '../../../lib/workers/repository/result'; +import { RenovateConfig, getConfig } from '../../util'; -let config; +let config: RenovateConfig; beforeEach(() => { jest.resetAllMocks(); - config = require('../../config/config/_fixtures'); + config = getConfig; }); describe('workers/repository/result', () => { diff --git a/test/workers/repository/updates/__snapshots__/generate.spec.js.snap b/test/workers/repository/updates/__snapshots__/generate.spec.ts.snap similarity index 100% rename from test/workers/repository/updates/__snapshots__/generate.spec.js.snap rename to test/workers/repository/updates/__snapshots__/generate.spec.ts.snap diff --git a/test/workers/repository/updates/branchify.spec.js b/test/workers/repository/updates/branchify.spec.ts similarity index 84% rename from test/workers/repository/updates/branchify.spec.js rename to test/workers/repository/updates/branchify.spec.ts index 19e32e427b3f5981efa8f7b2e7da651eed1b3aa2..d99b621888d265c64b2e8904e49f6c5ddf6c8152 100644 --- a/test/workers/repository/updates/branchify.spec.js +++ b/test/workers/repository/updates/branchify.spec.ts @@ -1,31 +1,28 @@ -/** @type any */ -let config; +import { RenovateConfig, mocked } from '../../../util'; +import { branchifyUpgrades } from '../../../../lib/workers/repository/updates/branchify'; +import * as _flatten from '../../../../lib/workers/repository/updates/flatten'; +import { BranchConfig } from '../../../../lib/workers/common'; +import { getConfig } from '../../../../lib/config/defaults'; + +const flattenUpdates = mocked(_flatten).flattenUpdates; +jest.mock('../../../../lib/workers/repository/updates/flatten'); + +let config: RenovateConfig; beforeEach(() => { jest.resetAllMocks(); - config = { ...require('../../../config/config/_fixtures') }; + config = getConfig(); config.errors = []; config.warnings = []; }); -const { - branchifyUpgrades, -} = require('../../../../lib/workers/repository/updates/branchify'); - -/** @type any */ -const { - flattenUpdates, -} = require('../../../../lib/workers/repository/updates/flatten'); - -jest.mock('../../../../lib/workers/repository/updates/flatten'); - describe('workers/repository/updates/branchify', () => { describe('branchifyUpgrades()', () => { - it('returns empty', async () => { + it('returns empty', () => { flattenUpdates.mockReturnValueOnce([]); - const res = await branchifyUpgrades(config, {}); + const res = branchifyUpgrades(config, {}); expect(res.branches).toEqual([]); }); - it('returns one branch if one input', async () => { + it('returns one branch if one input', () => { flattenUpdates.mockReturnValueOnce([ { depName: 'foo', @@ -36,12 +33,12 @@ describe('workers/repository/updates/branchify', () => { }, ]); config.repoIsOnboarded = true; - const res = await branchifyUpgrades(config, {}); + const res = branchifyUpgrades(config, {}); expect(Object.keys(res.branches)).toHaveLength(1); expect(res.branches[0].isMinor).toBe(true); expect(res.branches[0].upgrades[0].isMinor).toBe(true); }); - it('uses major/minor/patch slugs', async () => { + it('uses major/minor/patch slugs', () => { flattenUpdates.mockReturnValueOnce([ { depName: 'foo', @@ -89,7 +86,7 @@ describe('workers/repository/updates/branchify', () => { }, ]); config.repoIsOnboarded = true; - const res = await branchifyUpgrades(config, {}); + const res = branchifyUpgrades(config, {}); expect(Object.keys(res.branches)).toHaveLength(4); expect(res.branches[0].isMajor).toBe(true); expect(res.branches[0].groupSlug).toBe(`major-some-packages`); @@ -100,7 +97,7 @@ describe('workers/repository/updates/branchify', () => { expect(res.branches[3].isMajor).toBe(true); expect(res.branches[3].groupSlug).toBe(`major-2-other-packages`); }); - it('does not group if different compiled branch names', async () => { + it('does not group if different compiled branch names', () => { flattenUpdates.mockReturnValueOnce([ { depName: 'foo', @@ -121,10 +118,10 @@ describe('workers/repository/updates/branchify', () => { prTitle: 'some-title', }, ]); - const res = await branchifyUpgrades(config, {}); + const res = branchifyUpgrades(config, {}); expect(Object.keys(res.branches)).toHaveLength(3); }); - it('groups if same compiled branch names', async () => { + it('groups if same compiled branch names', () => { flattenUpdates.mockReturnValueOnce([ { depName: 'foo', @@ -145,10 +142,10 @@ describe('workers/repository/updates/branchify', () => { prTitle: 'some-title', }, ]); - const res = await branchifyUpgrades(config, {}); + const res = branchifyUpgrades(config, {}); expect(Object.keys(res.branches)).toHaveLength(2); }); - it('groups if same compiled group name', async () => { + it('groups if same compiled group name', () => { flattenUpdates.mockReturnValueOnce([ { depName: 'foo', @@ -173,10 +170,10 @@ describe('workers/repository/updates/branchify', () => { group: { branchName: 'renovate/my-group' }, }, ]); - const res = await branchifyUpgrades(config, {}); + const res = branchifyUpgrades(config, {}); expect(Object.keys(res.branches)).toHaveLength(2); }); - it('enforces valid git branch name', async () => { + it('enforces valid git branch name', () => { const fixtures = [ { upgrade: { @@ -240,8 +237,8 @@ describe('workers/repository/updates/branchify', () => { fixtures.map(({ upgrade }) => upgrade) ); - (await branchifyUpgrades(config, {})).branches.forEach( - ({ branchName }, index) => { + branchifyUpgrades(config, {}).branches.forEach( + ({ branchName }: BranchConfig, index: number) => { expect(branchName).toBe(fixtures[index].expectedBranchName); } ); diff --git a/test/workers/repository/updates/flatten.spec.js b/test/workers/repository/updates/flatten.spec.ts similarity index 91% rename from test/workers/repository/updates/flatten.spec.js rename to test/workers/repository/updates/flatten.spec.ts index 2cde0443390482c2af964e3f73db3470a343f293..8d8a66346e4352a8553796d1615da45ad3e455b3 100644 --- a/test/workers/repository/updates/flatten.spec.js +++ b/test/workers/repository/updates/flatten.spec.ts @@ -1,12 +1,11 @@ -const { - flattenUpdates, -} = require('../../../../lib/workers/repository/updates/flatten'); +import { RenovateConfig, getConfig } from '../../../util'; -/** @type any */ -let config; +import { flattenUpdates } from '../../../../lib/workers/repository/updates/flatten'; + +let config: RenovateConfig; beforeEach(() => { jest.resetAllMocks(); - config = { ...require('../../../config/config/_fixtures') }; + config = getConfig(); config.errors = []; config.warnings = []; }); diff --git a/test/workers/repository/updates/generate.spec.js b/test/workers/repository/updates/generate.spec.ts similarity index 98% rename from test/workers/repository/updates/generate.spec.js rename to test/workers/repository/updates/generate.spec.ts index f74765d859aafc99d78f1e77487f8f43f3b82241..f68a68e72acb340f813b089b00ed3c779f9ede9b 100644 --- a/test/workers/repository/updates/generate.spec.js +++ b/test/workers/repository/updates/generate.spec.ts @@ -1,13 +1,10 @@ -const defaultConfig = require('../../../../lib/config/defaults').getConfig(); +import { defaultConfig } from '../../../util'; +import { generateBranchConfig } from '../../../../lib/workers/repository/updates/generate'; beforeEach(() => { jest.resetAllMocks(); }); -const { - generateBranchConfig, -} = require('../../../../lib/workers/repository/updates/generate'); - describe('workers/repository/updates/generate', () => { describe('generateBranchConfig()', () => { it('does not group single upgrade', () => { diff --git a/yarn.lock b/yarn.lock index af0b067d333f6a7e2600e67a298d736053cca66f..4bb17c468cde0de034fa7ca3d9bd70b79e7c55d5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5008,6 +5008,13 @@ jest-message-util@^24.9.0: slash "^2.0.0" stack-utils "^1.0.1" +jest-mock-extended@1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/jest-mock-extended/-/jest-mock-extended-1.0.7.tgz#25da632f569037330260b9c0171b21f42285a86e" + integrity sha512-2b/6quDLAOOz+WJy9OgV236Fh8Hb4VEta81huQsn+/tslgljeUIOYCWViWDENRHPKiIvuyYlYVG7+dT+SrWR/w== + dependencies: + ts-essentials "^4.0.0" + jest-mock@^24.9.0: version "24.9.0" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" @@ -9036,6 +9043,11 @@ trough@^1.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.4.tgz#3b52b1f13924f460c3fbfd0df69b587dbcbc762e" integrity sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q== +ts-essentials@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/ts-essentials/-/ts-essentials-4.0.0.tgz#506c42b270bbd0465574b90416533175b09205ab" + integrity sha512-uQJX+SRY9mtbKU+g9kl5Fi7AEMofPCvHfJkQlaygpPmHPZrtgaBqbWFOYyiA47RhnSwwnXdepUJrgqUYxoUyhQ== + tslib@^1.8.1, tslib@^1.9.0: version "1.10.0" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"