refactor: store (#3164)
This commit is contained in:
44
apps/desktop/src/loaders/settings.test.tsx
Normal file
44
apps/desktop/src/loaders/settings.test.tsx
Normal file
@@ -0,0 +1,44 @@
|
||||
import { clearMocks, mockIPC } from "@tauri-apps/api/mocks";
|
||||
import { act, render } from "@testing-library/react";
|
||||
import { afterEach, describe, expect, it } from "vitest";
|
||||
import { SettingsLoaderMount } from "@/loaders/settings";
|
||||
import { resetGlobalStore, useGlobalStore } from "@/stores/global";
|
||||
|
||||
afterEach(() => {
|
||||
clearMocks();
|
||||
resetGlobalStore();
|
||||
});
|
||||
|
||||
describe("SettingsLoaderMount", () => {
|
||||
it("handle valid onboarding", async () => {
|
||||
mockIPC((cmd, _args) => {
|
||||
if (cmd === "is_onboarded") return false;
|
||||
});
|
||||
|
||||
useGlobalStore.getState().sessionSucceeded(true);
|
||||
|
||||
const r = render(<SettingsLoaderMount />);
|
||||
await act(async () => {});
|
||||
|
||||
expect(useGlobalStore.getState().settings.status).toBe("ready");
|
||||
expect(useGlobalStore.getState().settings.onboarded).toBe(false);
|
||||
|
||||
r.unmount();
|
||||
});
|
||||
|
||||
it("handle invalid onboarding flow", async () => {
|
||||
mockIPC((cmd, _args) => {
|
||||
if (cmd === "is_onboarded")
|
||||
throw { message: "Failed to get settings", code: "errors.graphql.server" };
|
||||
});
|
||||
|
||||
useGlobalStore.getState().sessionSucceeded(true);
|
||||
|
||||
const r = render(<SettingsLoaderMount />);
|
||||
await act(async () => {});
|
||||
|
||||
expect(useGlobalStore.getState().settings.status).toBe("error");
|
||||
|
||||
r.unmount();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user