From e41681db3d2b4fc2ee47eaa2c6ad5b6a5d82b189 Mon Sep 17 00:00:00 2001 From: Peter Wagenet <peter.wagenet@gmail.com> Date: Wed, 15 Feb 2023 23:17:36 -0800 Subject: [PATCH] fix(pnpm): don't ignore test directories for pnpm workspace packages (#20439) --- .../npm/__fixtures__/pnpm-monorepo/pnpm-lock.yaml | 12 ++++++++++++ .../__fixtures__/pnpm-monorepo/pnpm-workspace.yaml | 2 ++ .../pnpm-monorepo/test/test-package/package.json | 12 ++++++++++++ .../pnpm-monorepo/tests/test-package2/package.json | 12 ++++++++++++ .../npm/extract/__snapshots__/pnpm.spec.ts.snap | 10 ++++++++++ lib/modules/manager/npm/extract/pnpm.spec.ts | 10 ++++++++++ lib/modules/manager/npm/extract/pnpm.ts | 6 +++++- 7 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 lib/modules/manager/npm/__fixtures__/pnpm-monorepo/test/test-package/package.json create mode 100644 lib/modules/manager/npm/__fixtures__/pnpm-monorepo/tests/test-package2/package.json diff --git a/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/pnpm-lock.yaml b/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/pnpm-lock.yaml index 5bb04ac300..176b4fd082 100644 --- a/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/pnpm-lock.yaml +++ b/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/pnpm-lock.yaml @@ -56,6 +56,18 @@ importers: dependencies: dotenv: 9.0.2 + test/test-package: + specifiers: + dotenv: ^9.0.2 + dependencies: + dotenv: 9.0.2 + + tests/test-package2: + specifiers: + dotenv: ^9.0.2 + dependencies: + dotenv: 9.0.2 + packages: /ansi-styles/3.2.1: diff --git a/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/pnpm-workspace.yaml b/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/pnpm-workspace.yaml index 6298802ab9..fead9b1be6 100644 --- a/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/pnpm-workspace.yaml +++ b/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/pnpm-workspace.yaml @@ -6,3 +6,5 @@ packages: - 'solo-package-trailing-slash/' - './solo-package-leading-dot-slash' - '../pnpm-monorepo/solo-package-leading-double-dot-slash' + - 'test/*' + - 'tests/*' diff --git a/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/test/test-package/package.json b/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/test/test-package/package.json new file mode 100644 index 0000000000..9e85715cf5 --- /dev/null +++ b/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/test/test-package/package.json @@ -0,0 +1,12 @@ +{ + "name": "@demo/test-package", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "dependencies": { + "dotenv": "^9.0.2" + } +} diff --git a/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/tests/test-package2/package.json b/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/tests/test-package2/package.json new file mode 100644 index 0000000000..9d394f90a4 --- /dev/null +++ b/lib/modules/manager/npm/__fixtures__/pnpm-monorepo/tests/test-package2/package.json @@ -0,0 +1,12 @@ +{ + "name": "@demo/test-package2", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "dependencies": { + "dotenv": "^9.0.2" + } +} diff --git a/lib/modules/manager/npm/extract/__snapshots__/pnpm.spec.ts.snap b/lib/modules/manager/npm/extract/__snapshots__/pnpm.spec.ts.snap index 39c9a65868..fe4966f730 100644 --- a/lib/modules/manager/npm/extract/__snapshots__/pnpm.spec.ts.snap +++ b/lib/modules/manager/npm/extract/__snapshots__/pnpm.spec.ts.snap @@ -46,5 +46,15 @@ exports[`modules/manager/npm/extract/pnpm .detectPnpmWorkspaces() uses pnpm work "packageJsonName": "@demo/solo-trailing-slash", "pnpmShrinkwrap": "pnpm-lock.yaml", }, + { + "packageFile": "test/test-package/package.json", + "packageJsonName": "@demo/test-package", + "pnpmShrinkwrap": "pnpm-lock.yaml", + }, + { + "packageFile": "tests/test-package2/package.json", + "packageJsonName": "@demo/test-package2", + "pnpmShrinkwrap": "pnpm-lock.yaml", + }, ] `; diff --git a/lib/modules/manager/npm/extract/pnpm.spec.ts b/lib/modules/manager/npm/extract/pnpm.spec.ts index f391cd7aaa..8e4ca91a0b 100644 --- a/lib/modules/manager/npm/extract/pnpm.spec.ts +++ b/lib/modules/manager/npm/extract/pnpm.spec.ts @@ -126,6 +126,16 @@ describe('modules/manager/npm/extract/pnpm', () => { packageJsonName: '@demo/solo-trailing-slash', pnpmShrinkwrap: undefined as undefined | string, }, + { + packageFile: 'test/test-package/package.json', + packageJsonName: '@demo/test-package', + pnpmShrinkwrap: undefined as undefined | string, + }, + { + packageFile: 'tests/test-package2/package.json', + packageJsonName: '@demo/test-package2', + pnpmShrinkwrap: undefined as undefined | string, + }, ]; await detectPnpmWorkspaces(packageFiles); diff --git a/lib/modules/manager/npm/extract/pnpm.ts b/lib/modules/manager/npm/extract/pnpm.ts index 55ede53b6a..b278088137 100644 --- a/lib/modules/manager/npm/extract/pnpm.ts +++ b/lib/modules/manager/npm/extract/pnpm.ts @@ -105,7 +105,11 @@ export async function detectPnpmWorkspaces( const { localDir } = GlobalConfig.get(); const packages = await findPackages( upath.dirname(upath.join(localDir, workspaceYamlPath)), - { patterns: filters } + { + patterns: filters, + // Match the ignores used in @pnpm/find-workspace-packages + ignore: ['**/node_modules/**', '**/bower_components/**'], + } ); const packagePaths = packages.map((pkg) => upath.join(pkg.dir, 'package.json') -- GitLab