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 <jarred@jarredsumner.com>
This commit is contained in:
Dylan Conway
2024-03-18 19:40:11 -07:00
committed by GitHub
parent 76ced7c6ed
commit 06f04b584c
2 changed files with 39 additions and 1 deletions

View File

@@ -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;

View File

@@ -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"),