diff --git a/__tests__/firestore.setup.ts b/__tests__/firestore.setup.ts index 0417f2d362..e96140ccb3 100644 --- a/__tests__/firestore.setup.ts +++ b/__tests__/firestore.setup.ts @@ -9,11 +9,13 @@ import { import { afterAll, beforeAll } from '@jest/globals'; import { doc, setDoc } from 'firebase/firestore'; import { setup, teardown } from 'jest-dev-server'; +import { SpawndChildProcess } from 'spawnd'; let testEnv: RulesTestEnvironment; +let servers: SpawndChildProcess[] = []; beforeAll(async () => { - await setup({ + servers = await setup({ command: 'npx firebase emulators:start --only firestore', launchTimeout: 30000, port: 8080, @@ -22,7 +24,7 @@ beforeAll(async () => { }, 30000); afterAll(async () => { - await teardown(); + await teardown(servers); }); interface SetupApp { diff --git a/package-lock.json b/package-lock.json index 1434868ec9..1239c2e7ed 100644 --- a/package-lock.json +++ b/package-lock.json @@ -72,7 +72,7 @@ "firebase-admin": "^11.9.0", "firebase-tools": "^12.5.2", "jest": "^29.5.0", - "jest-dev-server": "^7.0.1", + "jest-dev-server": "^9.0.0", "jest-environment-jsdom": "^29.5.0", "markdownlint": "^0.30.0", "markdownlint-cli": "^0.35.0", @@ -15355,21 +15355,21 @@ "dev": true }, "node_modules/jest-dev-server": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-7.0.1.tgz", - "integrity": "sha512-0GXo3KEtPU+WaDNYYZIieS9wrdNk5CwpB7oi2tiMIUxTKf3CzWFy6zZE/NN6TgAdxUqjFg7IzZIOBibczzGalA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-9.0.0.tgz", + "integrity": "sha512-N43EDJLy3JBHZwtTxqHy+6lxu7Zw5PLD8Jzq2+ePV3v90hQc4UoUA/fnxoKdTCgZY3P1qPl6Zmj8m/886APxoQ==", "dev": true, "dependencies": { "chalk": "^4.1.2", "cwd": "^0.10.0", "find-process": "^1.4.7", "prompts": "^2.4.2", - "spawnd": "^7.0.0", + "spawnd": "^9.0.0", "tree-kill": "^1.2.2", "wait-on": "^7.0.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=16" } }, "node_modules/jest-diff": { @@ -19055,17 +19055,28 @@ "dev": true }, "node_modules/spawnd": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-7.0.0.tgz", - "integrity": "sha512-TU/M4qYmigdeET4HTR7l9nqySTTvStWM6rW8QyixXRxWn90E718y5Q31ZVXyG7VEqT6oo6EUvE9zk4rGU39HbA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-9.0.0.tgz", + "integrity": "sha512-YJRGf0loiLsHTQZztPSI5pb9RmlKE5y6Nvxko6dNtGrkra+1BaJ7PN86GQ1/2ldLZgMhMG9ITopkDJ+7lHkBYw==", "dev": true, "dependencies": { - "exit": "^0.1.2", - "signal-exit": "^3.0.7", + "signal-exit": "^4.0.2", "tree-kill": "^1.2.2" }, "engines": { - "node": ">=14.0.0" + "node": ">=16" + } + }, + "node_modules/spawnd/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/spdx-correct": { @@ -32729,16 +32740,16 @@ } }, "jest-dev-server": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-7.0.1.tgz", - "integrity": "sha512-0GXo3KEtPU+WaDNYYZIieS9wrdNk5CwpB7oi2tiMIUxTKf3CzWFy6zZE/NN6TgAdxUqjFg7IzZIOBibczzGalA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/jest-dev-server/-/jest-dev-server-9.0.0.tgz", + "integrity": "sha512-N43EDJLy3JBHZwtTxqHy+6lxu7Zw5PLD8Jzq2+ePV3v90hQc4UoUA/fnxoKdTCgZY3P1qPl6Zmj8m/886APxoQ==", "dev": true, "requires": { "chalk": "^4.1.2", "cwd": "^0.10.0", "find-process": "^1.4.7", "prompts": "^2.4.2", - "spawnd": "^7.0.0", + "spawnd": "^9.0.0", "tree-kill": "^1.2.2", "wait-on": "^7.0.1" } @@ -35546,14 +35557,21 @@ "dev": true }, "spawnd": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-7.0.0.tgz", - "integrity": "sha512-TU/M4qYmigdeET4HTR7l9nqySTTvStWM6rW8QyixXRxWn90E718y5Q31ZVXyG7VEqT6oo6EUvE9zk4rGU39HbA==", + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/spawnd/-/spawnd-9.0.0.tgz", + "integrity": "sha512-YJRGf0loiLsHTQZztPSI5pb9RmlKE5y6Nvxko6dNtGrkra+1BaJ7PN86GQ1/2ldLZgMhMG9ITopkDJ+7lHkBYw==", "dev": true, "requires": { - "exit": "^0.1.2", - "signal-exit": "^3.0.7", + "signal-exit": "^4.0.2", "tree-kill": "^1.2.2" + }, + "dependencies": { + "signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true + } } }, "spdx-correct": { diff --git a/package.json b/package.json index b03815c957..befcfa600e 100644 --- a/package.json +++ b/package.json @@ -98,7 +98,7 @@ "firebase-admin": "^11.9.0", "firebase-tools": "^12.5.2", "jest": "^29.5.0", - "jest-dev-server": "^7.0.1", + "jest-dev-server": "^9.0.0", "jest-environment-jsdom": "^29.5.0", "markdownlint": "^0.30.0", "markdownlint-cli": "^0.35.0",