diff --git a/src/scripts/sync-plugin-versions.test.ts b/src/scripts/sync-plugin-versions.test.ts index c7133c48563..2680b0e959d 100644 --- a/src/scripts/sync-plugin-versions.test.ts +++ b/src/scripts/sync-plugin-versions.test.ts @@ -140,6 +140,6 @@ describe("syncPluginVersions", () => { const checkSummary = syncPluginVersions(rootDir, { write: false }); - expect(checkSummary.changelogged).toEqual([]); + expect(checkSummary.changelogged).toStrictEqual([]); }); }); diff --git a/src/scripts/test-projects.test.ts b/src/scripts/test-projects.test.ts index 675b703c6b3..a8bffd78da8 100644 --- a/src/scripts/test-projects.test.ts +++ b/src/scripts/test-projects.test.ts @@ -888,10 +888,10 @@ describe("test-projects args", () => { }); expect( resolveChangedTargetArgs(["--changed=origin/main"], process.cwd(), () => changedPaths), - ).toEqual([]); + ).toStrictEqual([]); expect( buildVitestRunPlans(["--changed=origin/main"], process.cwd(), () => changedPaths), - ).toEqual([]); + ).toStrictEqual([]); }); it("keeps core test-only changes on their owning test lane", () => { diff --git a/test/scripts/bundled-plugin-assets.test.ts b/test/scripts/bundled-plugin-assets.test.ts index 45a4e1c6fc9..249a47db9e1 100644 --- a/test/scripts/bundled-plugin-assets.test.ts +++ b/test/scripts/bundled-plugin-assets.test.ts @@ -60,7 +60,7 @@ describe("bundled plugin assets", () => { await withPluginAssetFixture(async (rootDir) => { await expect( readBundledPluginAssetHooks({ phase: "copy", plugins: ["missing"], rootDir }), - ).resolves.toEqual([]); + ).resolves.toStrictEqual([]); }); }); diff --git a/test/scripts/check-cli-bootstrap-imports.test.ts b/test/scripts/check-cli-bootstrap-imports.test.ts index 6a1de514ddf..14d2ce9f98d 100644 --- a/test/scripts/check-cli-bootstrap-imports.test.ts +++ b/test/scripts/check-cli-bootstrap-imports.test.ts @@ -70,8 +70,8 @@ describe("check-cli-bootstrap-imports", () => { writeFixture(root, "dist/light.js", `import path from "node:path";\nvoid path;\n`); writeGatewayRunChunk(root); - expect(collectCliBootstrapExternalImportErrors({ rootDir: root })).toEqual([]); - expect(collectGatewayRunChunkBudgetErrors({ rootDir: root })).toEqual([]); + expect(collectCliBootstrapExternalImportErrors({ rootDir: root })).toStrictEqual([]); + expect(collectGatewayRunChunkBudgetErrors({ rootDir: root })).toStrictEqual([]); }); it("reports external packages in the static bootstrap graph", () => { diff --git a/test/scripts/check-dynamic-import-warts.test.ts b/test/scripts/check-dynamic-import-warts.test.ts index 62bb8e86e39..30348e46f54 100644 --- a/test/scripts/check-dynamic-import-warts.test.ts +++ b/test/scripts/check-dynamic-import-warts.test.ts @@ -24,7 +24,7 @@ describe("check-dynamic-import-warts", () => { return (await import("./runtime.js")).createRuntime(); } `; - expect(findDynamicImportAdvisories(source)).toEqual([]); + expect(findDynamicImportAdvisories(source)).toStrictEqual([]); }); it("flags repeated direct dynamic imports", () => { @@ -52,7 +52,7 @@ describe("check-dynamic-import-warts", () => { return runtimePromise; } `; - expect(findDynamicImportAdvisories(source)).toEqual([]); + expect(findDynamicImportAdvisories(source)).toStrictEqual([]); }); it("flags direct dynamic imports inside execute paths", () => { @@ -87,6 +87,6 @@ describe("check-dynamic-import-warts", () => { }; } `; - expect(findDynamicImportAdvisories(source)).toEqual([]); + expect(findDynamicImportAdvisories(source)).toStrictEqual([]); }); }); diff --git a/test/scripts/check-no-conflict-markers.test.ts b/test/scripts/check-no-conflict-markers.test.ts index 922ef17ecab..b0aa629fa5b 100644 --- a/test/scripts/check-no-conflict-markers.test.ts +++ b/test/scripts/check-no-conflict-markers.test.ts @@ -39,7 +39,7 @@ describe("check-no-conflict-markers", () => { findConflictMarkerLines( ["Example:", " <<<<<<< HEAD", "const text = '======= not a conflict';"].join("\n"), ), - ).toEqual([]); + ).toStrictEqual([]); }); it("scans text files and skips binary files", () => { diff --git a/test/scripts/check-no-random-messaging-tmp.test.ts b/test/scripts/check-no-random-messaging-tmp.test.ts index 9ecc9535eb9..77366812dc6 100644 --- a/test/scripts/check-no-random-messaging-tmp.test.ts +++ b/test/scripts/check-no-random-messaging-tmp.test.ts @@ -34,7 +34,7 @@ describe("check-no-random-messaging-tmp", () => { // os.tmpdir() const text = "tmpdir()"; `; - expect(findMessagingTmpdirCallLines(source)).toEqual([]); + expect(findMessagingTmpdirCallLines(source)).toStrictEqual([]); }); it("ignores tmpdir symbols that are not imported from node:os", () => { @@ -42,7 +42,7 @@ describe("check-no-random-messaging-tmp", () => { const tmpdir = () => "/tmp"; const dir = tmpdir(); `; - expect(findMessagingTmpdirCallLines(source)).toEqual([]); + expect(findMessagingTmpdirCallLines(source)).toStrictEqual([]); }); it("guards src/media against host tmpdir usage", () => { diff --git a/test/scripts/check-no-raw-window-open.test.ts b/test/scripts/check-no-raw-window-open.test.ts index 543c4b79793..8a4e5f80815 100644 --- a/test/scripts/check-no-raw-window-open.test.ts +++ b/test/scripts/check-no-raw-window-open.test.ts @@ -25,7 +25,7 @@ describe("check-no-raw-window-open", () => { // window.open("https://example.com") const text = "window.open('https://example.com')"; `; - expect(findRawWindowOpenLines(source)).toEqual([]); + expect(findRawWindowOpenLines(source)).toStrictEqual([]); }); it("handles parenthesized and asserted window references", () => { diff --git a/test/scripts/check-opengrep-rule-metadata.test.ts b/test/scripts/check-opengrep-rule-metadata.test.ts index ff075d3ff45..93ea29b44e3 100644 --- a/test/scripts/check-opengrep-rule-metadata.test.ts +++ b/test/scripts/check-opengrep-rule-metadata.test.ts @@ -13,7 +13,7 @@ const validRule = { describe("check-opengrep-rule-metadata", () => { it("accepts GHSA-backed rules with durable source metadata", () => { - expect(validateRuleMetadata([validRule])).toEqual([]); + expect(validateRuleMetadata([validRule])).toStrictEqual([]); }); it("requires source metadata on every compiled rule", () => { @@ -46,7 +46,7 @@ describe("check-opengrep-rule-metadata", () => { }, }, ]), - ).toEqual([]); + ).toStrictEqual([]); }); it("keeps the source id, rule id, and GHSA advisory URL consistent", () => { diff --git a/test/scripts/check-runtime-sidecar-loaders.test.ts b/test/scripts/check-runtime-sidecar-loaders.test.ts index 7aebaf095b4..5c9cf01b9ee 100644 --- a/test/scripts/check-runtime-sidecar-loaders.test.ts +++ b/test/scripts/check-runtime-sidecar-loaders.test.ts @@ -42,7 +42,7 @@ describe("check-runtime-sidecar-loaders", () => { "src/tasks/task-registry.ts", new Set(["src/tasks/task-registry-control.runtime.ts"]), ), - ).toEqual([]); + ).toStrictEqual([]); }); it("resolves candidate arrays used by source/build fallback loops", () => { @@ -81,7 +81,7 @@ describe("check-runtime-sidecar-loaders", () => { expect( findRuntimeSidecarLoaderViolations(source, "src/tasks/task-registry.ts", new Set()), - ).toEqual([]); + ).toStrictEqual([]); }); it("collects explicit tsdown entry sources", () => { diff --git a/test/scripts/docker-e2e-plan.test.ts b/test/scripts/docker-e2e-plan.test.ts index 80f929657c4..5905b6bd141 100644 --- a/test/scripts/docker-e2e-plan.test.ts +++ b/test/scripts/docker-e2e-plan.test.ts @@ -279,7 +279,7 @@ describe("scripts/lib/docker-e2e-plan", () => { ) .filter(({ script }) => !scripts[script]); - expect(missing).toEqual([]); + expect(missing).toStrictEqual([]); }); it("keeps legacy release chunk names as aggregate aliases", () => { diff --git a/test/scripts/plugin-gateway-gauntlet.test.ts b/test/scripts/plugin-gateway-gauntlet.test.ts index 95dd008625a..6723e0b524d 100644 --- a/test/scripts/plugin-gateway-gauntlet.test.ts +++ b/test/scripts/plugin-gateway-gauntlet.test.ts @@ -202,7 +202,7 @@ describe("plugin gateway gauntlet helpers", () => { }, ); - expect(observations).toEqual([]); + expect(observations).toStrictEqual([]); }); it("flags QA gateway regressions relative to an explicit baseline", () => { diff --git a/test/scripts/pnpm-audit-prod.test.ts b/test/scripts/pnpm-audit-prod.test.ts index 8487f906f0d..637ff106592 100644 --- a/test/scripts/pnpm-audit-prod.test.ts +++ b/test/scripts/pnpm-audit-prod.test.ts @@ -224,7 +224,7 @@ snapshots: }); expect(exitCode).toBe(1); - expect(stdoutChunks).toEqual([]); + expect(stdoutChunks).toStrictEqual([]); expect(stderrChunks.join("")).toContain("Found 1 high or higher advisories"); } finally { await rm(tempDir, { recursive: true, force: true }); diff --git a/test/scripts/root-dependency-ownership-audit.test.ts b/test/scripts/root-dependency-ownership-audit.test.ts index 72b0e8adcdd..3490277306b 100644 --- a/test/scripts/root-dependency-ownership-audit.test.ts +++ b/test/scripts/root-dependency-ownership-audit.test.ts @@ -266,7 +266,7 @@ describe("collectRootDependencyOwnershipCheckErrors", () => { sections: ["extensions"], }, ]); - expect(collectRootDependencyOwnershipCheckErrors(records)).toEqual([]); + expect(collectRootDependencyOwnershipCheckErrors(records)).toStrictEqual([]); }); it("allows runtime deps for bundled plugins that are still packaged in core", () => { @@ -301,7 +301,7 @@ describe("collectRootDependencyOwnershipCheckErrors", () => { sections: ["extensions"], }, ]); - expect(collectRootDependencyOwnershipCheckErrors(records)).toEqual([]); + expect(collectRootDependencyOwnershipCheckErrors(records)).toStrictEqual([]); }); it("keeps excluded bundled plugin deps localizable", () => { diff --git a/test/scripts/run-vitest.test.ts b/test/scripts/run-vitest.test.ts index 69acaffb27d..485d4cdcd6e 100644 --- a/test/scripts/run-vitest.test.ts +++ b/test/scripts/run-vitest.test.ts @@ -32,7 +32,7 @@ describe("scripts/run-vitest", () => { OPENCLAW_VITEST_ENABLE_MAGLEV: "1", PATH: "/usr/bin", }), - ).toEqual([]); + ).toStrictEqual([]); }); it("parses the optional no-output timeout env", () => { diff --git a/test/scripts/sbom-risk-report.test.ts b/test/scripts/sbom-risk-report.test.ts index dd9d7cfef7d..c750cef472d 100644 --- a/test/scripts/sbom-risk-report.test.ts +++ b/test/scripts/sbom-risk-report.test.ts @@ -173,7 +173,7 @@ snapshots: const report = collectSbomRiskReport({ repoRoot }); - expect(report.ownershipGaps).toEqual([]); + expect(report.ownershipGaps).toStrictEqual([]); expect(report.staleOwnershipRecords).toEqual(["removed-lib"]); }); }); diff --git a/test/scripts/test-projects.test.ts b/test/scripts/test-projects.test.ts index 70a68597bbc..1f2646363f7 100644 --- a/test/scripts/test-projects.test.ts +++ b/test/scripts/test-projects.test.ts @@ -300,7 +300,7 @@ describe("scripts/test-projects changed-target routing", () => { resolveChangedTargetArgs(["--changed", "origin/main"], process.cwd(), () => [ "test/helpers/poll.ts", ]), - ).toEqual([]); + ).toStrictEqual([]); }); it("keeps the broad changed run available for shared test helpers", () => { @@ -366,7 +366,7 @@ describe("scripts/test-projects changed-target routing", () => { resolveChangedTargetArgs(["--changed", "origin/main"], process.cwd(), () => [ "unknown/file.txt", ]), - ).toEqual([]); + ).toStrictEqual([]); }); it("keeps the broad changed run available for unknown root surfaces", () => { @@ -385,13 +385,13 @@ describe("scripts/test-projects changed-target routing", () => { resolveChangedTargetArgs(["--changed", "origin/main"], process.cwd(), () => [ "docs/help/testing.md", ]), - ).toEqual([]); + ).toStrictEqual([]); }); it("skips root agent guidance changes instead of broad-running tests", () => { expect( buildVitestRunPlans(["--changed", "origin/main"], process.cwd(), () => ["AGENTS.md"]), - ).toEqual([]); + ).toStrictEqual([]); }); it("skips app-only changes because app tests are separate from Vitest lanes", () => { @@ -399,7 +399,7 @@ describe("scripts/test-projects changed-target routing", () => { buildVitestRunPlans(["--changed", "origin/main"], process.cwd(), () => [ "apps/macos/OpenClaw/AppDelegate.swift", ]), - ).toEqual([]); + ).toStrictEqual([]); }); it("keeps public plugin SDK changes focused by default", () => { @@ -981,8 +981,8 @@ describe("scripts/test-projects full-suite sharding", () => { .map(([file, configs]) => `${file}: ${configs.join(", ")}`) .toSorted((left, right) => left.localeCompare(right)); - expect(missing).toEqual([]); - expect(duplicated).toEqual([]); + expect(missing).toStrictEqual([]); + expect(duplicated).toStrictEqual([]); }); it("uses the large host-aware local profile on roomy local hosts", () => { diff --git a/test/scripts/verify-plugin-npm-published-runtime.test.ts b/test/scripts/verify-plugin-npm-published-runtime.test.ts index ad01bf1b3ea..ac1c8949844 100644 --- a/test/scripts/verify-plugin-npm-published-runtime.test.ts +++ b/test/scripts/verify-plugin-npm-published-runtime.test.ts @@ -33,7 +33,7 @@ describe("collectPluginNpmPublishedRuntimeErrors", () => { }, files: ["package.json", "index.ts", "dist/index.js"], }), - ).toEqual([]); + ).toStrictEqual([]); }); it("flags missing explicit runtimeExtensions outputs", () => {