Fix atLeastVersion (#8437)

Co-authored-by: Bram Kragten <mail@bramkragten.nl>
This commit is contained in:
Joakim Sørensen 2021-02-23 22:17:22 +01:00 committed by GitHub
parent fd9441dde2
commit a648e9be49
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 47 additions and 2 deletions

View File

@ -5,11 +5,15 @@ export const atLeastVersion = (
patch?: number patch?: number
): boolean => { ): boolean => {
const [haMajor, haMinor, haPatch] = version.split(".", 3); const [haMajor, haMinor, haPatch] = version.split(".", 3);
return ( return (
Number(haMajor) > major || Number(haMajor) > major ||
(Number(haMajor) === major && Number(haMinor) >= minor) || (Number(haMajor) === major && (patch === undefined
? Number(haMinor) >= minor
: Number(haMinor) > minor)) ||
(patch !== undefined && (patch !== undefined &&
Number(haMajor) === major && Number(haMinor) === minor && Number(haMajor) === major &&
Number(haMinor) === minor &&
Number(haPatch) >= patch) Number(haPatch) >= patch)
); );
}; };

View File

@ -0,0 +1,41 @@
import { assert } from "chai";
import { atLeastVersion } from "../../../src/common/config/version";
const testTruthyData = [
{ version: "2021.1.1", major: 2021, minor: 1, patch: 1 },
{ version: "2021.1.1", major: 2021, minor: 1 },
{ version: "2021.1.1", major: 2020, minor: 12, patch: 1 },
{ version: "2021.1.1", major: 2020, minor: 12 },
{ version: "2021.1.1", major: 2021, minor: 2, patch: 0 },
{ version: "2021.1.1", major: 2021, minor: 2 },
{ version: "2021.2.4", major: 0, minor: 113, patch: 0 },
{ version: "2021.2.4", major: 0, minor: 113 },
{ version: "0.114.0", major: 0, minor: 113, patch: 0 },
{ version: "0.114.0", major: 0, minor: 113 },
{ version: "2021.2.0dev.2323", major: 2021, minor: 2, patch: 0 },
{ version: "2021.2.0dev.2323", major: 2021, minor: 2 },
];
const testFalsyData = [
{ version: "0.114.0", major: 0, minor: 113 },
{ version: "2021.2.0dev.2323", major: 2021, minor: 2, patch: 0 },
];
describe("atLeastVersion - Truthy", () => {
testTruthyData.forEach((test) =>
it(`'${test.version}' >= ${test.major},${test.minor},${test.patch}`, () => {
assert.isTrue(atLeastVersion("2021.1.1", 2021, 1));
})
);
});
describe("atLeastVersion - Falsy", () => {
testFalsyData.forEach((test) =>
it(`'${test.version}' >= ${test.major},${test.minor},${test.patch}`, () => {
assert.isTrue(atLeastVersion("2021.1.1", 2021, 1));
})
);
});