From 8b43e9fcdb7b950cee137ab91860569ad8743be2 Mon Sep 17 00:00:00 2001 From: Ross Brandes Date: Tue, 6 Oct 2026 16:10:48 -0400 Subject: [PATCH] Install pnpm for testdouble.js's pnpm example in the integration job testdouble.js now has an example project, examples/node-esm-pnpm, that its test suite installs with pnpm, so this job needs pnpm installed or it fails on every Node version. Install it the same way testdouble.js's CI does (pnpm 8 on Node 16, 9 on Node 18, latest otherwise). That example installs testdouble.js's dependencies itself, from testdouble.js's package.json, so `npm install --no-save` of this build only reached testdouble.js's root node_modules and the example quietly tested the published quibble. Point the checkout's quibble dependency at this build too, so both use it. --- .github/workflows/testdouble-integration.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/.github/workflows/testdouble-integration.yml b/.github/workflows/testdouble-integration.yml index 06f91c9..b56102f 100644 --- a/.github/workflows/testdouble-integration.yml +++ b/.github/workflows/testdouble-integration.yml @@ -55,8 +55,20 @@ jobs: shell: bash run: | rm -rf node_modules/quibble + # testdouble.js's pnpm example installs testdouble.js's dependencies + # itself, from its package.json, so point that at this build too + npm pkg set dependencies.quibble="file:$(ls "${{ runner.temp }}"/quibble-*.tgz)" npm install --no-save "$(ls "${{ runner.temp }}"/quibble-*.tgz)" + - name: Install pnpm (for testdouble.js's pnpm example) + shell: bash + run: | + case "$(node -p 'process.versions.node.split(".")[0]')" in + 16) npm install --global pnpm@8 ;; + 18) npm install --global pnpm@9 ;; + *) npm install --global pnpm ;; + esac + - name: Run testdouble.js's test suite working-directory: testdouble.js run: npm test