From 982d5e9d4d83b9251a31b125933d26712bb592b1 Mon Sep 17 00:00:00 2001 From: Sourav Das <souravdasslg95@gmail.com> Date: Fri, 17 Jan 2020 16:48:34 +0530 Subject: [PATCH] refactor(function): Update Artifact Function (#5139) 1. Create interface UpdateArtifact 2. Update function call 3. Update Test --- lib/manager/bundler/artifacts.ts | 22 ++--- lib/manager/cargo/artifacts.ts | 14 ++-- lib/manager/common.ts | 11 ++- lib/manager/composer/artifacts.ts | 14 ++-- lib/manager/git-submodules/artifacts.ts | 11 +-- lib/manager/gomod/artifacts.ts | 14 ++-- lib/manager/mix/artifacts.ts | 14 ++-- lib/manager/pipenv/artifacts.ts | 14 ++-- lib/manager/poetry/artifacts.ts | 14 ++-- lib/workers/branch/get-updated.ts | 22 ++--- test/manager/bundler/artifacts.spec.ts | 64 +++++++++++---- test/manager/cargo/artifacts.spec.ts | 48 ++++++++--- test/manager/composer/artifacts.spec.ts | 84 ++++++++++++++++---- test/manager/git-submodules/artifact.spec.ts | 9 ++- test/manager/gomod/artifacts.spec.ts | 76 +++++++++++++----- test/manager/mix/artifacts.spec.ts | 61 +++++++++++--- test/manager/pipenv/artifacts.spec.ts | 43 ++++++++-- test/manager/poetry/artifacts.spec.ts | 50 +++++++++--- 18 files changed, 423 insertions(+), 162 deletions(-) diff --git a/lib/manager/bundler/artifacts.ts b/lib/manager/bundler/artifacts.ts index 152a3b4aa6..c4e1131e2b 100644 --- a/lib/manager/bundler/artifacts.ts +++ b/lib/manager/bundler/artifacts.ts @@ -10,7 +10,7 @@ import { matches, sortVersions, } from '../../versioning/ruby'; -import { UpdateArtifactsConfig, UpdateArtifactsResult } from '../common'; +import { UpdateArtifact, UpdateArtifactsResult } from '../common'; import { platform } from '../../platform'; import { BUNDLER_INVALID_CREDENTIALS, @@ -22,12 +22,12 @@ import { BINARY_SOURCE_GLOBAL, } from '../../constants/data-binary-source'; -export async function updateArtifacts( - packageFileName: string, - updatedDeps: string[], - newPackageFileContent: string, - config: UpdateArtifactsConfig -): Promise<UpdateArtifactsResult[] | null> { +export async function updateArtifacts({ + packageFileName, + updatedDeps, + newPackageFileContent, + config, +}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> { logger.debug(`bundler.updateArtifacts(${packageFileName})`); // istanbul ignore if if (global.repoCache.bundlerArtifactsError) { @@ -190,12 +190,12 @@ export async function updateArtifacts( const newUpdatedDeps = [ ...new Set([...updatedDeps, ...resolveMatches]), ]; - return updateArtifacts( + return updateArtifacts({ packageFileName, - newUpdatedDeps, + updatedDeps: newUpdatedDeps, newPackageFileContent, - config - ); + config, + }); } logger.info( { err }, diff --git a/lib/manager/cargo/artifacts.ts b/lib/manager/cargo/artifacts.ts index 61710b6d6d..3fa234e808 100644 --- a/lib/manager/cargo/artifacts.ts +++ b/lib/manager/cargo/artifacts.ts @@ -3,16 +3,16 @@ import { outputFile, readFile } from 'fs-extra'; import { exec } from '../../util/exec'; import { getChildProcessEnv } from '../../util/exec/env'; import { logger } from '../../logger'; -import { UpdateArtifactsConfig, UpdateArtifactsResult } from '../common'; +import { UpdateArtifact, UpdateArtifactsResult } from '../common'; import { platform } from '../../platform'; import { BINARY_SOURCE_DOCKER } from '../../constants/data-binary-source'; -export async function updateArtifacts( - packageFileName: string, - updatedDeps: string[], - newPackageFileContent: string, - config: UpdateArtifactsConfig -): Promise<UpdateArtifactsResult[] | null> { +export async function updateArtifacts({ + packageFileName, + updatedDeps, + newPackageFileContent, + config, +}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> { logger.debug(`cargo.updateArtifacts(${packageFileName})`); if (updatedDeps === undefined || updatedDeps.length < 1) { logger.debug('No updated cargo deps - returning null'); diff --git a/lib/manager/common.ts b/lib/manager/common.ts index eb819f7e38..2a18a1a927 100644 --- a/lib/manager/common.ts +++ b/lib/manager/common.ts @@ -173,6 +173,12 @@ export interface UpdateArtifactsResult { file?: { name: string; contents: string }; } +export interface UpdateArtifact { + packageFileName: string; + updatedDeps: string[]; + newPackageFileContent: string; + config: UpdateArtifactsConfig; +} export interface ManagerApi { language?: string; supportsLockFileMaintenance?: boolean; @@ -195,10 +201,7 @@ export interface ManagerApi { getRangeStrategy(config: RangeConfig): RangeStrategy; updateArtifacts?( - packageFileName: string, - updatedDeps: string[], - newPackageFileContent: string, - config: UpdateArtifactsConfig + updateArtifact: UpdateArtifact ): Result<UpdateArtifactsResult[] | null>; updateDependency( diff --git a/lib/manager/composer/artifacts.ts b/lib/manager/composer/artifacts.ts index 343c29705a..cd1bad43ec 100644 --- a/lib/manager/composer/artifacts.ts +++ b/lib/manager/composer/artifacts.ts @@ -3,7 +3,7 @@ import URL from 'url'; import fs from 'fs-extra'; import upath from 'upath'; import { exec } from '../../util/exec'; -import { UpdateArtifactsConfig, UpdateArtifactsResult } from '../common'; +import { UpdateArtifact, UpdateArtifactsResult } from '../common'; import { logger } from '../../logger'; import * as hostRules from '../../util/host-rules'; import { getChildProcessEnv } from '../../util/exec/env'; @@ -15,12 +15,12 @@ import { BINARY_SOURCE_GLOBAL, } from '../../constants/data-binary-source'; -export async function updateArtifacts( - packageFileName: string, - updatedDeps: string[], - newPackageFileContent: string, - config: UpdateArtifactsConfig -): Promise<UpdateArtifactsResult[] | null> { +export async function updateArtifacts({ + packageFileName, + updatedDeps, + newPackageFileContent, + config, +}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> { logger.debug(`composer.updateArtifacts(${packageFileName})`); const env = getChildProcessEnv(['COMPOSER_CACHE_DIR']); env.COMPOSER_CACHE_DIR = diff --git a/lib/manager/git-submodules/artifacts.ts b/lib/manager/git-submodules/artifacts.ts index 81555ef443..cd0f348e3e 100644 --- a/lib/manager/git-submodules/artifacts.ts +++ b/lib/manager/git-submodules/artifacts.ts @@ -1,11 +1,8 @@ -import { UpdateArtifactsConfig, UpdateArtifactsResult } from '../common'; +import { UpdateArtifact, UpdateArtifactsResult } from '../common'; -export default function updateArtifacts( - packageFileName: string, - updatedDeps: string[], - newPackageFileContent: string, - config: UpdateArtifactsConfig -): UpdateArtifactsResult[] | null { +export default function updateArtifacts({ + updatedDeps, +}: UpdateArtifact): UpdateArtifactsResult[] | null { return [ { file: { diff --git a/lib/manager/gomod/artifacts.ts b/lib/manager/gomod/artifacts.ts index 496d1a96ad..e0be958572 100644 --- a/lib/manager/gomod/artifacts.ts +++ b/lib/manager/gomod/artifacts.ts @@ -4,7 +4,7 @@ import { exec } from '../../util/exec'; import { find } from '../../util/host-rules'; import { getChildProcessEnv } from '../../util/exec/env'; import { logger } from '../../logger'; -import { UpdateArtifactsConfig, UpdateArtifactsResult } from '../common'; +import { UpdateArtifact, UpdateArtifactsResult } from '../common'; import { platform } from '../../platform'; import { BINARY_SOURCE_AUTO, @@ -12,12 +12,12 @@ import { BINARY_SOURCE_GLOBAL, } from '../../constants/data-binary-source'; -export async function updateArtifacts( - goModFileName: string, - _updatedDeps: string[], - newGoModContent: string, - config: UpdateArtifactsConfig -): Promise<UpdateArtifactsResult[] | null> { +export async function updateArtifacts({ + packageFileName: goModFileName, + updatedDeps: _updatedDeps, + newPackageFileContent: newGoModContent, + config, +}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> { logger.debug(`gomod.updateArtifacts(${goModFileName})`); const customEnv = ['GOPATH', 'GOPROXY', 'GONOSUMDB']; const env = getChildProcessEnv(customEnv); diff --git a/lib/manager/mix/artifacts.ts b/lib/manager/mix/artifacts.ts index 58701f687e..839ecb1c89 100644 --- a/lib/manager/mix/artifacts.ts +++ b/lib/manager/mix/artifacts.ts @@ -3,15 +3,15 @@ import fs from 'fs-extra'; import { platform } from '../../platform'; import { exec } from '../../util/exec'; import { logger } from '../../logger'; -import { UpdateArtifactsConfig, UpdateArtifactsResult } from '../common'; +import { UpdateArtifact, UpdateArtifactsResult } from '../common'; import { BINARY_SOURCE_DOCKER } from '../../constants/data-binary-source'; -export async function updateArtifacts( - packageFileName: string, - updatedDeps: string[], - newPackageFileContent: string, - config: UpdateArtifactsConfig -): Promise<UpdateArtifactsResult[] | null> { +export async function updateArtifacts({ + packageFileName, + updatedDeps, + newPackageFileContent, + config, +}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> { logger.debug(`mix.getArtifacts(${packageFileName})`); if (updatedDeps.length < 1) { logger.debug('No updated mix deps - returning null'); diff --git a/lib/manager/pipenv/artifacts.ts b/lib/manager/pipenv/artifacts.ts index 99881cf7be..773b2603c5 100644 --- a/lib/manager/pipenv/artifacts.ts +++ b/lib/manager/pipenv/artifacts.ts @@ -3,16 +3,16 @@ import { join, dirname } from 'upath'; import { exec } from '../../util/exec'; import { getChildProcessEnv } from '../../util/exec/env'; import { logger } from '../../logger'; -import { UpdateArtifactsResult, UpdateArtifactsConfig } from '../common'; +import { UpdateArtifactsResult, UpdateArtifact } from '../common'; import { platform } from '../../platform'; import { BINARY_SOURCE_DOCKER } from '../../constants/data-binary-source'; -export async function updateArtifacts( - pipfileName: string, - _updatedDeps: string[], - newPipfileContent: string, - config: UpdateArtifactsConfig -): Promise<UpdateArtifactsResult[] | null> { +export async function updateArtifacts({ + packageFileName: pipfileName, + updatedDeps: _updatedDeps, + newPackageFileContent: newPipfileContent, + config, +}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> { logger.debug(`pipenv.updateArtifacts(${pipfileName})`); const env = getChildProcessEnv(['LC_ALL', 'LANG', 'PIPENV_CACHE_DIR']); diff --git a/lib/manager/poetry/artifacts.ts b/lib/manager/poetry/artifacts.ts index d5d6ac08a3..7399753251 100644 --- a/lib/manager/poetry/artifacts.ts +++ b/lib/manager/poetry/artifacts.ts @@ -3,16 +3,16 @@ import { parse, join } from 'upath'; import { outputFile, readFile } from 'fs-extra'; import { exec, ExecOptions } from '../../util/exec'; import { logger } from '../../logger'; -import { UpdateArtifactsConfig, UpdateArtifactsResult } from '../common'; +import { UpdateArtifact, UpdateArtifactsResult } from '../common'; import { platform } from '../../platform'; import { BINARY_SOURCE_DOCKER } from '../../constants/data-binary-source'; -export async function updateArtifacts( - packageFileName: string, - updatedDeps: string[], - newPackageFileContent: string, - config: UpdateArtifactsConfig -): Promise<UpdateArtifactsResult[] | null> { +export async function updateArtifacts({ + packageFileName, + updatedDeps, + newPackageFileContent, + config, +}: UpdateArtifact): Promise<UpdateArtifactsResult[] | null> { logger.debug(`poetry.updateArtifacts(${packageFileName})`); if (!is.nonEmptyArray(updatedDeps)) { logger.debug('No updated poetry deps - returning null'); diff --git a/lib/workers/branch/get-updated.ts b/lib/workers/branch/get-updated.ts index 7f8994fc85..3ef7ee2b9f 100644 --- a/lib/workers/branch/get-updated.ts +++ b/lib/workers/branch/get-updated.ts @@ -91,12 +91,12 @@ export async function getUpdatedPackageFiles( const updatedDeps = packageFileUpdatedDeps[packageFile.name]; const updateArtifacts = get(manager, 'updateArtifacts'); if (updateArtifacts) { - const results = await updateArtifacts( - packageFile.name, + const results = await updateArtifacts({ + packageFileName: packageFile.name, updatedDeps, - packageFile.contents, - config - ); + newPackageFileContent: packageFile.contents, + config, + }); if (is.nonEmptyArray(results)) { for (const res of results) { const { file, artifactError } = res; @@ -118,12 +118,12 @@ export async function getUpdatedPackageFiles( const packageFileContents = updatedFileContents[packageFile] || (await platform.getFile(packageFile, config.parentBranch)); - const results = await updateArtifacts( - packageFile, - [], - packageFileContents, - config - ); + const results = await updateArtifacts({ + packageFileName: packageFile, + updatedDeps: [], + newPackageFileContent: packageFileContents, + config, + }); if (is.nonEmptyArray(results)) { for (const res of results) { const { file, artifactError } = res; diff --git a/test/manager/bundler/artifacts.spec.ts b/test/manager/bundler/artifacts.spec.ts index 6c66a9b4c9..442b10e1ed 100644 --- a/test/manager/bundler/artifacts.spec.ts +++ b/test/manager/bundler/artifacts.spec.ts @@ -38,7 +38,14 @@ describe('bundler.updateArtifacts()', () => { env.getChildProcessEnv.mockReturnValue(envMock.basic); }); it('returns null by default', async () => { - expect(await updateArtifacts('', [], '', config)).toBeNull(); + expect( + await updateArtifacts({ + packageFileName: '', + updatedDeps: [], + newPackageFileContent: '', + config, + }) + ).toBeNull(); }); it('returns null if Gemfile.lock was not changed', async () => { platform.getFile.mockResolvedValueOnce('Current Gemfile.lock'); @@ -49,7 +56,12 @@ describe('bundler.updateArtifacts()', () => { } as Git.StatusResult); fs.readFile.mockResolvedValueOnce('Updated Gemfile.lock' as any); expect( - await updateArtifacts('Gemfile', [], 'Updated Gemfile content', config) + await updateArtifacts({ + packageFileName: 'Gemfile', + updatedDeps: [], + newPackageFileContent: 'Updated Gemfile content', + config, + }) ).toMatchSnapshot(); expect(execSnapshots).toMatchSnapshot(); }); @@ -62,7 +74,12 @@ describe('bundler.updateArtifacts()', () => { } as Git.StatusResult); fs.readFile.mockResolvedValueOnce('Updated Gemfile.lock' as any); expect( - await updateArtifacts('Gemfile', [], 'Updated Gemfile content', config) + await updateArtifacts({ + packageFileName: 'Gemfile', + updatedDeps: [], + newPackageFileContent: 'Updated Gemfile content', + config, + }) ).toMatchSnapshot(); expect(execSnapshots).toMatchSnapshot(); }); @@ -75,9 +92,14 @@ describe('bundler.updateArtifacts()', () => { } as Git.StatusResult); fs.readFile.mockResolvedValueOnce('Updated Gemfile.lock' as any); expect( - await updateArtifacts('Gemfile', [], 'Updated Gemfile content', { - ...config, - binarySource: BINARY_SOURCE_GLOBAL, + await updateArtifacts({ + packageFileName: 'Gemfile', + updatedDeps: [], + newPackageFileContent: 'Updated Gemfile content', + config: { + ...config, + binarySource: BINARY_SOURCE_GLOBAL, + }, }) ).toMatchSnapshot(); expect(execSnapshots).toMatchSnapshot(); @@ -100,9 +122,14 @@ describe('bundler.updateArtifacts()', () => { } as Git.StatusResult); fs.readFile.mockResolvedValueOnce('Updated Gemfile.lock' as any); expect( - await updateArtifacts('Gemfile', [], 'Updated Gemfile content', { - ...config, - binarySource: BINARY_SOURCE_DOCKER, + await updateArtifacts({ + packageFileName: 'Gemfile', + updatedDeps: [], + newPackageFileContent: 'Updated Gemfile content', + config: { + ...config, + binarySource: BINARY_SOURCE_DOCKER, + }, }) ).toMatchSnapshot(); expect(execSnapshots).toMatchSnapshot(); @@ -123,13 +150,18 @@ describe('bundler.updateArtifacts()', () => { } as Git.StatusResult); fs.readFile.mockResolvedValueOnce('Updated Gemfile.lock' as any); expect( - await updateArtifacts('Gemfile', [], 'Updated Gemfile content', { - ...config, - binarySource: BINARY_SOURCE_DOCKER, - dockerUser: 'foobar', - compatibility: { - ruby: '1.2.5', - bundler: '3.2.1', + await updateArtifacts({ + packageFileName: 'Gemfile', + updatedDeps: [], + newPackageFileContent: 'Updated Gemfile content', + config: { + ...config, + binarySource: BINARY_SOURCE_DOCKER, + dockerUser: 'foobar', + compatibility: { + ruby: '1.2.5', + bundler: '3.2.1', + }, }, }) ).toMatchSnapshot(); diff --git a/test/manager/cargo/artifacts.spec.ts b/test/manager/cargo/artifacts.spec.ts index 5b6481afbc..d9c788562d 100644 --- a/test/manager/cargo/artifacts.spec.ts +++ b/test/manager/cargo/artifacts.spec.ts @@ -30,12 +30,22 @@ describe('.updateArtifacts()', () => { it('returns null if no Cargo.lock found', async () => { const updatedDeps = ['dep1']; expect( - await cargo.updateArtifacts('Cargo.toml', updatedDeps, '', config) + await cargo.updateArtifacts({ + packageFileName: 'Cargo.toml', + updatedDeps, + newPackageFileContent: '', + config, + }) ).toBeNull(); }); it('returns null if updatedDeps is empty', async () => { expect( - await cargo.updateArtifacts('Cargo.toml', [], '', config) + await cargo.updateArtifacts({ + packageFileName: 'Cargo.toml', + updatedDeps: [], + newPackageFileContent: '', + config, + }) ).toBeNull(); }); it('returns null if unchanged', async () => { @@ -44,7 +54,12 @@ describe('.updateArtifacts()', () => { fs.readFile.mockReturnValueOnce('Current Cargo.lock' as any); const updatedDeps = ['dep1']; expect( - await cargo.updateArtifacts('Cargo.toml', updatedDeps, '', config) + await cargo.updateArtifacts({ + packageFileName: 'Cargo.toml', + updatedDeps, + newPackageFileContent: '', + config, + }) ).toBeNull(); expect(execSnapshots).toMatchSnapshot(); }); @@ -54,7 +69,12 @@ describe('.updateArtifacts()', () => { fs.readFile.mockReturnValueOnce('New Cargo.lock' as any); const updatedDeps = ['dep1']; expect( - await cargo.updateArtifacts('Cargo.toml', updatedDeps, '{}', config) + await cargo.updateArtifacts({ + packageFileName: 'Cargo.toml', + updatedDeps, + newPackageFileContent: '{}', + config, + }) ).not.toBeNull(); expect(execSnapshots).toMatchSnapshot(); }); @@ -64,10 +84,15 @@ describe('.updateArtifacts()', () => { fs.readFile.mockReturnValueOnce('New Cargo.lock' as any); const updatedDeps = ['dep1']; expect( - await cargo.updateArtifacts('Cargo.toml', updatedDeps, '{}', { - ...config, - binarySource: BINARY_SOURCE_DOCKER, - dockerUser: 'foobar', + await cargo.updateArtifacts({ + packageFileName: 'Cargo.toml', + updatedDeps, + newPackageFileContent: '{}', + config: { + ...config, + binarySource: BINARY_SOURCE_DOCKER, + dockerUser: 'foobar', + }, }) ).not.toBeNull(); expect(execSnapshots).toMatchSnapshot(); @@ -79,7 +104,12 @@ describe('.updateArtifacts()', () => { }); const updatedDeps = ['dep1']; expect( - await cargo.updateArtifacts('Cargo.toml', updatedDeps, '{}', config) + await cargo.updateArtifacts({ + packageFileName: 'Cargo.toml', + updatedDeps, + newPackageFileContent: '{}', + config, + }) ).toMatchSnapshot(); }); }); diff --git a/test/manager/composer/artifacts.spec.ts b/test/manager/composer/artifacts.spec.ts index cf0de0167f..2c70a03f0a 100644 --- a/test/manager/composer/artifacts.spec.ts +++ b/test/manager/composer/artifacts.spec.ts @@ -36,7 +36,12 @@ describe('.updateArtifacts()', () => { }); it('returns if no composer.lock found', async () => { expect( - await composer.updateArtifacts('composer.json', [], '{}', config) + await composer.updateArtifacts({ + packageFileName: 'composer.json', + updatedDeps: [], + newPackageFileContent: '{}', + config, + }) ).toBeNull(); }); it('returns null if unchanged', async () => { @@ -45,7 +50,12 @@ describe('.updateArtifacts()', () => { fs.readFile.mockReturnValueOnce('Current composer.lock' as any); platform.getRepoStatus.mockResolvedValue({ modified: [] } as StatusResult); expect( - await composer.updateArtifacts('composer.json', [], '{}', config) + await composer.updateArtifacts({ + packageFileName: 'composer.json', + updatedDeps: [], + newPackageFileContent: '{}', + config, + }) ).toBeNull(); expect(execSnapshots).toMatchSnapshot(); }); @@ -63,7 +73,12 @@ describe('.updateArtifacts()', () => { }); platform.getRepoStatus.mockResolvedValue({ modified: [] } as StatusResult); expect( - await composer.updateArtifacts('composer.json', [], '{}', authConfig) + await composer.updateArtifacts({ + packageFileName: 'composer.json', + updatedDeps: [], + newPackageFileContent: '{}', + config: authConfig, + }) ).toBeNull(); expect(execSnapshots).toMatchSnapshot(); }); @@ -75,7 +90,12 @@ describe('.updateArtifacts()', () => { modified: ['composer.lock'], } as StatusResult); expect( - await composer.updateArtifacts('composer.json', [], '{}', config) + await composer.updateArtifacts({ + packageFileName: 'composer.json', + updatedDeps: [], + newPackageFileContent: '{}', + config, + }) ).not.toBeNull(); expect(execSnapshots).toMatchSnapshot(); }); @@ -87,9 +107,14 @@ describe('.updateArtifacts()', () => { modified: ['composer.lock'], } as StatusResult); expect( - await composer.updateArtifacts('composer.json', [], '{}', { - ...config, - isLockFileMaintenance: true, + await composer.updateArtifacts({ + packageFileName: 'composer.json', + updatedDeps: [], + newPackageFileContent: '{}', + config: { + ...config, + isLockFileMaintenance: true, + }, }) ).not.toBeNull(); expect(execSnapshots).toMatchSnapshot(); @@ -101,10 +126,15 @@ describe('.updateArtifacts()', () => { fs.readFile.mockReturnValueOnce('New composer.lock' as any); expect( - await composer.updateArtifacts('composer.json', [], '{}', { - ...config, - binarySource: BINARY_SOURCE_DOCKER, - dockerUser: 'foobar', + await composer.updateArtifacts({ + packageFileName: 'composer.json', + updatedDeps: [], + newPackageFileContent: '{}', + config: { + ...config, + binarySource: BINARY_SOURCE_DOCKER, + dockerUser: 'foobar', + }, }) ).not.toBeNull(); expect(execSnapshots).toMatchSnapshot(); @@ -114,9 +144,14 @@ describe('.updateArtifacts()', () => { const execSnapshots = mockExecAll(exec); fs.readFile.mockReturnValueOnce('New composer.lock' as any); expect( - await composer.updateArtifacts('composer.json', [], '{}', { - ...config, - binarySource: BINARY_SOURCE_GLOBAL, + await composer.updateArtifacts({ + packageFileName: 'composer.json', + updatedDeps: [], + newPackageFileContent: '{}', + config: { + ...config, + binarySource: BINARY_SOURCE_GLOBAL, + }, }) ).not.toBeNull(); expect(execSnapshots).toMatchSnapshot(); @@ -127,7 +162,12 @@ describe('.updateArtifacts()', () => { throw new Error('not found'); }); expect( - await composer.updateArtifacts('composer.json', [], '{}', config) + await composer.updateArtifacts({ + packageFileName: 'composer.json', + updatedDeps: [], + newPackageFileContent: '{}', + config, + }) ).toMatchSnapshot(); }); it('catches unmet requirements errors', async () => { @@ -138,7 +178,12 @@ describe('.updateArtifacts()', () => { ); }); expect( - await composer.updateArtifacts('composer.json', [], '{}', config) + await composer.updateArtifacts({ + packageFileName: 'composer.json', + updatedDeps: [], + newPackageFileContent: '{}', + config, + }) ).toMatchSnapshot(); }); it('throws for disk space', async () => { @@ -149,7 +194,12 @@ describe('.updateArtifacts()', () => { ); }); await expect( - composer.updateArtifacts('composer.json', [], '{}', config) + composer.updateArtifacts({ + packageFileName: 'composer.json', + updatedDeps: [], + newPackageFileContent: '{}', + config, + }) ).rejects.toThrow(); }); }); diff --git a/test/manager/git-submodules/artifact.spec.ts b/test/manager/git-submodules/artifact.spec.ts index 4c845d40ff..5df38c961d 100644 --- a/test/manager/git-submodules/artifact.spec.ts +++ b/test/manager/git-submodules/artifact.spec.ts @@ -3,7 +3,14 @@ import updateArtifacts from '../../../lib/manager/git-submodules/artifacts'; describe('lib/manager/gitsubmodules/artifacts', () => { describe('updateArtifacts()', () => { it('returns empty content', () => { - expect(updateArtifacts('', [''], '', {})).toMatchSnapshot(); + expect( + updateArtifacts({ + packageFileName: '', + updatedDeps: [''], + newPackageFileContent: '', + config: {}, + }) + ).toMatchSnapshot(); }); }); }); diff --git a/test/manager/gomod/artifacts.spec.ts b/test/manager/gomod/artifacts.spec.ts index c3813fdf5e..0ab40fc52c 100644 --- a/test/manager/gomod/artifacts.spec.ts +++ b/test/manager/gomod/artifacts.spec.ts @@ -50,7 +50,12 @@ describe('.updateArtifacts()', () => { it('returns if no go.sum found', async () => { const execSnapshots = mockExecAll(exec); expect( - await gomod.updateArtifacts('go.mod', [], gomod1, config) + await gomod.updateArtifacts({ + packageFileName: 'go.mod', + updatedDeps: [], + newPackageFileContent: gomod1, + config, + }) ).toBeNull(); expect(execSnapshots).toMatchSnapshot(); }); @@ -61,7 +66,12 @@ describe('.updateArtifacts()', () => { modified: [], } as StatusResult); expect( - await gomod.updateArtifacts('go.mod', [], gomod1, config) + await gomod.updateArtifacts({ + packageFileName: 'go.mod', + updatedDeps: [], + newPackageFileContent: gomod1, + config, + }) ).toBeNull(); expect(execSnapshots).toMatchSnapshot(); }); @@ -73,7 +83,12 @@ describe('.updateArtifacts()', () => { } as StatusResult); fs.readFile.mockReturnValueOnce('New go.sum' as any); expect( - await gomod.updateArtifacts('go.mod', [], gomod1, config) + await gomod.updateArtifacts({ + packageFileName: 'go.mod', + updatedDeps: [], + newPackageFileContent: gomod1, + config, + }) ).not.toBeNull(); expect(execSnapshots).toMatchSnapshot(); }); @@ -85,10 +100,15 @@ describe('.updateArtifacts()', () => { } as StatusResult); fs.readFile.mockReturnValueOnce('New go.sum' as any); expect( - await gomod.updateArtifacts('go.mod', [], gomod1, { - ...config, - binarySource: BINARY_SOURCE_DOCKER, - dockerUser: 'foobar', + await gomod.updateArtifacts({ + packageFileName: 'go.mod', + updatedDeps: [], + newPackageFileContent: gomod1, + config: { + ...config, + binarySource: BINARY_SOURCE_DOCKER, + dockerUser: 'foobar', + }, }) ).not.toBeNull(); expect(execSnapshots).toMatchSnapshot(); @@ -101,9 +121,14 @@ describe('.updateArtifacts()', () => { } as StatusResult); fs.readFile.mockReturnValueOnce('New go.sum' as any); expect( - await gomod.updateArtifacts('go.mod', [], gomod1, { - ...config, - binarySource: BINARY_SOURCE_GLOBAL, + await gomod.updateArtifacts({ + packageFileName: 'go.mod', + updatedDeps: [], + newPackageFileContent: gomod1, + config: { + ...config, + binarySource: BINARY_SOURCE_GLOBAL, + }, }) ).not.toBeNull(); expect(execSnapshots).toMatchSnapshot(); @@ -119,9 +144,14 @@ describe('.updateArtifacts()', () => { } as StatusResult); fs.readFile.mockReturnValueOnce('New go.sum' as any); expect( - await gomod.updateArtifacts('go.mod', [], gomod1, { - ...config, - binarySource: BINARY_SOURCE_DOCKER, + await gomod.updateArtifacts({ + packageFileName: 'go.mod', + updatedDeps: [], + newPackageFileContent: gomod1, + config: { + ...config, + binarySource: BINARY_SOURCE_DOCKER, + }, }) ).not.toBeNull(); expect(execSnapshots).toMatchSnapshot(); @@ -141,10 +171,15 @@ describe('.updateArtifacts()', () => { try { global.appMode = true; expect( - await gomod.updateArtifacts('go.mod', [], gomod1, { - ...config, - binarySource: BINARY_SOURCE_DOCKER, - postUpdateOptions: ['gomodTidy'], + await gomod.updateArtifacts({ + packageFileName: 'go.mod', + updatedDeps: [], + newPackageFileContent: gomod1, + config: { + ...config, + binarySource: BINARY_SOURCE_DOCKER, + postUpdateOptions: ['gomodTidy'], + }, }) ).not.toBeNull(); expect(execSnapshots).toMatchSnapshot(); @@ -159,7 +194,12 @@ describe('.updateArtifacts()', () => { throw new Error('This update totally doesnt work'); }); expect( - await gomod.updateArtifacts('go.mod', [], gomod1, config) + await gomod.updateArtifacts({ + packageFileName: 'go.mod', + updatedDeps: [], + newPackageFileContent: gomod1, + config, + }) ).toMatchSnapshot(); expect(execSnapshots).toMatchSnapshot(); }); diff --git a/test/manager/mix/artifacts.spec.ts b/test/manager/mix/artifacts.spec.ts index 673d4c1b14..e7f19e2b4a 100644 --- a/test/manager/mix/artifacts.spec.ts +++ b/test/manager/mix/artifacts.spec.ts @@ -29,27 +29,60 @@ describe('.updateArtifacts()', () => { env.getChildProcessEnv.mockReturnValue(envMock.basic); }); it('returns null if no mix.lock found', async () => { - expect(await updateArtifacts('mix.exs', ['plug'], '', config)).toBeNull(); + expect( + await updateArtifacts({ + packageFileName: 'mix.exs', + updatedDeps: ['plug'], + newPackageFileContent: '', + config, + }) + ).toBeNull(); }); it('returns null if no updatedDeps were provided', async () => { - expect(await updateArtifacts('mix.exs', [], '', config)).toBeNull(); + expect( + await updateArtifacts({ + packageFileName: 'mix.exs', + updatedDeps: [], + newPackageFileContent: '', + config, + }) + ).toBeNull(); }); it('returns null if no local directory found', async () => { const noLocalDirConfig = { localDir: null, }; expect( - await updateArtifacts('mix.exs', ['plug'], '', noLocalDirConfig) + await updateArtifacts({ + packageFileName: 'mix.exs', + updatedDeps: ['plug'], + newPackageFileContent: '', + config: noLocalDirConfig, + }) ).toBeNull(); }); it('returns null if updatedDeps is empty', async () => { - expect(await updateArtifacts('mix.exs', ['plug'], '', config)).toBeNull(); + expect( + await updateArtifacts({ + packageFileName: 'mix.exs', + updatedDeps: ['plug'], + newPackageFileContent: '', + config, + }) + ).toBeNull(); }); it('returns null if unchanged', async () => { platform.getFile.mockResolvedValueOnce('Current mix.lock'); const execSnapshots = mockExecAll(exec); fs.readFile.mockResolvedValueOnce('Current mix.lock' as any); - expect(await updateArtifacts('mix.exs', ['plug'], '', config)).toBeNull(); + expect( + await updateArtifacts({ + packageFileName: 'mix.exs', + updatedDeps: ['plug'], + newPackageFileContent: '', + config, + }) + ).toBeNull(); expect(execSnapshots).toMatchSnapshot(); }); it('returns updated mix.lock', async () => { @@ -57,9 +90,14 @@ describe('.updateArtifacts()', () => { const execSnapshots = mockExecAll(exec); fs.readFile.mockResolvedValueOnce('New mix.lock' as any); expect( - await updateArtifacts('mix.exs', ['plug'], '{}', { - ...config, - binarySource: BINARY_SOURCE_DOCKER, + await updateArtifacts({ + packageFileName: 'mix.exs', + updatedDeps: ['plug'], + newPackageFileContent: '{}', + config: { + ...config, + binarySource: BINARY_SOURCE_DOCKER, + }, }) ).toMatchSnapshot(); expect(execSnapshots).toMatchSnapshot(); @@ -70,7 +108,12 @@ describe('.updateArtifacts()', () => { throw new Error('not found'); }); expect( - await updateArtifacts('mix.exs', ['plug'], '{}', config) + await updateArtifacts({ + packageFileName: 'mix.exs', + updatedDeps: ['plug'], + newPackageFileContent: '{}', + config, + }) ).toMatchSnapshot(); }); }); diff --git a/test/manager/pipenv/artifacts.spec.ts b/test/manager/pipenv/artifacts.spec.ts index 3cad61eea7..545c873cbe 100644 --- a/test/manager/pipenv/artifacts.spec.ts +++ b/test/manager/pipenv/artifacts.spec.ts @@ -30,14 +30,26 @@ describe('.updateArtifacts()', () => { }); it('returns if no Pipfile.lock found', async () => { - expect(await pipenv.updateArtifacts('Pipfile', [], '', config)).toBeNull(); + expect( + await pipenv.updateArtifacts({ + packageFileName: 'Pipfile', + updatedDeps: [], + newPackageFileContent: '', + config, + }) + ).toBeNull(); }); it('returns null if unchanged', async () => { platform.getFile.mockResolvedValueOnce('Current Pipfile.lock'); const execSnapshots = mockExecAll(exec); fs.readFile.mockReturnValueOnce('Current Pipfile.lock' as any); expect( - await pipenv.updateArtifacts('Pipfile', [], '{}', config) + await pipenv.updateArtifacts({ + packageFileName: 'Pipfile', + updatedDeps: [], + newPackageFileContent: '{}', + config, + }) ).toBeNull(); expect(execSnapshots).toMatchSnapshot(); }); @@ -49,7 +61,12 @@ describe('.updateArtifacts()', () => { } as StatusResult); fs.readFile.mockReturnValueOnce('New Pipfile.lock' as any); expect( - await pipenv.updateArtifacts('Pipfile', [], '{}', config) + await pipenv.updateArtifacts({ + packageFileName: 'Pipfile', + updatedDeps: [], + newPackageFileContent: '{}', + config, + }) ).not.toBeNull(); expect(execSnapshots).toMatchSnapshot(); }); @@ -61,10 +78,15 @@ describe('.updateArtifacts()', () => { } as StatusResult); fs.readFile.mockReturnValueOnce('New Pipfile.lock' as any); expect( - await pipenv.updateArtifacts('Pipfile', [], '{}', { - ...config, - binarySource: BINARY_SOURCE_DOCKER, - dockerUser: 'foobar', + await pipenv.updateArtifacts({ + packageFileName: 'Pipfile', + updatedDeps: [], + newPackageFileContent: '{}', + config: { + ...config, + binarySource: BINARY_SOURCE_DOCKER, + dockerUser: 'foobar', + }, }) ).not.toBeNull(); expect(execSnapshots).toMatchSnapshot(); @@ -75,7 +97,12 @@ describe('.updateArtifacts()', () => { throw new Error('not found'); }); expect( - await pipenv.updateArtifacts('Pipfile', [], '{}', config) + await pipenv.updateArtifacts({ + packageFileName: 'Pipfile', + updatedDeps: [], + newPackageFileContent: '{}', + config, + }) ).toMatchSnapshot(); }); }); diff --git a/test/manager/poetry/artifacts.spec.ts b/test/manager/poetry/artifacts.spec.ts index b7778ecb7a..80c8126326 100644 --- a/test/manager/poetry/artifacts.spec.ts +++ b/test/manager/poetry/artifacts.spec.ts @@ -34,11 +34,23 @@ describe('.updateArtifacts()', () => { it('returns null if no poetry.lock found', async () => { const updatedDeps = ['dep1']; expect( - await updateArtifacts('pyproject.toml', updatedDeps, '', config) + await updateArtifacts({ + packageFileName: 'pyproject.toml', + updatedDeps, + newPackageFileContent: '', + config, + }) ).toBeNull(); }); it('returns null if updatedDeps is empty', async () => { - expect(await updateArtifacts('pyproject.toml', [], '', config)).toBeNull(); + expect( + await updateArtifacts({ + packageFileName: 'pyproject.toml', + updatedDeps: [], + newPackageFileContent: '', + config, + }) + ).toBeNull(); }); it('returns null if unchanged', async () => { platform.getFile.mockResolvedValueOnce('Current poetry.lock'); @@ -46,7 +58,12 @@ describe('.updateArtifacts()', () => { fs.readFile.mockReturnValueOnce('Current poetry.lock' as any); const updatedDeps = ['dep1']; expect( - await updateArtifacts('pyproject.toml', updatedDeps, '', config) + await updateArtifacts({ + packageFileName: 'pyproject.toml', + updatedDeps, + newPackageFileContent: '', + config, + }) ).toBeNull(); expect(execSnapshots).toMatchSnapshot(); }); @@ -56,7 +73,12 @@ describe('.updateArtifacts()', () => { fs.readFile.mockReturnValueOnce('New poetry.lock' as any); const updatedDeps = ['dep1']; expect( - await updateArtifacts('pyproject.toml', updatedDeps, '{}', config) + await updateArtifacts({ + packageFileName: 'pyproject.toml', + updatedDeps, + newPackageFileContent: '{}', + config, + }) ).not.toBeNull(); expect(execSnapshots).toMatchSnapshot(); }); @@ -66,10 +88,15 @@ describe('.updateArtifacts()', () => { fs.readFile.mockReturnValueOnce('New poetry.lock' as any); const updatedDeps = ['dep1']; expect( - await updateArtifacts('pyproject.toml', updatedDeps, '{}', { - ...config, - binarySource: BINARY_SOURCE_DOCKER, - dockerUser: 'foobar', + await updateArtifacts({ + packageFileName: 'pyproject.toml', + updatedDeps, + newPackageFileContent: '{}', + config: { + ...config, + binarySource: BINARY_SOURCE_DOCKER, + dockerUser: 'foobar', + }, }) ).not.toBeNull(); expect(execSnapshots).toMatchSnapshot(); @@ -81,7 +108,12 @@ describe('.updateArtifacts()', () => { }); const updatedDeps = ['dep1']; expect( - await updateArtifacts('pyproject.toml', updatedDeps, '{}', config) + await updateArtifacts({ + packageFileName: 'pyproject.toml', + updatedDeps, + newPackageFileContent: '{}', + config, + }) ).toMatchSnapshot(); }); }); -- GitLab