mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 10:28:47 +00:00
test for invalid version
This commit is contained in:
committed by
Jarred Sumner
parent
b0126b5962
commit
75aa963fef
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -2066,6 +2066,10 @@ pub const Query = struct {
|
||||
}
|
||||
}
|
||||
|
||||
if (count == 0) {
|
||||
return error.InvalidDependencyVersion;
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -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) {
|
||||
@@ -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", () => {
|
||||
|
||||
Reference in New Issue
Block a user