From 59657fcea43447ad3504a876fafb4344da4230ff Mon Sep 17 00:00:00 2001 From: Sebastian Malton Date: Thu, 1 Dec 2022 13:03:08 -0500 Subject: [PATCH] Fix user store tests Signed-off-by: Sebastian Malton --- src/common/__tests__/user-store.test.ts | 19 +++++++++++-------- src/common/utils/type-narrowing.ts | 2 +- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/common/__tests__/user-store.test.ts b/src/common/__tests__/user-store.test.ts index 63893bc679..bd0c041d59 100644 --- a/src/common/__tests__/user-store.test.ts +++ b/src/common/__tests__/user-store.test.ts @@ -35,6 +35,7 @@ import getConfigurationFileModelInjectable from "../get-configuration-file-model import storeMigrationVersionInjectable from "../vars/store-migration-version.injectable"; import releaseChannelInjectable from "../vars/release-channel.injectable"; import defaultUpdateChannelInjectable from "../../features/application-update/common/selected-update-channel/default-update-channel.injectable"; +import fsInjectable from "../fs/fs.injectable"; console = new Console(stdout, stderr); @@ -49,8 +50,9 @@ describe("user store tests", () => { di.override(writeFileInjectable, () => () => Promise.resolve()); di.override(directoryForUserDataInjectable, () => "some-directory-for-user-data"); + di.permitSideEffects(getConfigurationFileModelInjectable); - di.permitSideEffects(userStoreInjectable); + di.permitSideEffects(fsInjectable); di.override(releaseChannelInjectable, () => ({ get: () => "latest" as const, @@ -59,6 +61,7 @@ describe("user store tests", () => { await di.inject(defaultUpdateChannelInjectable).init(); di.unoverride(userStoreInjectable); + userStore = di.inject(userStoreInjectable); }); afterEach(() => { @@ -67,9 +70,8 @@ describe("user store tests", () => { describe("for an empty config", () => { beforeEach(() => { - mockFs({ "some-directory-for-user-data": { "config.json": "{}", "kube_config": "{}" }}); + mockFs({ "some-directory-for-user-data": { "lens-user-store.json": "{}", "kube_config": "{}" }}); - userStore = di.inject(userStoreInjectable); userStore.load(); }); @@ -94,10 +96,8 @@ describe("user store tests", () => { beforeEach(() => { mockFs({ "some-directory-for-user-data": { - "config.json": JSON.stringify({ - user: { username: "foobar" }, + "lens-user-store.json": JSON.stringify({ preferences: { colorTheme: "light" }, - lastSeenAppVersion: "1.2.3", }), "lens-cluster-store.json": JSON.stringify({ clusters: [ @@ -122,13 +122,16 @@ describe("user store tests", () => { di.override(storeMigrationVersionInjectable, () => "10.0.0"); - userStore = di.inject(userStoreInjectable); userStore.load(); }); - it.only("skips clusters for adding to kube-sync with files under extension_data/", () => { + it("skips clusters for adding to kube-sync with files under extension_data/", () => { expect(userStore.syncKubeconfigEntries.has("some-directory-for-user-data/extension_data/foo/bar")).toBe(false); expect(userStore.syncKubeconfigEntries.has("some/other/path")).toBe(true); }); + + it("allows access to the colorTheme preference", () => { + expect(userStore.colorTheme).toBe("light"); + }); }); }); diff --git a/src/common/utils/type-narrowing.ts b/src/common/utils/type-narrowing.ts index 6e93bacb99..41552c3136 100644 --- a/src/common/utils/type-narrowing.ts +++ b/src/common/utils/type-narrowing.ts @@ -150,7 +150,7 @@ export function hasDefiniteField(field: Field): (val: return (val): val is T & { [f in Field]-?: NonNullable } => val[field] != null; } -export function isPromiseLike(res: unknown): res is (Promise | { then: () => unknown }) { +export function isPromiseLike(res: unknown): res is (Promise | { then: (fn: (val: unknown) => any) => Promise }) { if (res instanceof Promise) { return true; }