test for invalid version

This commit is contained in:
Dylan Conway
2023-11-06 17:58:25 -08:00
committed by Jarred Sumner
parent b0126b5962
commit 75aa963fef
3 changed files with 55 additions and 1 deletions

View File

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

View File

@@ -2066,6 +2066,10 @@ pub const Query = struct {
}
}
if (count == 0) {
return error.InvalidDependencyVersion;
}
return list;
}
};

View File

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