1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/src/extensions/__tests__/lens-extension-update-checker.test.ts
Lauri Nevala 4e081e3cc2 Fix license headers
Signed-off-by: Lauri Nevala <lauri.nevala@gmail.com>
2022-01-18 15:11:10 +02:00

65 lines
1.9 KiB
TypeScript

/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import type { LensExtensionLatestVersionChecker } from "../lens-extension-latest-version-checker";
import { LensExtensionAvailableUpdate, LensExtensionUpdateChecker } from "../lens-extension-update-checker";
class TestLatestVersionChecker implements LensExtensionLatestVersionChecker {
async getLatestVersion(): Promise<LensExtensionAvailableUpdate> {
return {
input: "foo",
version: "1.0.0",
};
}
}
class TestLatestVersionChecker2 implements LensExtensionLatestVersionChecker {
async getLatestVersion(): Promise<LensExtensionAvailableUpdate> {
return {
input: "bar",
version: "0.5.0",
};
}
}
let updateChecker: LensExtensionUpdateChecker;
const versionChecker1 = new TestLatestVersionChecker();
const versionChecker2 = new TestLatestVersionChecker2();
describe("LensExtensionUpdateChecker", () => {
beforeEach(() => {
updateChecker = new LensExtensionUpdateChecker({
foo: versionChecker1,
bar: versionChecker2,
});
});
describe("run", () => {
it("checks latest version from version checker", async () => {
const versionCheckerSpy = jest.spyOn(versionChecker1, "getLatestVersion");
const versionCheckerSpy2 = jest.spyOn(versionChecker2, "getLatestVersion");
await updateChecker.run({
name: "foo-bar",
version: "0.1.1",
});
expect(versionCheckerSpy).toHaveBeenCalled();
expect(versionCheckerSpy2).toHaveBeenCalled();
});
it("returns latest version from version checkers", async () => {
const update = await updateChecker.run({
name: "foo-bar",
version: "0.1.1",
});
expect(update.version).toEqual("1.0.0");
expect(update.input).toEqual("foo");
});
});
});