diff --git a/lib/manager/helm-requirements/__snapshots__/update.spec.ts.snap b/lib/manager/helm-requirements/__snapshots__/update.spec.ts.snap deleted file mode 100644 index 77cbbdef6e445a6c7bd9c0b9c046eb7090a86535..0000000000000000000000000000000000000000 --- a/lib/manager/helm-requirements/__snapshots__/update.spec.ts.snap +++ /dev/null @@ -1,37 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`lib/manager/helm-requirements/update updateDependency() upgrades dependency if newValue version value is repeated 1`] = ` -" - dependencies: - - version: 0.9.0 - name: redis - repository: https://kubernetes-charts.storage.googleapis.com/ - - name: postgresql - version: 0.11.0 - repository: https://kubernetes-charts.storage.googleapis.com/ - " -`; - -exports[`lib/manager/helm-requirements/update updateDependency() upgrades dependency if valid upgrade 1`] = ` -" - dependencies: - - name: redis - version: 0.11.0 - repository: https://kubernetes-charts.storage.googleapis.com/ - - name: postgresql - version: 0.8.1 - repository: https://kubernetes-charts.storage.googleapis.com/ - " -`; - -exports[`lib/manager/helm-requirements/update updateDependency() upgrades dependency if version field comes before name field 1`] = ` -" - dependencies: - - version: 0.11.0 - name: redis - repository: https://kubernetes-charts.storage.googleapis.com/ - - name: postgresql - version: 0.8.1 - repository: https://kubernetes-charts.storage.googleapis.com/ - " -`; diff --git a/lib/manager/helm-requirements/index.ts b/lib/manager/helm-requirements/index.ts index 85fd5b769260c0f01bd5757d82d59e79748c699a..5595a86c747dcf8e59732705d169e21c5c078932 100644 --- a/lib/manager/helm-requirements/index.ts +++ b/lib/manager/helm-requirements/index.ts @@ -1,5 +1,4 @@ export { extractPackageFile } from './extract'; -export { updateDependency } from './update'; export const defaultConfig = { aliases: { diff --git a/lib/manager/helm-requirements/update.spec.ts b/lib/manager/helm-requirements/update.spec.ts deleted file mode 100644 index 31a705706cd6493d2b255a38dfceedeb1d6fd24f..0000000000000000000000000000000000000000 --- a/lib/manager/helm-requirements/update.spec.ts +++ /dev/null @@ -1,110 +0,0 @@ -import { updateDependency } from './update'; - -describe('lib/manager/helm-requirements/update', () => { - describe('updateDependency()', () => { - it('returns the same fileContent for undefined upgrade', () => { - const content = ` - dependencies: - - name: redis - version: 0.9.0 - repository: https://kubernetes-charts.storage.googleapis.com/ - - name: postgresql - version: 0.8.1 - repository: https://kubernetes-charts.storage.googleapis.com/ - `; - const upgrade = undefined; - - expect(updateDependency({ fileContent: content, upgrade })).toBe(content); - }); - it('returns the same fileContent for invalid requirements.yaml file', () => { - const content = ` - Invalid requirements.yaml content. - `; - const upgrade = { - depName: 'redis', - newValue: '0.11.0', - repository: 'https://kubernetes-charts.storage.googleapis.com/', - }; - expect(updateDependency({ fileContent: content, upgrade })).toBe(content); - }); - it('returns the same fileContent for empty upgrade', () => { - const content = ` - dependencies: - - name: redis - version: 0.9.0 - repository: https://kubernetes-charts.storage.googleapis.com/ - - name: postgresql - version: 0.8.1 - repository: https://kubernetes-charts.storage.googleapis.com/ - `; - const upgrade = {}; - expect(updateDependency({ fileContent: content, upgrade })).toBe(content); - }); - it('upgrades dependency if valid upgrade', () => { - const content = ` - dependencies: - - name: redis - version: 0.9.0 - repository: https://kubernetes-charts.storage.googleapis.com/ - - name: postgresql - version: 0.8.1 - repository: https://kubernetes-charts.storage.googleapis.com/ - `; - const upgrade = { - depName: 'redis', - newValue: '0.11.0', - repository: 'https://kubernetes-charts.storage.googleapis.com/', - }; - expect(updateDependency({ fileContent: content, upgrade })).not.toBe( - content - ); - expect( - updateDependency({ fileContent: content, upgrade }) - ).toMatchSnapshot(); - }); - it('upgrades dependency if version field comes before name field', () => { - const content = ` - dependencies: - - version: 0.9.0 - name: redis - repository: https://kubernetes-charts.storage.googleapis.com/ - - name: postgresql - version: 0.8.1 - repository: https://kubernetes-charts.storage.googleapis.com/ - `; - const upgrade = { - depName: 'redis', - newValue: '0.11.0', - repository: 'https://kubernetes-charts.storage.googleapis.com/', - }; - expect(updateDependency({ fileContent: content, upgrade })).not.toBe( - content - ); - expect( - updateDependency({ fileContent: content, upgrade }) - ).toMatchSnapshot(); - }); - it('upgrades dependency if newValue version value is repeated', () => { - const content = ` - dependencies: - - version: 0.9.0 - name: redis - repository: https://kubernetes-charts.storage.googleapis.com/ - - name: postgresql - version: 0.9.0 - repository: https://kubernetes-charts.storage.googleapis.com/ - `; - const upgrade = { - depName: 'postgresql', - newValue: '0.11.0', - repository: 'https://kubernetes-charts.storage.googleapis.com/', - }; - expect(updateDependency({ fileContent: content, upgrade })).not.toBe( - content - ); - expect( - updateDependency({ fileContent: content, upgrade }) - ).toMatchSnapshot(); - }); - }); -}); diff --git a/lib/manager/helm-requirements/update.ts b/lib/manager/helm-requirements/update.ts deleted file mode 100644 index 8b6bee08c86ec64ec8247ed5e84cd5ee075e2a93..0000000000000000000000000000000000000000 --- a/lib/manager/helm-requirements/update.ts +++ /dev/null @@ -1,65 +0,0 @@ -import _ from 'lodash'; -import yaml from 'js-yaml'; -import is from '@sindresorhus/is'; - -import { logger } from '../../logger'; -import { UpdateDependencyConfig } from '../common'; -import { matchAt, replaceAt } from '../../util/string'; - -export function updateDependency({ - fileContent, - upgrade, -}: UpdateDependencyConfig): string | null { - logger.trace({ config: upgrade }, 'updateDependency()'); - if (!upgrade || !upgrade.depName || !upgrade.newValue) { - logger.debug('Failed to update dependency, invalid upgrade'); - return fileContent; - } - const doc = yaml.safeLoad(fileContent, { json: true }); - if (!doc || !is.array(doc.dependencies)) { - logger.debug('Failed to update dependency, invalid requirements.yaml file'); - return fileContent; - } - const { depName, newValue } = upgrade; - const oldVersion = doc.dependencies.filter((dep) => dep.name === depName)[0] - .version; - doc.dependencies = doc.dependencies.map((dep) => - dep.name === depName ? { ...dep, version: newValue } : dep - ); - const searchString = `${oldVersion}`; - const newString = `${newValue}`; - let newFileContent = fileContent; - // Search starts at 'dependencies' instead of `${depName}` because fields in a YAML record - // can be in arbitrary order for example like this: - /* - dependencies: - - version: 0.11.0 - name: redis - repository: https://kubernetes-charts.storage.googleapis.com/ - - version: 0.8.1 - name: postgresql - repository: https://kubernetes-charts.storage.googleapis.com/ - */ - let searchIndex = fileContent.indexOf('dependencies') + 'dependencies'.length; - for (; searchIndex < fileContent.length; searchIndex += 1) { - // First check if we have a hit for the old version - if (matchAt(fileContent, searchIndex, searchString)) { - logger.trace(`Found match at index ${searchIndex}`); - // Now test if the result matches - const testContent = replaceAt( - fileContent, - searchIndex, - searchString, - newString - ); - // Compare the parsed yaml structure of old and new - if (_.isEqual(doc, yaml.safeLoad(testContent, { json: true }))) { - newFileContent = testContent; - break; - } else { - logger.debug('Mismatched replace at searchIndex ' + searchIndex); - } - } - } - return newFileContent; -}