diff --git a/lib/config/presets/internal/custom-managers.spec.ts b/lib/config/presets/internal/custom-managers.spec.ts index fb2cf741119..aab2ba65243 100644 --- a/lib/config/presets/internal/custom-managers.spec.ts +++ b/lib/config/presets/internal/custom-managers.spec.ts @@ -809,7 +809,7 @@ describe('config/presets/internal/custom-managers', () => { describe('Update `tsconfig/node` version in tsconfig.json', () => { const customManager = presets.tsconfigNodeVersions.customManagers?.[0]; - it(`find dependencies in file`, async () => { + it(`find in tsconfig.json extends string`, async () => { const fileContent = codeBlock` { "extends": "@tsconfig/node20/tsconfig.json", @@ -833,6 +833,33 @@ describe('config/presets/internal/custom-managers', () => { ]); }); + it(`find in tsconfig.json extends array`, async () => { + const fileContent = codeBlock` + { + "extends": [ + "@tsconfig/strictest/tsconfig.json", + "@tsconfig/node20/tsconfig.json" + ], + "include": ["src/**/*"] + } + `; + + const res = await extractPackageFile( + 'regex', + fileContent, + 'tsconfig.json', + customManager!, + ); + + expect(res?.deps).toMatchObject([ + { + currentValue: '20', + datasource: 'npm', + depName: '@tsconfig/node20', + }, + ]); + }); + describe('matches regexes patterns', () => { it.each` path | expected diff --git a/lib/config/presets/internal/custom-managers.ts b/lib/config/presets/internal/custom-managers.ts index f1b5aacc141..8f0794d5523 100644 --- a/lib/config/presets/internal/custom-managers.ts +++ b/lib/config/presets/internal/custom-managers.ts @@ -150,14 +150,13 @@ export const presets: Record = { tsconfigNodeVersions: { customManagers: [ { - autoReplaceStringTemplate: - '"extends": "@tsconfig/node{{{major}}}/tsconfig.json"', + autoReplaceStringTemplate: '"@tsconfig/node{{{major}}}/tsconfig.json"', currentValueTemplate: '{{{major}}}', customType: 'regex', datasourceTemplate: 'npm', managerFilePatterns: ['**/tsconfig.json'], matchStrings: [ - '"extends":\\s*"(?@tsconfig/node(?\\d+))/tsconfig\\.json"', + '"(?@tsconfig/node(?\\d+))/tsconfig\\.json"', ], }, ],