From c0876813eb57cd6a1db395ba5a36e9649abaa2f1 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 23 Aug 2023 19:36:23 +0200 Subject: [PATCH 01/10] .github/workflows: switch to Node.js v18 + v20 Signed-off-by: Patrik Oldsberg --- .github/workflows/ci-noop.yml | 4 ++-- .github/workflows/ci.yml | 6 +++--- .github/workflows/deploy_packages.yml | 4 ++-- .github/workflows/sync_release-manifest.yml | 2 +- .github/workflows/uffizzi-build.yml | 4 ++-- .github/workflows/verify_accessibility.yml | 6 +++--- .github/workflows/verify_e2e-kubernetes-noop.yml | 2 +- .github/workflows/verify_e2e-kubernetes.yml | 2 +- .github/workflows/verify_e2e-linux-noop.yml | 2 +- .github/workflows/verify_e2e-linux.yml | 2 +- .github/workflows/verify_e2e-techdocs.yml | 2 +- .github/workflows/verify_e2e-windows-noop.yml | 2 +- .github/workflows/verify_e2e-windows.yml | 2 +- .github/workflows/verify_storybook.yml | 2 +- .github/workflows/verify_windows.yml | 2 +- 15 files changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/ci-noop.yml b/.github/workflows/ci-noop.yml index d636a06eb8..16bf11dd1a 100644 --- a/.github/workflows/ci-noop.yml +++ b/.github/workflows/ci-noop.yml @@ -15,7 +15,7 @@ jobs: strategy: matrix: - node-version: [16.x, 18.x] + node-version: [18.x, 20.x] name: Verify ${{ matrix.node-version }} steps: @@ -26,7 +26,7 @@ jobs: strategy: matrix: - node-version: [16.x, 18.x] + node-version: [18.x, 20.x] name: Test ${{ matrix.node-version }} steps: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4afe9c88ce..12c19075a6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: false matrix: - node-version: [16.x, 18.x] + node-version: [18.x, 20.x] env: CI: true @@ -49,7 +49,7 @@ jobs: strategy: fail-fast: false matrix: - node-version: [16.x, 18.x] + node-version: [18.x, 20.x] env: CI: true @@ -139,7 +139,7 @@ jobs: strategy: fail-fast: false matrix: - node-version: [16.x, 18.x] + node-version: [18.x, 20.x] name: Test ${{ matrix.node-version }} services: diff --git a/.github/workflows/deploy_packages.yml b/.github/workflows/deploy_packages.yml index ce9a2648ee..2329101eb0 100644 --- a/.github/workflows/deploy_packages.yml +++ b/.github/workflows/deploy_packages.yml @@ -14,7 +14,7 @@ jobs: strategy: fail-fast: false matrix: - node-version: [16.x, 18.x] + node-version: [18.x, 20.x] services: postgres13: @@ -130,7 +130,7 @@ jobs: strategy: matrix: - node-version: [16.x] + node-version: [18.x] env: CI: 'true' diff --git a/.github/workflows/sync_release-manifest.yml b/.github/workflows/sync_release-manifest.yml index 8cf6991aaf..df8d3909f4 100644 --- a/.github/workflows/sync_release-manifest.yml +++ b/.github/workflows/sync_release-manifest.yml @@ -10,7 +10,7 @@ jobs: # Setup node & install deps before checkout, keeping install quick - uses: actions/setup-node@v3 with: - node-version: 16 + node-version: 18.x - name: Install dependencies # Just the deps for the assemble manifest script run: npm install semver@7.3.5 fs-extra@10.0.0 @manypkg/get-packages@1.1.1 diff --git a/.github/workflows/uffizzi-build.yml b/.github/workflows/uffizzi-build.yml index a018537daf..1bcd5ebcd8 100644 --- a/.github/workflows/uffizzi-build.yml +++ b/.github/workflows/uffizzi-build.yml @@ -25,13 +25,13 @@ jobs: - name: setup-node uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 18.x registry-url: https://registry.npmjs.org/ - name: yarn install uses: backstage/actions/yarn-install@v0.6.4 with: - cache-prefix: linux-v16 + cache-prefix: linux-v18 - name: Use Uffizzi's backstage app config run: | diff --git a/.github/workflows/verify_accessibility.yml b/.github/workflows/verify_accessibility.yml index 11c0ca41b6..32ded3bd3a 100644 --- a/.github/workflows/verify_accessibility.yml +++ b/.github/workflows/verify_accessibility.yml @@ -20,14 +20,14 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - - name: Use Node.js 16.x + - name: Use Node.js 18.x uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 18.x - name: yarn install uses: backstage/actions/yarn-install@v0.6.4 with: - cache-prefix: ${{ runner.os }}-v16.x + cache-prefix: ${{ runner.os }}-v18.x - name: run Lighthouse CI run: | yarn dlx @lhci/cli@0.11.x autorun diff --git a/.github/workflows/verify_e2e-kubernetes-noop.yml b/.github/workflows/verify_e2e-kubernetes-noop.yml index ac49fbc469..bedf357079 100644 --- a/.github/workflows/verify_e2e-kubernetes-noop.yml +++ b/.github/workflows/verify_e2e-kubernetes-noop.yml @@ -15,7 +15,7 @@ jobs: strategy: matrix: - node-version: [16.x, 18.x] + node-version: [18.x, 20.x] name: Kubernetes ${{ matrix.node-version }} steps: diff --git a/.github/workflows/verify_e2e-kubernetes.yml b/.github/workflows/verify_e2e-kubernetes.yml index 4c25c259c5..0c78c1f933 100644 --- a/.github/workflows/verify_e2e-kubernetes.yml +++ b/.github/workflows/verify_e2e-kubernetes.yml @@ -13,7 +13,7 @@ jobs: strategy: matrix: - node-version: [16.x, 18.x] + node-version: [18.x, 20.x] env: CI: true diff --git a/.github/workflows/verify_e2e-linux-noop.yml b/.github/workflows/verify_e2e-linux-noop.yml index 57dc75c272..1384b83378 100644 --- a/.github/workflows/verify_e2e-linux-noop.yml +++ b/.github/workflows/verify_e2e-linux-noop.yml @@ -20,7 +20,7 @@ jobs: strategy: matrix: - node-version: [16.x, 18.x] + node-version: [18.x, 20.x] name: E2E Linux ${{ matrix.node-version }} steps: diff --git a/.github/workflows/verify_e2e-linux.yml b/.github/workflows/verify_e2e-linux.yml index 33cc4f83ec..61ce55e385 100644 --- a/.github/workflows/verify_e2e-linux.yml +++ b/.github/workflows/verify_e2e-linux.yml @@ -31,7 +31,7 @@ jobs: strategy: fail-fast: false matrix: - node-version: [16.x, 18.x] + node-version: [18.x, 20.x] env: CI: true diff --git a/.github/workflows/verify_e2e-techdocs.yml b/.github/workflows/verify_e2e-techdocs.yml index bf46d2c954..fd5c4f0956 100644 --- a/.github/workflows/verify_e2e-techdocs.yml +++ b/.github/workflows/verify_e2e-techdocs.yml @@ -18,7 +18,7 @@ jobs: strategy: matrix: - node-version: [16.x, 18.x] + node-version: [18.x, 20.x] env: CI: true diff --git a/.github/workflows/verify_e2e-windows-noop.yml b/.github/workflows/verify_e2e-windows-noop.yml index a10722e865..f042c350c2 100644 --- a/.github/workflows/verify_e2e-windows-noop.yml +++ b/.github/workflows/verify_e2e-windows-noop.yml @@ -17,7 +17,7 @@ jobs: strategy: matrix: - node-version: [16.x, 18.x] + node-version: [18.x, 20.x] name: E2E Windows ${{ matrix.node-version }} steps: diff --git a/.github/workflows/verify_e2e-windows.yml b/.github/workflows/verify_e2e-windows.yml index 5a2f0a5fc1..4413312597 100644 --- a/.github/workflows/verify_e2e-windows.yml +++ b/.github/workflows/verify_e2e-windows.yml @@ -22,7 +22,7 @@ jobs: strategy: matrix: - node-version: [16.x, 18.x] + node-version: [18.x, 20.x] env: CI: true diff --git a/.github/workflows/verify_storybook.yml b/.github/workflows/verify_storybook.yml index b1d370ec3f..bcb0cfe178 100644 --- a/.github/workflows/verify_storybook.yml +++ b/.github/workflows/verify_storybook.yml @@ -23,7 +23,7 @@ jobs: strategy: matrix: os: [ubuntu-latest] - node-version: [16.x] + node-version: [18.x] name: Storybook steps: diff --git a/.github/workflows/verify_windows.yml b/.github/workflows/verify_windows.yml index 916dd53366..e5d3adf013 100644 --- a/.github/workflows/verify_windows.yml +++ b/.github/workflows/verify_windows.yml @@ -13,7 +13,7 @@ jobs: strategy: matrix: - node-version: [16.x, 18.x] + node-version: [18.x, 20.x] env: CI: true From 5899bf04f6cb1b2e0ef1537e9c197e4a72776aae Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 23 Aug 2023 19:42:55 +0200 Subject: [PATCH 02/10] root: move to Node.js 18 + 20 Signed-off-by: Patrik Oldsberg --- package.json | 2 +- packages/create-app/templates/default-app/package.json.hbs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index b1b4f0f268..e110be4ec1 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "root", "private": true, "engines": { - "node": "16 || 18" + "node": "18 || 20" }, "scripts": { "dev": "concurrently 'yarn start' 'yarn start-backend'", diff --git a/packages/create-app/templates/default-app/package.json.hbs b/packages/create-app/templates/default-app/package.json.hbs index 315d039187..9715331d8f 100644 --- a/packages/create-app/templates/default-app/package.json.hbs +++ b/packages/create-app/templates/default-app/package.json.hbs @@ -3,7 +3,7 @@ "version": "1.0.0", "private": true, "engines": { - "node": "16 || 18" + "node": "18 || 20" }, "scripts": { "dev": "concurrently \"yarn start\" \"yarn start-backend\"", From de42eebaafc5d457cfae88fd171891e2514d0a86 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 23 Aug 2023 19:49:57 +0200 Subject: [PATCH 03/10] bump @types/node dep to ^18 Signed-off-by: Patrik Oldsberg --- .changeset/silent-years-bake.md | 11 ++++++ package.json | 2 +- packages/cli-common/package.json | 2 +- packages/cli/package.json | 2 +- packages/codemods/package.json | 2 +- packages/create-app/package.json | 2 +- packages/e2e-test/package.json | 2 +- packages/repo-tools/package.json | 2 +- packages/techdocs-cli/package.json | 2 +- .../package.json | 2 +- yarn.lock | 34 +++++++++---------- 11 files changed, 37 insertions(+), 26 deletions(-) create mode 100644 .changeset/silent-years-bake.md diff --git a/.changeset/silent-years-bake.md b/.changeset/silent-years-bake.md new file mode 100644 index 0000000000..b7adbc4f63 --- /dev/null +++ b/.changeset/silent-years-bake.md @@ -0,0 +1,11 @@ +--- +'@backstage/plugin-scaffolder-backend-module-rails': patch +'@techdocs/cli': patch +'@backstage/cli': patch +'@backstage/cli-common': patch +'@backstage/create-app': patch +'@backstage/codemods': patch +'@backstage/repo-tools': patch +--- + +Bumped `@types/node` dependency to `^18.17.8`. diff --git a/package.json b/package.json index e110be4ec1..0cc12b7214 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ "@spotify/eslint-plugin": "^14.1.3", "@spotify/prettier-config": "^14.0.0", "@techdocs/cli": "workspace:*", - "@types/node": "^16.11.26", + "@types/node": "^18.17.8", "@types/webpack": "^5.28.0", "command-exists": "^1.2.9", "concurrently": "^8.0.0", diff --git a/packages/cli-common/package.json b/packages/cli-common/package.json index 38779eba07..55e6e1f792 100644 --- a/packages/cli-common/package.json +++ b/packages/cli-common/package.json @@ -33,7 +33,7 @@ }, "devDependencies": { "@backstage/cli": "workspace:^", - "@types/node": "^16.0.0" + "@types/node": "^18.17.8" }, "files": [ "dist" diff --git a/packages/cli/package.json b/packages/cli/package.json index 0b641275f9..66f82f8e44 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -158,7 +158,7 @@ "@types/inquirer": "^8.1.3", "@types/minimatch": "^5.0.0", "@types/mock-fs": "^4.13.0", - "@types/node": "^16.11.26", + "@types/node": "^18.17.8", "@types/npm-packlist": "^3.0.0", "@types/recursive-readdir": "^2.2.0", "@types/rollup-plugin-peer-deps-external": "^2.2.0", diff --git a/packages/codemods/package.json b/packages/codemods/package.json index ccbc20926b..484127928a 100644 --- a/packages/codemods/package.json +++ b/packages/codemods/package.json @@ -42,7 +42,7 @@ "devDependencies": { "@backstage/cli": "workspace:^", "@types/jscodeshift": "^0.11.0", - "@types/node": "^16.11.26", + "@types/node": "^18.17.8", "ts-node": "^10.0.0" }, "nodemonConfig": { diff --git a/packages/create-app/package.json b/packages/create-app/package.json index b562233452..431c61be32 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -46,7 +46,7 @@ "@types/command-exists": "^1.2.0", "@types/fs-extra": "^9.0.1", "@types/inquirer": "^8.1.3", - "@types/node": "^16.11.26", + "@types/node": "^18.17.8", "@types/recursive-readdir": "^2.2.0", "mock-fs": "^5.1.1", "nodemon": "^3.0.1", diff --git a/packages/e2e-test/package.json b/packages/e2e-test/package.json index 5e722777e5..10e4cb3c47 100644 --- a/packages/e2e-test/package.json +++ b/packages/e2e-test/package.json @@ -43,7 +43,7 @@ "devDependencies": { "@backstage/cli": "workspace:^", "@types/fs-extra": "^9.0.1", - "@types/node": "^16.11.26", + "@types/node": "^18.17.8", "@types/puppeteer": "^5.4.4", "nodemon": "^3.0.1", "ts-node": "^10.0.0" diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json index eca544e397..3a0a60bcc9 100644 --- a/packages/repo-tools/package.json +++ b/packages/repo-tools/package.json @@ -64,7 +64,7 @@ "@backstage/types": "workspace:^", "@types/is-glob": "^4.0.2", "@types/mock-fs": "^4.13.0", - "@types/node": "^16.11.26", + "@types/node": "^18.17.8", "mock-fs": "^5.1.0" }, "peerDependencies": { diff --git a/packages/techdocs-cli/package.json b/packages/techdocs-cli/package.json index 9fb5c8d0d5..9a8c420ffd 100644 --- a/packages/techdocs-cli/package.json +++ b/packages/techdocs-cli/package.json @@ -41,7 +41,7 @@ "@types/commander": "^2.12.2", "@types/fs-extra": "^9.0.6", "@types/http-proxy": "^1.17.4", - "@types/node": "^16.11.26", + "@types/node": "^18.17.8", "@types/serve-handler": "^6.1.0", "@types/webpack-env": "^1.15.3", "cypress": "^10.0.0", diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json index 63e5fc78d9..d687f82280 100644 --- a/plugins/scaffolder-backend-module-rails/package.json +++ b/plugins/scaffolder-backend-module-rails/package.json @@ -43,7 +43,7 @@ "@types/command-exists": "^1.2.0", "@types/fs-extra": "^9.0.1", "@types/mock-fs": "^4.13.0", - "@types/node": "^16.11.26", + "@types/node": "^18.17.8", "jest-when": "^3.1.0", "mock-fs": "^5.1.0" }, diff --git a/yarn.lock b/yarn.lock index c9039f34f2..d86404f314 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3696,7 +3696,7 @@ __metadata: resolution: "@backstage/cli-common@workspace:packages/cli-common" dependencies: "@backstage/cli": "workspace:^" - "@types/node": ^16.0.0 + "@types/node": ^18.17.8 languageName: unknown linkType: soft @@ -3773,7 +3773,7 @@ __metadata: "@types/jest": ^29.0.0 "@types/minimatch": ^5.0.0 "@types/mock-fs": ^4.13.0 - "@types/node": ^16.11.26 + "@types/node": ^18.17.8 "@types/npm-packlist": ^3.0.0 "@types/recursive-readdir": ^2.2.0 "@types/rollup-plugin-peer-deps-external": ^2.2.0 @@ -3878,7 +3878,7 @@ __metadata: "@backstage/cli": "workspace:^" "@backstage/cli-common": "workspace:^" "@types/jscodeshift": ^0.11.0 - "@types/node": ^16.11.26 + "@types/node": ^18.17.8 chalk: ^4.0.0 commander: ^9.1.0 jscodeshift: ^0.15.0 @@ -4133,7 +4133,7 @@ __metadata: "@types/command-exists": ^1.2.0 "@types/fs-extra": ^9.0.1 "@types/inquirer": ^8.1.3 - "@types/node": ^16.11.26 + "@types/node": ^18.17.8 "@types/recursive-readdir": ^2.2.0 chalk: ^4.0.0 commander: ^9.1.0 @@ -8344,7 +8344,7 @@ __metadata: "@types/command-exists": ^1.2.0 "@types/fs-extra": ^9.0.1 "@types/mock-fs": ^4.13.0 - "@types/node": ^16.11.26 + "@types/node": ^18.17.8 command-exists: ^1.2.9 fs-extra: ^10.0.1 jest-when: ^3.1.0 @@ -9719,7 +9719,7 @@ __metadata: "@stoplight/types": ^13.14.0 "@types/is-glob": ^4.0.2 "@types/mock-fs": ^4.13.0 - "@types/node": ^16.11.26 + "@types/node": ^18.17.8 chalk: ^4.0.0 codeowners-utils: ^1.0.2 commander: ^9.1.0 @@ -16457,7 +16457,7 @@ __metadata: "@types/dockerode": ^3.3.0 "@types/fs-extra": ^9.0.6 "@types/http-proxy": ^1.17.4 - "@types/node": ^16.11.26 + "@types/node": ^18.17.8 "@types/serve-handler": ^6.1.0 "@types/webpack-env": ^1.15.3 commander: ^9.1.0 @@ -17767,17 +17767,17 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^16.0.0, @types/node@npm:^16.11.26, @types/node@npm:^16.9.2": - version: 16.18.50 - resolution: "@types/node@npm:16.18.50" - checksum: 8aec1eaf83407197ec2fe947182c238f49b82a7aace867cee1f81f72eb8a76c3c8b2adb1fd356e7443317cffb2546708da8934299a579edd25e3160bf7af30a1 +"@types/node@npm:^16.9.2": + version: 16.18.43 + resolution: "@types/node@npm:16.18.43" + checksum: a3ae424834818d1aa53d05e9de954b4559aaa9c02294e654403d9bd2a2b1db608c328755970071369a0c85159a6f2969502e1b9c7e1f29d2629ca677c33c8bdb languageName: node linkType: hard -"@types/node@npm:^18.11.17": - version: 18.17.15 - resolution: "@types/node@npm:18.17.15" - checksum: eed11d4398ccdb999a4c65658ee75de621a4ad57aece48ed2fb8803b1e2711fadf58d8aefbdb0a447d69cf3cba602ca32fe0fc92077575950a796e1dc13baa0f +"@types/node@npm:^18.11.17, @types/node@npm:^18.17.8": + version: 18.17.8 + resolution: "@types/node@npm:18.17.8" + checksum: ebb71526368c9c58f03e2c2408bfda4aa686c13d84226e2c9b48d9c4aee244fb82e672aaf4aa8ccb6e4993b4274d5f4b2b3d52d0a2e57ab187ae653903376411 languageName: node linkType: hard @@ -23929,7 +23929,7 @@ __metadata: "@backstage/create-app": "workspace:^" "@backstage/errors": "workspace:^" "@types/fs-extra": ^9.0.1 - "@types/node": ^16.11.26 + "@types/node": ^18.17.8 "@types/puppeteer": ^5.4.4 chalk: ^4.0.0 commander: ^9.1.0 @@ -38444,7 +38444,7 @@ __metadata: "@spotify/eslint-plugin": ^14.1.3 "@spotify/prettier-config": ^14.0.0 "@techdocs/cli": "workspace:*" - "@types/node": ^16.11.26 + "@types/node": ^18.17.8 "@types/webpack": ^5.28.0 command-exists: ^1.2.9 concurrently: ^8.0.0 From 47d73e401f434e6295b8061148fa25a8d8422838 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 23 Aug 2023 20:26:56 +0200 Subject: [PATCH 04/10] backend-common: fix type error Signed-off-by: Patrik Oldsberg --- .../backend-common/src/reading/ReadUrlResponseFactory.test.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/backend-common/src/reading/ReadUrlResponseFactory.test.ts b/packages/backend-common/src/reading/ReadUrlResponseFactory.test.ts index 880ab6f1d7..1eb18f5c1d 100644 --- a/packages/backend-common/src/reading/ReadUrlResponseFactory.test.ts +++ b/packages/backend-common/src/reading/ReadUrlResponseFactory.test.ts @@ -78,7 +78,9 @@ describe('ReadUrlResponseFactory', () => { let readable: NodeJS.ReadableStream; beforeEach(() => { - readable = new Stream({ encoding: 'utf-8' }) as NodeJS.ReadableStream; + readable = new Stream({ + encoding: 'utf-8', + }) as unknown as NodeJS.ReadableStream; readable.readable = true; // Write data asynchronously, as soon as possible. From 6246571911cbafabe73e995c2040d53949f5867e Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 31 Aug 2023 21:11:13 +0200 Subject: [PATCH 05/10] test fixes for Node.js v20 Signed-off-by: Patrik Oldsberg --- .../src/reading/tree/ReadableArrayResponse.test.ts | 12 ++++++------ .../src/scanner/plugin-scanner.test.ts | 4 ++-- .../core-app-api/src/app/defaultConfigLoader.test.ts | 2 +- packages/create-app/src/lib/tasks.test.ts | 12 ++++++------ .../builtin/filesystem/rename.examples.test.ts | 6 +++--- .../actions/builtin/filesystem/rename.test.ts | 10 +++++----- .../src/stages/generate/helpers.test.ts | 12 ++++++------ 7 files changed, 29 insertions(+), 29 deletions(-) diff --git a/packages/backend-common/src/reading/tree/ReadableArrayResponse.test.ts b/packages/backend-common/src/reading/tree/ReadableArrayResponse.test.ts index a9bcfd7631..a1f36cbd0f 100644 --- a/packages/backend-common/src/reading/tree/ReadableArrayResponse.test.ts +++ b/packages/backend-common/src/reading/tree/ReadableArrayResponse.test.ts @@ -72,11 +72,11 @@ describe('ReadableArrayResponse', () => { const res = new ReadableArrayResponse(arr, '/tmp', 'etag'); const dir = await res.dir(); - expect(fs.readFileSync(resolvePath(dir, 'file1.yaml'), 'utf8').trim()).toBe( - 'site_name: Test', - ); - expect(fs.readFileSync(resolvePath(dir, 'file2.yaml'), 'utf8').trim()).toBe( - 'site_name: Test2', - ); + await expect( + fs.readFile(resolvePath(dir, 'file1.yaml'), 'utf8'), + ).resolves.toBe('site_name: Test\n'); + await expect( + fs.readFile(resolvePath(dir, 'file2.yaml'), 'utf8'), + ).resolves.toBe('site_name: Test2\n'); }); }); diff --git a/packages/backend-plugin-manager/src/scanner/plugin-scanner.test.ts b/packages/backend-plugin-manager/src/scanner/plugin-scanner.test.ts index 25f07baeaa..4891749a0b 100644 --- a/packages/backend-plugin-manager/src/scanner/plugin-scanner.test.ts +++ b/packages/backend-plugin-manager/src/scanner/plugin-scanner.test.ts @@ -571,7 +571,7 @@ Please add '/backstageRoot/node_modules' to the 'NODE_PATH' when running the bac "failed to load dynamic plugin manifest from '/backstageRoot/dist-dynamic/test-backend-plugin/alpha'", meta: { name: 'SyntaxError', - message: 'Unexpected token i in JSON at position 0', + message: expect.stringContaining('Unexpected token'), }, }, ], @@ -604,7 +604,7 @@ Please add '/backstageRoot/node_modules' to the 'NODE_PATH' when running the bac "failed to load dynamic plugin manifest from '/backstageRoot/dist-dynamic/test-backend-plugin'", meta: { name: 'SyntaxError', - message: 'Unexpected token i in JSON at position 0', + message: expect.stringContaining('Unexpected token'), }, }, ], diff --git a/packages/core-app-api/src/app/defaultConfigLoader.test.ts b/packages/core-app-api/src/app/defaultConfigLoader.test.ts index 7579e53dd2..c70ec3fbff 100644 --- a/packages/core-app-api/src/app/defaultConfigLoader.test.ts +++ b/packages/core-app-api/src/app/defaultConfigLoader.test.ts @@ -70,7 +70,7 @@ describe('defaultConfigLoaderSync', () => { anyEnv.APP_CONFIG = [{ data: { my: 'config' }, context: 'a' }]; expect(() => defaultConfigLoaderSync('}')).toThrow( - 'Failed to load runtime configuration, SyntaxError: Unexpected token } in JSON at position 0', + 'Failed to load runtime configuration, SyntaxError: Unexpected token', ); }); diff --git a/packages/create-app/src/lib/tasks.test.ts b/packages/create-app/src/lib/tasks.test.ts index 95ced49490..c94bf43598 100644 --- a/packages/create-app/src/lib/tasks.test.ts +++ b/packages/create-app/src/lib/tasks.test.ts @@ -304,13 +304,13 @@ describe('tasks', () => { }, ); // catalog was populated with `context.name` - expect( - fs.readFileSync('templatedApp/catalog-info.yaml', 'utf-8'), - ).toContain('name: SuperCoolBackstageInstance'); + await expect( + fs.readFile('templatedApp/catalog-info.yaml', 'utf-8'), + ).resolves.toContain('name: SuperCoolBackstageInstance'); // backend dependencies include `sqlite3` from `context.SQLite` - expect( - fs.readFileSync('templatedApp/packages/backend/package.json', 'utf-8'), - ).toContain('sqlite3"'); + await expect( + fs.readFile('templatedApp/packages/backend/package.json', 'utf-8'), + ).resolves.toContain('sqlite3"'); }); }); diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/rename.examples.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/rename.examples.test.ts index c4c27cc68e..5139469959 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/rename.examples.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/rename.examples.test.ts @@ -85,8 +85,8 @@ describe('fs:rename examples', () => { const sourceFilePath = resolvePath(workspacePath, sourceFile); const destFilePath = resolvePath(workspacePath, destFile); - const sourceBeforeContent = fs.readFileSync(sourceFilePath, 'utf-8'); - const destBeforeContent = fs.readFileSync(destFilePath, 'utf-8'); + const sourceBeforeContent = await fs.readFile(sourceFilePath, 'utf-8'); + const destBeforeContent = await fs.readFile(destFilePath, 'utf-8'); expect(sourceBeforeContent).not.toEqual(destBeforeContent); @@ -97,7 +97,7 @@ describe('fs:rename examples', () => { }, }); - const destAfterContent = fs.readFileSync(destFilePath, 'utf-8'); + const destAfterContent = await fs.readFile(destFilePath, 'utf-8'); expect(sourceBeforeContent).toEqual(destAfterContent); }); diff --git a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/rename.test.ts b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/rename.test.ts index b12e4269c2..6804c9f5a9 100644 --- a/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/rename.test.ts +++ b/plugins/scaffolder-backend/src/scaffolder/actions/builtin/filesystem/rename.test.ts @@ -148,7 +148,7 @@ describe('fs:rename', () => { it('should throw is trying to override by mistake', async () => { const destFile = 'unit-test-c.js'; const filePath = resolvePath(workspacePath, destFile); - const beforeContent = fs.readFileSync(filePath, 'utf-8'); + const beforeContent = await fs.readFile(filePath, 'utf-8'); await expect( action.handler({ @@ -164,7 +164,7 @@ describe('fs:rename', () => { }), ).rejects.toThrow(/dest already exists/); - const afterContent = fs.readFileSync(filePath, 'utf-8'); + const afterContent = await fs.readFile(filePath, 'utf-8'); expect(beforeContent).toEqual(afterContent); }); @@ -191,8 +191,8 @@ describe('fs:rename', () => { const sourceFilePath = resolvePath(workspacePath, sourceFile); const destFilePath = resolvePath(workspacePath, destFile); - const sourceBeforeContent = fs.readFileSync(sourceFilePath, 'utf-8'); - const destBeforeContent = fs.readFileSync(destFilePath, 'utf-8'); + const sourceBeforeContent = await fs.readFile(sourceFilePath, 'utf-8'); + const destBeforeContent = await fs.readFile(destFilePath, 'utf-8'); expect(sourceBeforeContent).not.toEqual(destBeforeContent); @@ -209,7 +209,7 @@ describe('fs:rename', () => { }, }); - const destAfterContent = fs.readFileSync(destFilePath, 'utf-8'); + const destAfterContent = await fs.readFile(destFilePath, 'utf-8'); expect(sourceBeforeContent).toEqual(destAfterContent); }); diff --git a/plugins/techdocs-node/src/stages/generate/helpers.test.ts b/plugins/techdocs-node/src/stages/generate/helpers.test.ts index e20e20ea5b..4d422d7125 100644 --- a/plugins/techdocs-node/src/stages/generate/helpers.test.ts +++ b/plugins/techdocs-node/src/stages/generate/helpers.test.ts @@ -393,7 +393,7 @@ describe('helpers', () => { await patchIndexPreBuild({ inputDir: '/', logger: mockLogger }); - expect(fs.readFileSync('/docs/index.md', 'utf-8')).toEqual( + await expect(fs.readFile('/docs/index.md', 'utf-8')).resolves.toEqual( 'index.md content', ); expect(warn).not.toHaveBeenCalledWith(); @@ -407,7 +407,7 @@ describe('helpers', () => { await patchIndexPreBuild({ inputDir: '/', logger: mockLogger }); - expect(fs.readFileSync('/docs/index.md', 'utf-8')).toEqual( + await expect(fs.readFile('/docs/index.md', 'utf-8')).resolves.toEqual( 'docs/README.md content', ); expect(warn.mock.calls).toEqual([ @@ -422,7 +422,7 @@ describe('helpers', () => { await patchIndexPreBuild({ inputDir: '/', logger: mockLogger }); - expect(fs.readFileSync('/docs/index.md', 'utf-8')).toEqual( + await expect(fs.readFile('/docs/index.md', 'utf-8')).resolves.toEqual( 'main README.md content', ); expect(warn.mock.calls).toEqual([ @@ -437,7 +437,7 @@ describe('helpers', () => { await patchIndexPreBuild({ inputDir: '/', logger: mockLogger }); - expect(() => fs.readFileSync('/docs/index.md', 'utf-8')).toThrow(); + await expect(fs.readFile('/docs/index.md', 'utf-8')).rejects.toThrow(); const paths = [ path.normalize('docs/index.md'), path.normalize('docs/README.md'), @@ -483,7 +483,7 @@ describe('helpers', () => { await expect( createOrUpdateMetadata(filePath, mockLogger), - ).rejects.toThrow('Unexpected token d in JSON at position 0'); + ).rejects.toThrow('Unexpected token'); }); it('should add build timestamp to the metadata json', async () => { @@ -520,7 +520,7 @@ describe('helpers', () => { const filePath = path.join(rootDir, 'invalid_techdocs_metadata.json'); await expect(storeEtagMetadata(filePath, 'etag123abc')).rejects.toThrow( - 'Unexpected token d in JSON at position 0', + 'Unexpected token', ); }); From 92cfcdd63256d1e06efbe6268dbd2c4ab6e3fac3 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 6 Sep 2023 10:14:06 +0200 Subject: [PATCH 06/10] sync mock-fs versions Signed-off-by: Patrik Oldsberg --- .changeset/silent-years-bake.md | 2 +- packages/backend-common/package.json | 2 +- packages/cli/package.json | 2 +- packages/config-loader/package.json | 2 +- packages/create-app/package.json | 2 +- packages/repo-tools/package.json | 2 +- plugins/app-backend/package.json | 2 +- .../package.json | 2 +- .../package.json | 2 +- plugins/scaffolder-backend/package.json | 2 +- plugins/techdocs-node/package.json | 2 +- yarn.lock | 22 +++++++++---------- 12 files changed, 22 insertions(+), 22 deletions(-) diff --git a/.changeset/silent-years-bake.md b/.changeset/silent-years-bake.md index b7adbc4f63..4f50c37c31 100644 --- a/.changeset/silent-years-bake.md +++ b/.changeset/silent-years-bake.md @@ -8,4 +8,4 @@ '@backstage/repo-tools': patch --- -Bumped `@types/node` dependency to `^18.17.8`. +Bumped dev dependencies `@types/node` and `mock-fs`. diff --git a/packages/backend-common/package.json b/packages/backend-common/package.json index 20476e04be..a1487163b2 100644 --- a/packages/backend-common/package.json +++ b/packages/backend-common/package.json @@ -138,7 +138,7 @@ "aws-sdk-client-mock": "^2.0.0", "better-sqlite3": "^8.0.0", "http-errors": "^2.0.0", - "mock-fs": "^5.1.0", + "mock-fs": "^5.2.0", "msw": "^1.0.0", "mysql2": "^2.2.5", "recursive-readdir": "^2.2.2", diff --git a/packages/cli/package.json b/packages/cli/package.json index 66f82f8e44..45d7c8468d 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -168,7 +168,7 @@ "@types/terser-webpack-plugin": "^5.0.4", "@types/yarnpkg__lockfile": "^1.1.4", "del": "^7.0.0", - "mock-fs": "^5.1.0", + "mock-fs": "^5.2.0", "msw": "^1.0.0", "nodemon": "^3.0.1", "ts-node": "^10.0.0", diff --git a/packages/config-loader/package.json b/packages/config-loader/package.json index 46c017217d..51c7d4a599 100644 --- a/packages/config-loader/package.json +++ b/packages/config-loader/package.json @@ -57,7 +57,7 @@ "@types/json-schema-merge-allof": "^0.6.0", "@types/mock-fs": "^4.10.0", "@types/yup": "^0.29.13", - "mock-fs": "^5.1.0", + "mock-fs": "^5.2.0", "msw": "^1.0.0", "zen-observable": "^0.10.0" }, diff --git a/packages/create-app/package.json b/packages/create-app/package.json index 431c61be32..15db38b1c5 100644 --- a/packages/create-app/package.json +++ b/packages/create-app/package.json @@ -48,7 +48,7 @@ "@types/inquirer": "^8.1.3", "@types/node": "^18.17.8", "@types/recursive-readdir": "^2.2.0", - "mock-fs": "^5.1.1", + "mock-fs": "^5.2.0", "nodemon": "^3.0.1", "ts-node": "^10.0.0" }, diff --git a/packages/repo-tools/package.json b/packages/repo-tools/package.json index 3a0a60bcc9..0eb881aea8 100644 --- a/packages/repo-tools/package.json +++ b/packages/repo-tools/package.json @@ -65,7 +65,7 @@ "@types/is-glob": "^4.0.2", "@types/mock-fs": "^4.13.0", "@types/node": "^18.17.8", - "mock-fs": "^5.1.0" + "mock-fs": "^5.2.0" }, "peerDependencies": { "@microsoft/api-extractor-model": "*", diff --git a/plugins/app-backend/package.json b/plugins/app-backend/package.json index c308b40720..561dbff245 100644 --- a/plugins/app-backend/package.json +++ b/plugins/app-backend/package.json @@ -69,7 +69,7 @@ "@backstage/cli": "workspace:^", "@backstage/types": "workspace:^", "@types/supertest": "^2.0.8", - "mock-fs": "^5.1.0", + "mock-fs": "^5.2.0", "msw": "^1.0.0", "node-fetch": "^2.6.7", "supertest": "^6.1.3" diff --git a/plugins/scaffolder-backend-module-cookiecutter/package.json b/plugins/scaffolder-backend-module-cookiecutter/package.json index 2d4be6aab4..152b103919 100644 --- a/plugins/scaffolder-backend-module-cookiecutter/package.json +++ b/plugins/scaffolder-backend-module-cookiecutter/package.json @@ -45,7 +45,7 @@ "@types/command-exists": "^1.2.0", "@types/fs-extra": "^9.0.1", "@types/mock-fs": "^4.13.0", - "mock-fs": "^5.1.0", + "mock-fs": "^5.2.0", "msw": "^1.0.0" }, "files": [ diff --git a/plugins/scaffolder-backend-module-rails/package.json b/plugins/scaffolder-backend-module-rails/package.json index d687f82280..f53072ebc3 100644 --- a/plugins/scaffolder-backend-module-rails/package.json +++ b/plugins/scaffolder-backend-module-rails/package.json @@ -45,7 +45,7 @@ "@types/mock-fs": "^4.13.0", "@types/node": "^18.17.8", "jest-when": "^3.1.0", - "mock-fs": "^5.1.0" + "mock-fs": "^5.2.0" }, "files": [ "dist" diff --git a/plugins/scaffolder-backend/package.json b/plugins/scaffolder-backend/package.json index 3e274e6ad2..99f6256069 100644 --- a/plugins/scaffolder-backend/package.json +++ b/plugins/scaffolder-backend/package.json @@ -113,7 +113,7 @@ "@types/zen-observable": "^0.8.0", "esbuild": "^0.19.0", "jest-when": "^3.1.0", - "mock-fs": "^5.1.0", + "mock-fs": "^5.2.0", "msw": "^1.0.0", "supertest": "^6.1.3", "wait-for-expect": "^3.0.2", diff --git a/plugins/techdocs-node/package.json b/plugins/techdocs-node/package.json index 07fc2a74b8..28de8a94fd 100644 --- a/plugins/techdocs-node/package.json +++ b/plugins/techdocs-node/package.json @@ -63,7 +63,7 @@ "js-yaml": "^4.0.0", "json5": "^2.1.3", "mime-types": "^2.1.27", - "mock-fs": "^5.1.0", + "mock-fs": "^5.2.0", "p-limit": "^3.1.0", "recursive-readdir": "^2.2.2", "winston": "^3.2.1" diff --git a/yarn.lock b/yarn.lock index d86404f314..f5d61c59ca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3497,7 +3497,7 @@ __metadata: luxon: ^3.0.0 minimatch: ^5.0.0 minimist: ^1.2.5 - mock-fs: ^5.1.0 + mock-fs: ^5.2.0 morgan: ^1.10.0 msw: ^1.0.0 mysql2: ^2.2.5 @@ -3826,7 +3826,7 @@ __metadata: lodash: ^4.17.21 mini-css-extract-plugin: ^2.4.2 minimatch: ^5.1.1 - mock-fs: ^5.1.0 + mock-fs: ^5.2.0 msw: ^1.0.0 node-fetch: ^2.6.7 node-libs-browser: ^2.2.1 @@ -3911,7 +3911,7 @@ __metadata: json-schema-traverse: ^1.0.0 lodash: ^4.17.21 minimist: ^1.2.5 - mock-fs: ^5.1.0 + mock-fs: ^5.2.0 msw: ^1.0.0 node-fetch: ^2.6.7 typescript-json-schema: ^0.55.0 @@ -4140,7 +4140,7 @@ __metadata: fs-extra: 10.1.0 handlebars: ^4.7.3 inquirer: ^8.2.0 - mock-fs: ^5.1.1 + mock-fs: ^5.2.0 nodemon: ^3.0.1 ora: ^5.3.0 recursive-readdir: ^2.2.2 @@ -4691,7 +4691,7 @@ __metadata: knex: ^2.0.0 lodash: ^4.17.21 luxon: ^3.0.0 - mock-fs: ^5.1.0 + mock-fs: ^5.2.0 msw: ^1.0.0 node-fetch: ^2.6.7 supertest: ^6.1.3 @@ -8307,7 +8307,7 @@ __metadata: "@types/mock-fs": ^4.13.0 command-exists: ^1.2.9 fs-extra: 10.1.0 - mock-fs: ^5.1.0 + mock-fs: ^5.2.0 msw: ^1.0.0 winston: ^3.2.1 yn: ^4.0.0 @@ -8348,7 +8348,7 @@ __metadata: command-exists: ^1.2.9 fs-extra: ^10.0.1 jest-when: ^3.1.0 - mock-fs: ^5.1.0 + mock-fs: ^5.2.0 languageName: unknown linkType: soft @@ -8433,7 +8433,7 @@ __metadata: libsodium-wrappers: ^0.7.11 lodash: ^4.17.21 luxon: ^3.0.0 - mock-fs: ^5.1.0 + mock-fs: ^5.2.0 morgan: ^1.10.0 msw: ^1.0.0 node-fetch: ^2.6.7 @@ -9391,7 +9391,7 @@ __metadata: js-yaml: ^4.0.0 json5: ^2.1.3 mime-types: ^2.1.27 - mock-fs: ^5.1.0 + mock-fs: ^5.2.0 p-limit: ^3.1.0 recursive-readdir: ^2.2.2 supertest: ^6.1.3 @@ -9729,7 +9729,7 @@ __metadata: js-yaml: ^4.1.0 lodash: ^4.17.21 minimatch: ^5.1.1 - mock-fs: ^5.1.0 + mock-fs: ^5.2.0 p-limit: ^3.0.2 ts-node: ^10.0.0 yaml-diff-patch: ^2.0.0 @@ -33198,7 +33198,7 @@ __metadata: languageName: node linkType: hard -"mock-fs@npm:^5.1.0, mock-fs@npm:^5.1.1, mock-fs@npm:^5.2.0": +"mock-fs@npm:^5.2.0": version: 5.2.0 resolution: "mock-fs@npm:5.2.0" checksum: c25835247bd26fa4e0189addd61f98973f61a72741e4d2a5694b143a2069b84978443a7ac0fdb1a71aead99273ec22ff4e9c968de11bbd076db020264c5b8312 From 52f2416abe6517cff002c4670a93f84977cc9da0 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 6 Sep 2023 10:14:38 +0200 Subject: [PATCH 07/10] root: patch mock-fs Signed-off-by: Patrik Oldsberg --- .yarn/patches/mock-fs-npm-5.2.0-5103a7b507.patch | 13 +++++++++++++ package.json | 3 ++- yarn.lock | 9 ++++++++- 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 .yarn/patches/mock-fs-npm-5.2.0-5103a7b507.patch diff --git a/.yarn/patches/mock-fs-npm-5.2.0-5103a7b507.patch b/.yarn/patches/mock-fs-npm-5.2.0-5103a7b507.patch new file mode 100644 index 0000000000..ed5555203b --- /dev/null +++ b/.yarn/patches/mock-fs-npm-5.2.0-5103a7b507.patch @@ -0,0 +1,13 @@ +diff --git a/lib/binding.js b/lib/binding.js +index a4a3e6cdc197bd0f12fe2d060640e91ac58ab457..ab04ce3115fe93073a3e25008730272b6fa21bd7 100644 +--- a/lib/binding.js ++++ b/lib/binding.js +@@ -165,6 +165,8 @@ function Binding(system) { + this.trackDescriptor(stderr); + } + ++Binding.prototype.readFileSync = path => require('fs').readFileSync(path).toString('utf8'); ++ + /** + * Get the file system underlying this binding. + * @return {FileSystem} The underlying file system. diff --git a/package.json b/package.json index 0cc12b7214..dcdd66f7c3 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,8 @@ }, "resolutions": { "@types/react": "^17", - "@types/react-dom": "^17" + "@types/react-dom": "^17", + "mock-fs@^5.2.0": "patch:mock-fs@npm%3A5.2.0#./.yarn/patches/mock-fs-npm-5.2.0-5103a7b507.patch" }, "version": "1.18.0", "dependencies": { diff --git a/yarn.lock b/yarn.lock index f5d61c59ca..51abaf0aa6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -33198,13 +33198,20 @@ __metadata: languageName: node linkType: hard -"mock-fs@npm:^5.2.0": +"mock-fs@npm:5.2.0": version: 5.2.0 resolution: "mock-fs@npm:5.2.0" checksum: c25835247bd26fa4e0189addd61f98973f61a72741e4d2a5694b143a2069b84978443a7ac0fdb1a71aead99273ec22ff4e9c968de11bbd076db020264c5b8312 languageName: node linkType: hard +"mock-fs@patch:mock-fs@npm%3A5.2.0#./.yarn/patches/mock-fs-npm-5.2.0-5103a7b507.patch::locator=root%40workspace%3A.": + version: 5.2.0 + resolution: "mock-fs@patch:mock-fs@npm%3A5.2.0#./.yarn/patches/mock-fs-npm-5.2.0-5103a7b507.patch::version=5.2.0&hash=920f99&locator=root%40workspace%3A." + checksum: 84e306d7a798735ed8ee110b60ed8fc0b5db451df3a990e2a01432fac99decd15e5534c92d87f8067425329dbd9bf5c12e2673d3d770fb40f2936810e02bb07a + languageName: node + linkType: hard + "mock-socket@npm:^9.3.0": version: 9.3.1 resolution: "mock-socket@npm:9.3.1" From f863947ea714a8befddd83b12a28e69923189b3a Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 12 Sep 2023 17:39:40 +0200 Subject: [PATCH 08/10] e2e-test: copy yarn patches to dist dir Signed-off-by: Patrik Oldsberg --- packages/e2e-test/src/commands/run.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/e2e-test/src/commands/run.ts b/packages/e2e-test/src/commands/run.ts index 20b2753f6b..6cca0fb987 100644 --- a/packages/e2e-test/src/commands/run.ts +++ b/packages/e2e-test/src/commands/run.ts @@ -181,6 +181,12 @@ async function buildDistWorkspace(workspaceName: string, rootDir: string) { print('Pinning yarn version in workspace'); await pinYarnVersion(workspaceDir); + const yarnPatchesPath = paths.resolveOwnRoot('.yarn/patches'); + if (await fs.pathExists(yarnPatchesPath)) { + print('Copying yarn patches'); + await fs.copy(yarnPatchesPath, resolvePath(workspaceDir, '.yarn/patches')); + } + print('Installing workspace dependencies'); await runPlain(['yarn', 'workspaces', 'focus', '--all', '--production'], { cwd: workspaceDir, From b994839448ad5b1a8fb9661e0e3589ca1677058c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 16 Sep 2023 17:19:23 +0200 Subject: [PATCH 09/10] backend-plugin-manager: fix test in Node.js v20 Signed-off-by: Patrik Oldsberg --- .../backend-plugin-manager/src/manager/plugin-manager.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/backend-plugin-manager/src/manager/plugin-manager.test.ts b/packages/backend-plugin-manager/src/manager/plugin-manager.test.ts index 8a17fe082a..92703fa589 100644 --- a/packages/backend-plugin-manager/src/manager/plugin-manager.test.ts +++ b/packages/backend-plugin-manager/src/manager/plugin-manager.test.ts @@ -274,7 +274,7 @@ describe('backend-plugin-manager', () => { { message: `an error occured while loading dynamic backend plugin 'backend-dynamic-plugin-test' from '${location}'`, meta: { - message: 'Unexpected identifier', + message: expect.stringContaining('Unexpected identifier'), name: 'SyntaxError', }, }, From 9b78090f5f6f4e888fe2b22e077aef98d522bb3f Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 16 Sep 2023 17:18:55 +0200 Subject: [PATCH 10/10] backend-defaults: update createBackend test to avoid starting backend Signed-off-by: Patrik Oldsberg --- .../backend-defaults/src/CreateBackend.test.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/backend-defaults/src/CreateBackend.test.ts b/packages/backend-defaults/src/CreateBackend.test.ts index 23e5c571bd..55fdbe5a6a 100644 --- a/packages/backend-defaults/src/CreateBackend.test.ts +++ b/packages/backend-defaults/src/CreateBackend.test.ts @@ -18,16 +18,24 @@ import { coreServices, createServiceFactory, } from '@backstage/backend-plugin-api'; -import { mockServices } from '@backstage/backend-test-utils'; import { createBackend } from './CreateBackend'; describe('createBackend', () => { it('should not throw when overriding a default service implementation', async () => { const backend = createBackend(); - backend.add(mockServices.rootConfig.factory()); + backend.add( + createServiceFactory({ + service: coreServices.rootConfig, + deps: {}, + factory(): never { + throw new Error('NOPE'); + }, + }), + ); - await expect(backend.start()).resolves.toBe(undefined); + // We expect the service factory error to be thrown, rather than any earlier validation + await expect(backend.start()).rejects.toThrow('NOPE'); }); it('should throw on duplicate service implementations', async () => {