From b0307da20ae87d93e96a54d2e4cd74be4cd8d33d Mon Sep 17 00:00:00 2001 From: Nate Moore Date: Wed, 11 Nov 2026 00:18:29 -0500 Subject: [PATCH] Expect the files an install keeps now that only docs, maps, and addons are dropped cceead9 made keepInPackage keep every file but Markdown, source maps, and .node addons, and the install specs still expected the old file and byte counts. Each new count is what npm ci wrote for the fixture under that rule, less .package-lock.json, which the installer writes itself; the optional-only case's hashes come from its two tarballs. The vite snapshot also keeps fsevents' LICENSE and fsevents.d.ts, which a Linux install skips. --- packages/kernel/tests/install.spec.ts | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/packages/kernel/tests/install.spec.ts b/packages/kernel/tests/install.spec.ts index b26ca29..2197754 100644 --- a/packages/kernel/tests/install.spec.ts +++ b/packages/kernel/tests/install.spec.ts @@ -119,17 +119,17 @@ const NO_METADATA = { cached: 0, fetched: 0 }; // `npm ci --os linux --cpu wasm32 --libc glibc` does, and npm's hidden lockfile, which // lists what was installed, differs. const CASES: Array<{ app: string; report: Omit; diff: ReturnType }> = [ - { app: "clack", report: { bins: 0, packages: 6, files: 14, bytes: 108139, cached: 0, fetched: 6, skipped: [], scripts: [], lockfile: "kept", metadata: NO_METADATA, warnings: [], diff: { added: 6, removed: 0, changed: 0 } }, diff: SAME }, - { app: "esbuild", report: { bins: 1, packages: 1, files: 10, bytes: 14460873, cached: 0, fetched: 1, skipped: [], scripts: [], lockfile: "kept", metadata: NO_METADATA, warnings: [], diff: { added: 1, removed: 0, changed: 0 } }, diff: SAME }, - { app: "express", report: { bins: 0, packages: 65, files: 290, bytes: 1469166, cached: 0, fetched: 65, skipped: [], scripts: [], lockfile: "kept", metadata: NO_METADATA, warnings: [], diff: { added: 65, removed: 0, changed: 0 } }, diff: SAME }, - { app: "hono", report: { bins: 0, packages: 2, files: 398, bytes: 1017942, cached: 0, fetched: 2, skipped: [], scripts: [], lockfile: "kept", metadata: NO_METADATA, warnings: [], diff: { added: 2, removed: 0, changed: 0 } }, diff: SAME }, - { app: "ws", report: { bins: 0, packages: 1, files: 17, bytes: 134921, cached: 0, fetched: 1, skipped: [], scripts: [], lockfile: "kept", metadata: NO_METADATA, warnings: [], diff: { added: 1, removed: 0, changed: 0 } }, diff: SAME }, + { app: "clack", report: { bins: 0, packages: 6, files: 28, bytes: 165011, cached: 0, fetched: 6, skipped: [], scripts: [], lockfile: "kept", metadata: NO_METADATA, warnings: [], diff: { added: 6, removed: 0, changed: 0 } }, diff: SAME }, + { app: "esbuild", report: { bins: 1, packages: 1, files: 13, bytes: 14531526, cached: 0, fetched: 1, skipped: [], scripts: [], lockfile: "kept", metadata: NO_METADATA, warnings: [], diff: { added: 1, removed: 0, changed: 0 } }, diff: SAME }, + { app: "express", report: { bins: 0, packages: 65, files: 469, bytes: 1594932, cached: 0, fetched: 65, skipped: [], scripts: [], lockfile: "kept", metadata: NO_METADATA, warnings: [], diff: { added: 65, removed: 0, changed: 0 } }, diff: SAME }, + { app: "hono", report: { bins: 0, packages: 2, files: 601, bytes: 1417765, cached: 0, fetched: 2, skipped: [], scripts: [], lockfile: "kept", metadata: NO_METADATA, warnings: [], diff: { added: 2, removed: 0, changed: 0 } }, diff: SAME }, + { app: "ws", report: { bins: 0, packages: 1, files: 18, bytes: 136104, cached: 0, fetched: 1, skipped: [], scripts: [], lockfile: "kept", metadata: NO_METADATA, warnings: [], diff: { added: 1, removed: 0, changed: 0 } }, diff: SAME }, { app: "vite", - report: { bins: 11, packages: 62, files: 1585, bytes: 32117153, cached: 0, fetched: 62, skipped: ["node_modules/@napi-rs/lzma-linux-x64-gnu", "node_modules/fsevents"], scripts: [], lockfile: "kept", metadata: NO_METADATA, warnings: [], diff: { added: 62, removed: 0, changed: 0 } }, + report: { bins: 11, packages: 62, files: 1789, bytes: 33878866, cached: 0, fetched: 62, skipped: ["node_modules/@napi-rs/lzma-linux-x64-gnu", "node_modules/fsevents"], scripts: [], lockfile: "kept", metadata: NO_METADATA, warnings: [], diff: { added: 62, removed: 0, changed: 0 } }, diff: { onlyInstalled: [], - onlySnapshot: ["/app/node_modules/fsevents/fsevents.js", "/app/node_modules/fsevents/package.json"], + onlySnapshot: ["/app/node_modules/fsevents/LICENSE", "/app/node_modules/fsevents/fsevents.d.ts", "/app/node_modules/fsevents/fsevents.js", "/app/node_modules/fsevents/package.json"], differ: ["/app/node_modules/.package-lock.json"], }, }, @@ -352,7 +352,7 @@ const OPTIONAL_ONLY_LOCK = `${JSON.stringify({ test("a package only a platform-skipped optional needs is skipped with it, as npm ci skips it", async ({ page }) => { const { report: { ms: _, ...report }, files } = await installLockfile(page, OPTIONAL_ONLY_LOCK, { "/app/package.json": JSON.stringify(OPTIONAL_ONLY_PACKAGE) }); expect(report).toEqual({ - packages: 2, files: 6, bytes: 10562, bins: 0, cached: 0, fetched: 2, + packages: 2, files: 10, bytes: 12208, bins: 0, cached: 0, fetched: 2, skipped: ["node_modules/fsevents", "node_modules/nan"], scripts: [], lockfile: "kept", metadata: NO_METADATA, warnings: [], diff: { added: 2, removed: 0, changed: 0 }, }); // SHA-256 of each file `npm ci --os linux --cpu x64` wrote that keepInPackage keeps. @@ -360,6 +360,10 @@ test("a package only a platform-skipped optional needs is skipped with it, as np "/app/node_modules/.package-lock.json": "f20003f45df0320f4c3d82e26fb6527a0766e6caa42be2292b6a6012240197f2", "/app/node_modules/bindings/bindings.js": "8e32a0d37f20bd6f7d5bdbf99d041aa27be47cbbe5172ac13ebf7380a10b3bf6", "/app/node_modules/bindings/package.json": "a87721fe406e1f1798fef44d697b46ea1efe346fda118010334713346ee4207c", + "/app/node_modules/file-uri-to-path/.npmignore": "bfb16fc2dc3b7f24e20981aa586e31d66293c81eb7c2e5d0a9bbb252b13c6271", + "/app/node_modules/file-uri-to-path/.travis.yml": "14cfedcd0d39a797fb56787bc06b46d09aa2786084bb0dec49467b9720fb2979", + "/app/node_modules/file-uri-to-path/LICENSE": "75070206e4ee2a749be52444cecc05101ca8d314c9d6d335ff914046cbf086a0", + "/app/node_modules/file-uri-to-path/index.d.ts": "46eb38b4f992126135e00159041a6e69e46402e56613bdc891d7b0d28fc31e37", "/app/node_modules/file-uri-to-path/index.js": "e62293e871bdd5a7449ff3c7956c9536ec1d2ea7369461de77322b5256bb93e7", "/app/node_modules/file-uri-to-path/package.json": "71eb1e24bb9694f89c613fa0aa307f977dd43f41d11794c7b48fabf6c55f66b0", "/app/node_modules/file-uri-to-path/test/test.js": "223c25dba6fefbb7cb491b026a32f070b1425475d3cd2d04627be5d71a07fd38", -- knotmirror 0.0.1