Skip to content

Commit

Permalink
test for invalid version
Browse files Browse the repository at this point in the history
  • Loading branch information
dylan-conway authored and Jarred-Sumner committed Nov 7, 2023
1 parent b0126b5 commit 75aa963
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 1 deletion.
12 changes: 11 additions & 1 deletion src/install/dependency.zig
Original file line number Diff line number Diff line change
Expand Up @@ -762,7 +762,17 @@ pub fn parseWithTag(
input,
sliced.sub(input),
) catch |err| {
if (log_) |log| log.addErrorFmt(null, logger.Loc.Empty, allocator, "{s} parsing dependency \"{s}\"", .{ @errorName(err), dependency }) catch unreachable;
if (log_) |log| log.addErrorFmt(
null,
logger.Loc.Empty,
allocator,
"{s} parsing dependency \"{s}\" with version \"{s}\"",
.{
@errorName(err),
name.fmt(sliced.buf),
dependency,
},
) catch unreachable;
return null;
};

Expand Down
4 changes: 4 additions & 0 deletions src/install/semver.zig
Original file line number Diff line number Diff line change
Expand Up @@ -2066,6 +2066,10 @@ pub const Query = struct {
}
}

if (count == 0) {
return error.InvalidDependencyVersion;
}

return list;
}
};
Expand Down
40 changes: 40 additions & 0 deletions test/cli/install/registry/bun-install-registry.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,16 @@ describe("semver", () => {
depVersion: "1||2",
expected: "2.0.1",
},
{
title: "no version is latest",
depVersion: "",
expected: "3.0.0",
},
{
title: "tagged version works",
depVersion: "pre-2",
expected: "2.0.1",
},
];

for (const { title, depVersion, expected } of taggedVersionTests) {
Expand Down Expand Up @@ -290,6 +300,36 @@ describe("semver", () => {
]);
});
}

test("only tagged versions in range errors", async () => {
await writeFile(
join(packageDir, "package.json"),
JSON.stringify({
name: "foo",
version: "1.0.0",
dependencies: {
"dep-with-tags": "pre-1 || pre-2",
},
}),
);

var { stdout, stderr, exited } = spawn({
cmd: [bunExe(), "install"],
cwd: packageDir,
stdout: null,
stdin: "pipe",
stderr: "pipe",
env,
});

expect(stderr).toBeDefined();
var err = await new Response(stderr).text();
expect(stdout).toBeDefined();
var out = await new Response(stdout).text();
expect(await exited).toBe(1);
expect(err).toContain('InvalidDependencyVersion parsing dependency "dep-with-tags" with version "pre-1 || pre-2"');
expect(out).toBeEmpty();
});
});

describe("prereleases", () => {
Expand Down

0 comments on commit 75aa963

Please sign in to comment.