mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-21 00:06:35 +00:00
Fix atLeastVersion (#8437)
Co-authored-by: Bram Kragten <mail@bramkragten.nl>
This commit is contained in:
parent
fd9441dde2
commit
a648e9be49
@ -5,11 +5,15 @@ export const atLeastVersion = (
|
||||
patch?: number
|
||||
): boolean => {
|
||||
const [haMajor, haMinor, haPatch] = version.split(".", 3);
|
||||
|
||||
return (
|
||||
Number(haMajor) > major ||
|
||||
(Number(haMajor) === major && Number(haMinor) >= minor) ||
|
||||
(Number(haMajor) === major && (patch === undefined
|
||||
? Number(haMinor) >= minor
|
||||
: Number(haMinor) > minor)) ||
|
||||
(patch !== undefined &&
|
||||
Number(haMajor) === major && Number(haMinor) === minor &&
|
||||
Number(haMajor) === major &&
|
||||
Number(haMinor) === minor &&
|
||||
Number(haPatch) >= patch)
|
||||
);
|
||||
};
|
||||
|
41
test-mocha/common/config/version.ts
Normal file
41
test-mocha/common/config/version.ts
Normal 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));
|
||||
})
|
||||
);
|
||||
});
|
Loading…
x
Reference in New Issue
Block a user