Skip to content

Commit e565032

Browse files
Add tests that cover the new semver options
1 parent 37b2e42 commit e565032

File tree

1 file changed

+32
-1
lines changed

1 file changed

+32
-1
lines changed

extensions/ql-vscode/test/vscode-tests/no-workspace/codeql-cli/distribution.test.ts

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,15 @@ describe("Releases API consumer", () => {
8585
prerelease: true,
8686
tag_name: "v3.1.2-pre-2.0",
8787
},
88+
// Has a tag_name that is not valid semver
89+
{
90+
assets: [],
91+
created_at: "2019-08-010T00:00:00Z",
92+
id: 6,
93+
name: "",
94+
prerelease: true,
95+
tag_name: "codeql-bundle-20231220",
96+
},
8897
];
8998

9099
class MockReleasesApiConsumer extends ReleasesApiConsumer {
@@ -98,15 +107,26 @@ describe("Releases API consumer", () => {
98107
}
99108
}
100109

101-
it("picked release has version with the highest precedence", async () => {
110+
it("picked release is non-prerelease with with the highest semver", async () => {
102111
const consumer = new MockReleasesApiConsumer(owner, repo);
103112

104113
const latestRelease = await consumer.getLatestRelease(
105114
unconstrainedVersionRange,
115+
true,
106116
);
107117
expect(latestRelease.id).toBe(2);
108118
});
109119

120+
it("picked release is non-prerelease with highest id", async () => {
121+
const consumer = new MockReleasesApiConsumer(owner, repo);
122+
123+
const latestRelease = await consumer.getLatestRelease(
124+
unconstrainedVersionRange,
125+
false,
126+
);
127+
expect(latestRelease.id).toBe(3);
128+
});
129+
110130
it("version of picked release is within the version range", async () => {
111131
const consumer = new MockReleasesApiConsumer(owner, repo);
112132

@@ -157,6 +177,17 @@ describe("Releases API consumer", () => {
157177
);
158178
expect(latestRelease.id).toBe(5);
159179
});
180+
181+
it("ignores invalid semver and picks (pre-)release with highest id", async () => {
182+
const consumer = new MockReleasesApiConsumer(owner, repo);
183+
184+
const latestRelease = await consumer.getLatestRelease(
185+
undefined,
186+
false,
187+
true,
188+
);
189+
expect(latestRelease.id).toBe(6);
190+
});
160191
});
161192

162193
it("gets correct assets for a release", async () => {

0 commit comments

Comments
 (0)