saleor-apps-redis_apl/apps/invoices/src/lib/saleor-version-compatibility-validator.test.ts
Lukasz Ostrowski 1fef68b49e
Improves how Saleor version is validated during installation (Invoices) (#390)
* Extract SaleorVersionCompatibilityValidator + tests

* Use SaleorVersionCompatibilityValidtor in register handler

* Replace coerce with includePrerelease in saleor version matching

* Changelogs
2023-04-17 12:39:13 +02:00

32 lines
1 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { SaleorVersionCompatibilityValidator } from "./saleor-version-compatibility-validator";
describe("SaleorVersionCompatibilityValidator", () => {
it.each([
[">=3.10 <4", "3.12.0"],
[">=3.10 <4", "3.999.0"],
[">=3.10", "4.0.0"],
[">=3.10", "4.1.0"],
[">3.10", "3.11.0"],
/**
* -a suffix is Saleor staging version indicator
*/
[">=3.10", "3.10.0-a"],
[">3.10", "3.11.0-a"],
])('Passes for app requirement "%s" and saleor version "%s"', (appVersionReq, saleorVersion) => {
expect(() =>
new SaleorVersionCompatibilityValidator(appVersionReq).validateOrThrow(saleorVersion)
).not.to.throw();
});
it.each([
[">=3.10 <4", "4.0.0"],
[">3.10 <4", "3.10.0"],
[">3.10", "3.10.0"],
[">=3.10", "2.0.0"],
])('Throws for app requirement "%s" and saleor version "%s"', (appVersionReq, saleorVersion) => {
expect(() =>
new SaleorVersionCompatibilityValidator(appVersionReq).validateOrThrow(saleorVersion)
).to.throw();
});
});