mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
- versions matching fixes (app/extension)
- mark `manifest.engines.lens` required for extensions / updating tests Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
parent
2af33ad042
commit
d5f2e1642f
@ -17,6 +17,7 @@ describe("lens extension", () => {
|
||||
manifest: {
|
||||
name: "foo-bar",
|
||||
version: "0.1.1",
|
||||
engines: { lens: "^5.5.0" },
|
||||
},
|
||||
id: "/this/is/fake/package.json",
|
||||
absolutePath: "/absolute/fake/",
|
||||
|
||||
@ -10,17 +10,13 @@ interface Dependencies {
|
||||
}
|
||||
|
||||
export const isCompatibleExtension = (deps: Dependencies): ((manifest: LensExtensionManifest) => boolean) => {
|
||||
const { major: appVersion } = deps.appSemVer;
|
||||
const { major: appMajor, minor: appMinor } = deps.appSemVer;
|
||||
|
||||
return (manifest: LensExtensionManifest): boolean => {
|
||||
if (manifest?.engines.lens) {
|
||||
const { major: extMajor, minor: extMinor } = new SemVer(manifest.engines.lens, {
|
||||
loose: true,
|
||||
});
|
||||
const { major: extMajor, minor: extMinor } = new SemVer(manifest.engines.lens, {
|
||||
loose: true,
|
||||
});
|
||||
|
||||
return semver.gte(`${extMajor}.${extMinor}`, `${appVersion}.0`);
|
||||
}
|
||||
|
||||
return false; // not compatible by default
|
||||
return semver.intersects(`>=${appMajor}.${appMinor}`, `<${extMajor}.${extMinor + 1}`);
|
||||
};
|
||||
};
|
||||
|
||||
@ -25,8 +25,8 @@ export interface LensExtensionManifest extends PackageJson {
|
||||
* Supported Lens version engine by extension could be defined in `manifest.engines.lens`
|
||||
* Only MAJOR.MINOR version is taken in consideration.
|
||||
*/
|
||||
engines?: {
|
||||
lens?: string; // "semver"-package format
|
||||
engines: {
|
||||
lens: string; // "semver"-package format
|
||||
npm?: string;
|
||||
node?: string;
|
||||
};
|
||||
|
||||
@ -109,7 +109,7 @@ class SomeTestExtension extends LensMainExtension {
|
||||
isBundled: false,
|
||||
isCompatible: false,
|
||||
isEnabled: false,
|
||||
manifest: { name: id, version: "some-version" },
|
||||
manifest: { name: id, version: "some-version", engines: { lens: "^5.5.0" }},
|
||||
manifestPath: "irrelevant",
|
||||
});
|
||||
|
||||
|
||||
@ -87,6 +87,7 @@ describe("protocol router tests", () => {
|
||||
manifest: {
|
||||
name: "@mirantis/minikube",
|
||||
version: "0.1.1",
|
||||
engines: { lens: "^5.5.0" },
|
||||
},
|
||||
isBundled: false,
|
||||
isEnabled: true,
|
||||
@ -162,6 +163,7 @@ describe("protocol router tests", () => {
|
||||
manifest: {
|
||||
name: "@foobar/icecream",
|
||||
version: "0.1.1",
|
||||
engines: { lens: "^5.5.0" },
|
||||
},
|
||||
isBundled: false,
|
||||
isEnabled: true,
|
||||
@ -203,6 +205,7 @@ describe("protocol router tests", () => {
|
||||
manifest: {
|
||||
name: "@foobar/icecream",
|
||||
version: "0.1.1",
|
||||
engines: { lens: "^5.5.0" },
|
||||
},
|
||||
isBundled: false,
|
||||
isEnabled: true,
|
||||
@ -228,6 +231,7 @@ describe("protocol router tests", () => {
|
||||
manifest: {
|
||||
name: "icecream",
|
||||
version: "0.1.1",
|
||||
engines: { lens: "^5.5.0" },
|
||||
},
|
||||
isBundled: false,
|
||||
isEnabled: true,
|
||||
|
||||
@ -113,7 +113,7 @@ class SomeTestExtension extends LensMainExtension {
|
||||
isBundled: false,
|
||||
isCompatible: false,
|
||||
isEnabled: false,
|
||||
manifest: { name: id, version: "some-version" },
|
||||
manifest: { name: id, version: "some-version", engines: { lens: "^5.5.0" }},
|
||||
manifestPath: "irrelevant",
|
||||
});
|
||||
|
||||
|
||||
@ -77,6 +77,7 @@ describe("Extensions", () => {
|
||||
manifest: {
|
||||
name: "test",
|
||||
version: "1.2.3",
|
||||
engines: { lens: "^5.5.0" },
|
||||
},
|
||||
absolutePath: "/absolute/path",
|
||||
manifestPath: "/symlinked/path/package.json",
|
||||
|
||||
@ -102,7 +102,7 @@ class TestExtension extends LensRendererExtension {
|
||||
isBundled: false,
|
||||
isCompatible: false,
|
||||
isEnabled: false,
|
||||
manifest: { name: id, version: "some-version" },
|
||||
manifest: { name: id, version: "some-version", engines: { lens: "^5.5.0" }},
|
||||
manifestPath: "irrelevant",
|
||||
});
|
||||
|
||||
|
||||
@ -40,7 +40,7 @@ class SomeTestExtension extends LensRendererExtension {
|
||||
isBundled: false,
|
||||
isCompatible: false,
|
||||
isEnabled: false,
|
||||
manifest: { name: "some-id", version: "some-version" },
|
||||
manifest: { name: "some-id", version: "some-version", engines: { lens: "^5.5.0" }},
|
||||
manifestPath: "irrelevant",
|
||||
});
|
||||
|
||||
|
||||
@ -255,7 +255,7 @@ class SomeTestExtension extends LensRendererExtension {
|
||||
isBundled: false,
|
||||
isCompatible: false,
|
||||
isEnabled: false,
|
||||
manifest: { name: "some-id", version: "some-version" },
|
||||
manifest: { name: "some-id", version: "some-version", engines: { lens: "^5.5.0" }},
|
||||
manifestPath: "irrelevant",
|
||||
});
|
||||
|
||||
|
||||
@ -26,7 +26,7 @@ class SomeTestExtension extends LensRendererExtension {
|
||||
isBundled: false,
|
||||
isCompatible: false,
|
||||
isEnabled: false,
|
||||
manifest: { name: "some-id", version: "some-version" },
|
||||
manifest: { name: "some-id", version: "some-version", engines: { lens: "^5.5.0" }},
|
||||
manifestPath: "irrelevant",
|
||||
});
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ export const getRendererExtensionFake = ({ id, ...rest }: Partial<LensRendererEx
|
||||
isBundled: false,
|
||||
isCompatible: false,
|
||||
isEnabled: false,
|
||||
manifest: { name: id, version: "some-version" },
|
||||
manifest: { name: id, version: "some-version", engines: { lens: "^5.5.0" }},
|
||||
manifestPath: "irrelevant",
|
||||
});
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user