Skip to content

Commit

Permalink
fix: autoReplace handle non-pinning of digests
Browse files Browse the repository at this point in the history
  • Loading branch information
rarkins committed Apr 26, 2020
1 parent 5ea984e commit 807b354
Show file tree
Hide file tree
Showing 5 changed files with 40 additions and 7 deletions.
1 change: 1 addition & 0 deletions lib/config/__snapshots__/index.spec.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ Object {
"onboardingBranch": "renovate/configure",
"onboardingPrTitle": "Configure Renovate",
"persistRepoData": false,
"pinDigests": false,
"platform": "github",
"postUpdateOptions": Array [],
"postUpgradeTasks": Object {
Expand Down
1 change: 0 additions & 1 deletion lib/config/definitions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -870,7 +870,6 @@ const options: RenovateOptions[] = [
{
name: 'pinDigests',
description: 'Whether to add digests to Dockerfile source images',
stage: 'package',
type: 'boolean',
default: false,
},
Expand Down
2 changes: 2 additions & 0 deletions lib/workers/branch/__snapshots__/auto-replace.spec.ts.snap
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`workers/branch/auto-replace doAutoReplace handles a double attempt 1`] = `" <script src=\\"https://cdnjs.cloudflare.com/ajax/libs/reactstrap/7.1.0/reactstrap.min.js\\"> <script src=\\"https://cdnjs.cloudflare.com/ajax/libs/reactstrap/7.1.1/reactstrap.min.js\\"> "`;
exports[`workers/branch/auto-replace doAutoReplace handles already updated 1`] = `" <script src=\\"https://cdnjs.cloudflare.com/ajax/libs/reactstrap/7.1.1/reactstrap.min.js\\"> "`;
exports[`workers/branch/auto-replace doAutoReplace updates version and integrity 1`] = `" <script src=\\"https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.js\\" integrity=\\"sha256-aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\\" crossorigin=\\"anonymous\\"> "`;
Expand Down
14 changes: 14 additions & 0 deletions lib/workers/branch/auto-replace.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,24 @@ describe('workers/branch/auto-replace', () => {
upgrade.lookupName = 'reactstrap/7.1.0/reactstrap.min.js';
upgrade.currentValue = '7.1.0';
upgrade.newValue = '7.1.1';
upgrade.newDigest = 'some-digest';
upgrade.depIndex = 0;
const res = await doAutoReplace(upgrade, src, parentBranch);
expect(res).toMatchSnapshot();
});
it('handles a double attempt', async () => {
const script =
'<script src="https://cdnjs.cloudflare.com/ajax/libs/reactstrap/7.1.0/reactstrap.min.js">';
const src = ` ${script} ${script} `;
upgrade.baseDeps = extractPackageFile(src).deps;
upgrade.depName = 'reactstrap';
upgrade.lookupName = 'reactstrap/7.1.0/reactstrap.min.js';
upgrade.currentValue = '7.1.0';
upgrade.newValue = '7.1.1';
upgrade.depIndex = 1;
const res = await doAutoReplace(upgrade, src, parentBranch);
expect(res).toMatchSnapshot();
});
it('handles already updated', async () => {
const script =
'<script src="https://cdnjs.cloudflare.com/ajax/libs/reactstrap/7.1.0/reactstrap.min.js">';
Expand Down
29 changes: 23 additions & 6 deletions lib/workers/branch/auto-replace.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,15 @@ export async function confirmIfDepUpdated(
upgrade,
newContent: string
): Promise<boolean> {
const { manager, packageFile, newValue, newDigest, depIndex } = upgrade;
const {
manager,
packageFile,
newValue,
newDigest,
depIndex,
currentDigest,
pinDigests,
} = upgrade;
const extractPackageFile = get(manager, 'extractPackageFile');
let newUpgrade;
try {
Expand All @@ -23,13 +31,22 @@ export async function confirmIfDepUpdated(
} catch (err) /* istanbul ignore next */ {
logger.debug('Failed to parse newContent');
}
if (
newUpgrade &&
newUpgrade.currentValue === newValue &&
(!newDigest || newUpgrade.currentDigest === newDigest)
) {
if (!newUpgrade) {
return false;
}
if (newUpgrade.currentValue !== newValue) {
return false;
}
if (!newDigest) {
return true;
}
if (newUpgrade.currentDigest === newDigest) {
return true;
}
if (!currentDigest && !pinDigests) {
return true;
}
// istanbul ignore next
return false;
}

Expand Down

0 comments on commit 807b354

Please sign in to comment.