diff --git a/lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap b/lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap index ca3db6457db8f12e4b2f43f53fd157eeb4ccfbc8..67a2d9c2b934d50e4b51d7c1622e99a286a47c70 100644 --- a/lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap +++ b/lib/workers/repository/updates/__snapshots__/generate.spec.ts.snap @@ -136,6 +136,6 @@ Object { } `; -exports[`workers/repository/updates/generate generateBranchConfig() handles upgrades 1`] = `"some-title ()"`; +exports[`workers/repository/updates/generate generateBranchConfig() handles upgrades 1`] = `"some-title (patch)"`; exports[`workers/repository/updates/generate generateBranchConfig() supports manual prTitle 1`] = `"upgrade some-dep"`; diff --git a/lib/workers/repository/updates/generate.spec.ts b/lib/workers/repository/updates/generate.spec.ts index d6b94b835c5b7204037341f2a5d2797c3015a680..c1d68a170062ec50f143e6dd4dca458037a66ffa 100644 --- a/lib/workers/repository/updates/generate.spec.ts +++ b/lib/workers/repository/updates/generate.spec.ts @@ -482,5 +482,41 @@ describe('workers/repository/updates/generate', () => { const res = generateBranchConfig(branch); expect(res.prTitle).toMatchSnapshot(); }); + it('sorts upgrades, without position first', () => { + const branch: BranchUpgradeConfig[] = [ + { + depName: 'some-dep1', + branchName: 'some-branch', + prTitle: 'some-title', + newValue: '0.6.0', + fileReplacePosition: 1, + }, + { + depName: 'some-dep2', + branchName: 'some-branch', + prTitle: 'some-title', + newValue: '0.6.0', + fileReplacePosition: undefined, + }, + { + depName: 'some-dep3', + branchName: 'some-branch', + prTitle: 'some-title', + newValue: '0.6.0', + fileReplacePosition: 4, + }, + { + depName: 'some-dep4', + branchName: 'some-branch', + prTitle: 'some-title', + newValue: '0.6.0', + fileReplacePosition: undefined, + }, + ]; + const res = generateBranchConfig(branch); + expect( + res.upgrades.map((upgrade) => upgrade.fileReplacePosition) + ).toStrictEqual([undefined, undefined, 4, 1]); + }); }); }); diff --git a/lib/workers/repository/updates/generate.ts b/lib/workers/repository/updates/generate.ts index b49297d2778280355f9c32060398277bce042dd9..a65315ebf20155b8936cc9341c3c93037ba2a9f4 100644 --- a/lib/workers/repository/updates/generate.ts +++ b/lib/workers/repository/updates/generate.ts @@ -277,6 +277,16 @@ export function generateBranchConfig( // This is because we need to replace from the bottom of the file up return a.fileReplacePosition > b.fileReplacePosition ? -1 : 1; } + + // make sure that ordering is consistent : + // items without position will be first in the list. + if (a.fileReplacePosition) { + return 1; + } + if (b.fileReplacePosition) { + return -1; + } + if (a.depName < b.depName) { return -1; }