Add tests that cover the new semver options
This commit is contained in:
@@ -85,6 +85,15 @@ describe("Releases API consumer", () => {
|
||||
prerelease: true,
|
||||
tag_name: "v3.1.2-pre-2.0",
|
||||
},
|
||||
// Has a tag_name that is not valid semver
|
||||
{
|
||||
assets: [],
|
||||
created_at: "2019-08-010T00:00:00Z",
|
||||
id: 6,
|
||||
name: "",
|
||||
prerelease: true,
|
||||
tag_name: "codeql-bundle-20231220",
|
||||
},
|
||||
];
|
||||
|
||||
class MockReleasesApiConsumer extends ReleasesApiConsumer {
|
||||
@@ -98,15 +107,26 @@ describe("Releases API consumer", () => {
|
||||
}
|
||||
}
|
||||
|
||||
it("picked release has version with the highest precedence", async () => {
|
||||
it("picked release is non-prerelease with with the highest semver", async () => {
|
||||
const consumer = new MockReleasesApiConsumer(owner, repo);
|
||||
|
||||
const latestRelease = await consumer.getLatestRelease(
|
||||
unconstrainedVersionRange,
|
||||
true,
|
||||
);
|
||||
expect(latestRelease.id).toBe(2);
|
||||
});
|
||||
|
||||
it("picked release is non-prerelease with highest id", async () => {
|
||||
const consumer = new MockReleasesApiConsumer(owner, repo);
|
||||
|
||||
const latestRelease = await consumer.getLatestRelease(
|
||||
unconstrainedVersionRange,
|
||||
false,
|
||||
);
|
||||
expect(latestRelease.id).toBe(3);
|
||||
});
|
||||
|
||||
it("version of picked release is within the version range", async () => {
|
||||
const consumer = new MockReleasesApiConsumer(owner, repo);
|
||||
|
||||
@@ -157,6 +177,17 @@ describe("Releases API consumer", () => {
|
||||
);
|
||||
expect(latestRelease.id).toBe(5);
|
||||
});
|
||||
|
||||
it("ignores invalid semver and picks (pre-)release with highest id", async () => {
|
||||
const consumer = new MockReleasesApiConsumer(owner, repo);
|
||||
|
||||
const latestRelease = await consumer.getLatestRelease(
|
||||
undefined,
|
||||
false,
|
||||
true,
|
||||
);
|
||||
expect(latestRelease.id).toBe(6);
|
||||
});
|
||||
});
|
||||
|
||||
it("gets correct assets for a release", async () => {
|
||||
|
||||
Reference in New Issue
Block a user