1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Fix user store tests

Signed-off-by: Sebastian Malton <sebastian@malton.name>
This commit is contained in:
Sebastian Malton 2022-12-01 13:03:08 -05:00
parent c4a8604b25
commit 59657fcea4
2 changed files with 12 additions and 9 deletions

View File

@ -35,6 +35,7 @@ import getConfigurationFileModelInjectable from "../get-configuration-file-model
import storeMigrationVersionInjectable from "../vars/store-migration-version.injectable"; import storeMigrationVersionInjectable from "../vars/store-migration-version.injectable";
import releaseChannelInjectable from "../vars/release-channel.injectable"; import releaseChannelInjectable from "../vars/release-channel.injectable";
import defaultUpdateChannelInjectable from "../../features/application-update/common/selected-update-channel/default-update-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); console = new Console(stdout, stderr);
@ -49,8 +50,9 @@ describe("user store tests", () => {
di.override(writeFileInjectable, () => () => Promise.resolve()); di.override(writeFileInjectable, () => () => Promise.resolve());
di.override(directoryForUserDataInjectable, () => "some-directory-for-user-data"); di.override(directoryForUserDataInjectable, () => "some-directory-for-user-data");
di.permitSideEffects(getConfigurationFileModelInjectable); di.permitSideEffects(getConfigurationFileModelInjectable);
di.permitSideEffects(userStoreInjectable); di.permitSideEffects(fsInjectable);
di.override(releaseChannelInjectable, () => ({ di.override(releaseChannelInjectable, () => ({
get: () => "latest" as const, get: () => "latest" as const,
@ -59,6 +61,7 @@ describe("user store tests", () => {
await di.inject(defaultUpdateChannelInjectable).init(); await di.inject(defaultUpdateChannelInjectable).init();
di.unoverride(userStoreInjectable); di.unoverride(userStoreInjectable);
userStore = di.inject(userStoreInjectable);
}); });
afterEach(() => { afterEach(() => {
@ -67,9 +70,8 @@ describe("user store tests", () => {
describe("for an empty config", () => { describe("for an empty config", () => {
beforeEach(() => { 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(); userStore.load();
}); });
@ -94,10 +96,8 @@ describe("user store tests", () => {
beforeEach(() => { beforeEach(() => {
mockFs({ mockFs({
"some-directory-for-user-data": { "some-directory-for-user-data": {
"config.json": JSON.stringify({ "lens-user-store.json": JSON.stringify({
user: { username: "foobar" },
preferences: { colorTheme: "light" }, preferences: { colorTheme: "light" },
lastSeenAppVersion: "1.2.3",
}), }),
"lens-cluster-store.json": JSON.stringify({ "lens-cluster-store.json": JSON.stringify({
clusters: [ clusters: [
@ -122,13 +122,16 @@ describe("user store tests", () => {
di.override(storeMigrationVersionInjectable, () => "10.0.0"); di.override(storeMigrationVersionInjectable, () => "10.0.0");
userStore = di.inject(userStoreInjectable);
userStore.load(); 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-directory-for-user-data/extension_data/foo/bar")).toBe(false);
expect(userStore.syncKubeconfigEntries.has("some/other/path")).toBe(true); expect(userStore.syncKubeconfigEntries.has("some/other/path")).toBe(true);
}); });
it("allows access to the colorTheme preference", () => {
expect(userStore.colorTheme).toBe("light");
});
}); });
}); });

View File

@ -150,7 +150,7 @@ export function hasDefiniteField<Field extends keyof T, T>(field: Field): (val:
return (val): val is T & { [f in Field]-?: NonNullable<T[Field]> } => val[field] != null; return (val): val is T & { [f in Field]-?: NonNullable<T[Field]> } => val[field] != null;
} }
export function isPromiseLike(res: unknown): res is (Promise<unknown> | { then: () => unknown }) { export function isPromiseLike(res: unknown): res is (Promise<unknown> | { then: (fn: (val: unknown) => any) => Promise<unknown> }) {
if (res instanceof Promise) { if (res instanceof Promise) {
return true; return true;
} }