From 06f04b584c65f6ba9ffdabe51502b52e17deae6f Mon Sep 17 00:00:00 2001 From: Dylan Conway <35280289+dylan-conway@users.noreply.github.com> Date: Mon, 18 Mar 2024 19:40:11 -0700 Subject: [PATCH] fix(install): default trusted dependencies on windows (#9500) * make sure source data is set too * make default trusted dependencies work * undo * test --------- Co-authored-by: Jarred Sumner --- src/install/lockfile.zig | 2 +- .../registry/bun-install-registry.test.ts | 38 +++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/src/install/lockfile.zig b/src/install/lockfile.zig index f310701b5a..95d6a3559b 100644 --- a/src/install/lockfile.zig +++ b/src/install/lockfile.zig @@ -5772,7 +5772,7 @@ pub const default_trusted_dependencies_list: []string = brk: { @setEvalBranchQuota(999999); var buf: [max_default_trusted_dependencies]string = undefined; var i: usize = 0; - var iter = std.mem.tokenizeAny(u8, data, " \n\t"); + var iter = std.mem.tokenizeAny(u8, data, " \r\n\t"); while (iter.next()) |dep| { buf[i] = dep; i += 1; diff --git a/test/cli/install/registry/bun-install-registry.test.ts b/test/cli/install/registry/bun-install-registry.test.ts index 00de84bd17..56778799e5 100644 --- a/test/cli/install/registry/bun-install-registry.test.ts +++ b/test/cli/install/registry/bun-install-registry.test.ts @@ -3207,6 +3207,44 @@ for (const forceWaiterThread of [false, true]) { expect(err).toContain("v"); }); + // if this test fails, `electron` might be removed from the default list + test("default trusted dependencies should work", async () => { + await writeFile( + join(packageDir, "package.json"), + JSON.stringify({ + name: "foo", + version: "1.2.3", + dependencies: { + "electron": "1.0.0", + }, + }), + ); + + var { stdout, stderr, exited } = spawn({ + cmd: [bunExe(), "install"], + cwd: packageDir, + stdout: "pipe", + stdin: "pipe", + stderr: "pipe", + env, + }); + + const err = await new Response(stderr).text(); + expect(err).toContain("Saved lockfile"); + expect(err).not.toContain("not found"); + expect(err).not.toContain("error:"); + const out = await new Response(stdout).text(); + expect(out.replace(/\s*\[[0-9\.]+m?s\]\s*$/, "").split(/\r?\n/)).toEqual([ + "", + " + electron@1.0.0", + "", + expect.stringContaining("1 package installed"), + ]); + expect(out).not.toContain("Blocked"); + expect(await exists(join(packageDir, "node_modules", "electron", "preinstall.txt"))).toBeTrue(); + expect(await exited).toBe(0); + }); + test.todo("default trusted dependencies should not be used of trustedDependencies is populated", async () => { await writeFile( join(packageDir, "package.json"),