Skip to content

Commit cd6bb86

Browse files
committed
fix test
1 parent f0afc6e commit cd6bb86

1 file changed

Lines changed: 22 additions & 55 deletions

File tree

tests/commands/onboarding.test.ts

Lines changed: 22 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,16 @@ describe("onboarding flow", () => {
77
});
88

99
it("returns false when browser login fails", async () => {
10+
vi.doMock("../../src/lib/terminal-ui.js", () => ({
11+
promptText: vi.fn().mockResolvedValue(""),
12+
}));
1013
vi.doMock("../../src/lib/auth.js", () => ({
1114
performBrowserLogin: vi.fn().mockRejectedValue(new Error("login failed")),
1215
AUTH_PORT: 16424,
1316
getLoginUrl: vi.fn().mockReturnValue("https://auth.alchemy.com/login"),
1417
}));
1518
vi.doMock("../../src/lib/update-check.js", () => ({
16-
getUpdateNoticeLines: vi.fn().mockReturnValue([
17-
" Update available 0.2.0 -> 9.9.9",
18-
" Run npm i -g @alchemy/cli@latest to update",
19-
]),
19+
getUpdateNoticeLines: vi.fn().mockReturnValue([]),
2020
}));
2121
vi.doMock("../../src/lib/config.js", () => ({
2222
load: vi.fn().mockReturnValue({}),
@@ -40,48 +40,26 @@ describe("onboarding flow", () => {
4040

4141
it("returns true when browser login succeeds", async () => {
4242
const save = vi.fn();
43+
vi.doMock("../../src/lib/terminal-ui.js", () => ({
44+
promptText: vi.fn().mockResolvedValue(""),
45+
}));
4346
vi.doMock("../../src/lib/auth.js", () => ({
4447
performBrowserLogin: vi.fn().mockResolvedValue({
4548
token: "test_token",
4649
expiresAt: "2099-01-01T00:00:00Z",
4750
}),
4851
AUTH_PORT: 16424,
4952
getLoginUrl: vi.fn().mockReturnValue("https://auth.alchemy.com/login"),
50-
vi.doMock("../../src/lib/terminal-ui.js", () => ({
51-
promptSelect: vi.fn().mockResolvedValue("api-key"),
52-
promptText: vi.fn().mockResolvedValue("api_test"),
53-
}));
54-
vi.doMock("../../src/lib/update-check.js", () => ({
55-
getUpdateNoticeLines: vi.fn().mockReturnValue([
56-
" Update available 0.2.0 -> 9.9.9",
57-
" Run npm i -g @alchemy/cli@latest to update",
58-
]),
59-
}));
60-
vi.doMock("../../src/lib/config.js", () => ({
61-
load,
62-
save,
63-
}));
64-
vi.doMock("../../src/lib/ui.js", () => ({
65-
brand: (s: string) => s,
66-
bold: (s: string) => s,
67-
brandedHelp: () => "",
68-
dim: (s: string) => s,
69-
green: (s: string) => s,
70-
maskIf: (s: string) => s,
71-
printKeyValueBox: vi.fn(),
7253
}));
7354
vi.doMock("../../src/commands/auth.js", () => ({
7455
selectAppAfterAuth: vi.fn(),
7556
}));
7657
vi.doMock("../../src/lib/update-check.js", () => ({
77-
getUpdateNoticeLines: vi.fn().mockReturnValue([
78-
" Update available 0.2.0 -> 9.9.9",
79-
" Run npm i -g @alchemy/cli@latest to update",
80-
]),
58+
getUpdateNoticeLines: vi.fn().mockReturnValue([]),
8159
}));
8260
vi.doMock("../../src/lib/config.js", () => ({
8361
load: vi.fn().mockReturnValue({}),
84-
save: vi.fn(),
62+
save,
8563
}));
8664
vi.doMock("../../src/lib/ui.js", () => ({
8765
brand: (s: string) => s,
@@ -92,33 +70,23 @@ describe("onboarding flow", () => {
9270
maskIf: (s: string) => s,
9371
printKeyValueBox: vi.fn(),
9472
}));
95-
vi.doMock("../../src/lib/admin-client.js", () => ({
96-
AdminClient: vi.fn(),
97-
}));
98-
vi.doMock("../../src/commands/config.js", () => ({
99-
selectOrCreateApp: vi.fn(),
100-
}));
101-
vi.doMock("../../src/commands/wallet.js", () => ({
102-
generateAndPersistWallet: vi.fn(),
103-
importAndPersistWallet: vi.fn(),
104-
}));
10573

74+
vi.spyOn(console, "log").mockImplementation(() => {});
10675
const { runOnboarding } = await import("../../src/commands/onboarding.js");
10776
const completed = await runOnboarding({} as never);
108-
expect(completed).toBe(false);
77+
expect(completed).toBe(true);
78+
expect(save).toHaveBeenCalledWith({
79+
auth_token: "test_token",
80+
auth_token_expires_at: "2099-01-01T00:00:00Z",
81+
});
10982
});
11083

111-
it("prints next steps when selected path remains incomplete", async () => {
112-
const logSpy = vi.spyOn(console, "log").mockImplementation(() => {});
84+
it("returns false when user cancels the prompt", async () => {
11385
vi.doMock("../../src/lib/terminal-ui.js", () => ({
114-
promptSelect: vi.fn().mockResolvedValue("api-key"),
115-
promptText: vi.fn().mockResolvedValue(""),
86+
promptText: vi.fn().mockResolvedValue(null),
11687
}));
11788
vi.doMock("../../src/lib/update-check.js", () => ({
118-
getUpdateNoticeLines: vi.fn().mockReturnValue([
119-
" Update available 0.2.0 -> 9.9.9",
120-
" Run npm i -g @alchemy/cli@latest to update",
121-
]),
89+
getUpdateNoticeLines: vi.fn().mockReturnValue([]),
12290
}));
12391
vi.doMock("../../src/lib/config.js", () => ({
12492
load: vi.fn().mockReturnValue({}),
@@ -137,15 +105,14 @@ describe("onboarding flow", () => {
137105
vi.spyOn(console, "log").mockImplementation(() => {});
138106
const { runOnboarding } = await import("../../src/commands/onboarding.js");
139107
const completed = await runOnboarding({} as never);
140-
expect(completed).toBe(true);
141-
expect(save).toHaveBeenCalledWith({
142-
auth_token: "test_token",
143-
auth_token_expires_at: "2099-01-01T00:00:00Z",
144-
});
108+
expect(completed).toBe(false);
145109
});
146110

147111
it("prints the update notice on the onboarding screen when provided", async () => {
148112
const logSpy = vi.spyOn(console, "log").mockImplementation(() => {});
113+
vi.doMock("../../src/lib/terminal-ui.js", () => ({
114+
promptText: vi.fn().mockResolvedValue(""),
115+
}));
149116
vi.doMock("../../src/lib/auth.js", () => ({
150117
performBrowserLogin: vi.fn().mockRejectedValue(new Error("login failed")),
151118
AUTH_PORT: 16424,

0 commit comments

Comments
 (0)