@akiojin/gwt 4.6.1 → 4.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/dist/claude.d.ts.map +1 -1
  2. package/dist/claude.js +6 -2
  3. package/dist/claude.js.map +1 -1
  4. package/dist/cli/ui/components/App.d.ts.map +1 -1
  5. package/dist/cli/ui/components/App.js +103 -2
  6. package/dist/cli/ui/components/App.js.map +1 -1
  7. package/dist/cli/ui/components/screens/BranchListScreen.d.ts +1 -0
  8. package/dist/cli/ui/components/screens/BranchListScreen.d.ts.map +1 -1
  9. package/dist/cli/ui/components/screens/BranchListScreen.js +11 -8
  10. package/dist/cli/ui/components/screens/BranchListScreen.js.map +1 -1
  11. package/dist/cli/ui/components/screens/LogDatePickerScreen.d.ts +10 -0
  12. package/dist/cli/ui/components/screens/LogDatePickerScreen.d.ts.map +1 -0
  13. package/dist/cli/ui/components/screens/LogDatePickerScreen.js +44 -0
  14. package/dist/cli/ui/components/screens/LogDatePickerScreen.js.map +1 -0
  15. package/dist/cli/ui/components/screens/LogDetailScreen.d.ts +14 -0
  16. package/dist/cli/ui/components/screens/LogDetailScreen.d.ts.map +1 -0
  17. package/dist/cli/ui/components/screens/LogDetailScreen.js +34 -0
  18. package/dist/cli/ui/components/screens/LogDetailScreen.js.map +1 -0
  19. package/dist/cli/ui/components/screens/LogListScreen.d.ts +19 -0
  20. package/dist/cli/ui/components/screens/LogListScreen.d.ts.map +1 -0
  21. package/dist/cli/ui/components/screens/LogListScreen.js +107 -0
  22. package/dist/cli/ui/components/screens/LogListScreen.js.map +1 -0
  23. package/dist/cli/ui/hooks/useGitData.d.ts.map +1 -1
  24. package/dist/cli/ui/hooks/useGitData.js +10 -3
  25. package/dist/cli/ui/hooks/useGitData.js.map +1 -1
  26. package/dist/cli/ui/types.d.ts +1 -1
  27. package/dist/cli/ui/types.d.ts.map +1 -1
  28. package/dist/cli/ui/utils/branchFormatter.d.ts +5 -0
  29. package/dist/cli/ui/utils/branchFormatter.d.ts.map +1 -1
  30. package/dist/cli/ui/utils/branchFormatter.js +18 -5
  31. package/dist/cli/ui/utils/branchFormatter.js.map +1 -1
  32. package/dist/cli/ui/utils/clipboard.d.ts +7 -0
  33. package/dist/cli/ui/utils/clipboard.d.ts.map +1 -0
  34. package/dist/cli/ui/utils/clipboard.js +21 -0
  35. package/dist/cli/ui/utils/clipboard.js.map +1 -0
  36. package/dist/codex.d.ts.map +1 -1
  37. package/dist/codex.js +0 -1
  38. package/dist/codex.js.map +1 -1
  39. package/dist/gemini.d.ts.map +1 -1
  40. package/dist/gemini.js +6 -3
  41. package/dist/gemini.js.map +1 -1
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +104 -81
  44. package/dist/index.js.map +1 -1
  45. package/dist/logging/formatter.d.ts +15 -0
  46. package/dist/logging/formatter.d.ts.map +1 -0
  47. package/dist/logging/formatter.js +81 -0
  48. package/dist/logging/formatter.js.map +1 -0
  49. package/dist/logging/reader.d.ts +12 -0
  50. package/dist/logging/reader.d.ts.map +1 -0
  51. package/dist/logging/reader.js +63 -0
  52. package/dist/logging/reader.js.map +1 -0
  53. package/dist/worktree.d.ts.map +1 -1
  54. package/dist/worktree.js +57 -0
  55. package/dist/worktree.js.map +1 -1
  56. package/package.json +2 -2
  57. package/src/claude.ts +7 -2
  58. package/src/cli/ui/__tests__/components/App.shortcuts.test.tsx +8 -4
  59. package/src/cli/ui/__tests__/components/App.test.tsx +65 -3
  60. package/src/cli/ui/__tests__/components/common/Select.test.tsx +17 -11
  61. package/src/cli/ui/__tests__/components/screens/BranchListScreen.test.tsx +28 -2
  62. package/src/cli/ui/__tests__/components/screens/LogDetailScreen.test.tsx +57 -0
  63. package/src/cli/ui/__tests__/components/screens/LogListScreen.test.tsx +102 -0
  64. package/src/cli/ui/__tests__/hooks/useGitData.test.ts +197 -0
  65. package/src/cli/ui/__tests__/integration/edgeCases.test.tsx +84 -13
  66. package/src/cli/ui/__tests__/integration/navigation.test.tsx +57 -37
  67. package/src/cli/ui/__tests__/utils/branchFormatter.test.ts +105 -0
  68. package/src/cli/ui/__tests__/utils/clipboard.test.ts +65 -0
  69. package/src/cli/ui/components/App.tsx +178 -1
  70. package/src/cli/ui/components/screens/BranchListScreen.tsx +11 -6
  71. package/src/cli/ui/components/screens/LogDatePickerScreen.tsx +83 -0
  72. package/src/cli/ui/components/screens/LogDetailScreen.tsx +67 -0
  73. package/src/cli/ui/components/screens/LogListScreen.tsx +192 -0
  74. package/src/cli/ui/hooks/useGitData.ts +12 -3
  75. package/src/cli/ui/types.ts +3 -0
  76. package/src/cli/ui/utils/branchFormatter.ts +19 -5
  77. package/src/cli/ui/utils/clipboard.ts +31 -0
  78. package/src/codex.ts +0 -1
  79. package/src/gemini.ts +7 -3
  80. package/src/index.ts +147 -123
  81. package/src/logging/formatter.ts +106 -0
  82. package/src/logging/reader.ts +76 -0
  83. package/src/worktree.ts +77 -0
package/dist/worktree.js CHANGED
@@ -200,6 +200,55 @@ export async function generateAlternativeWorktreePath(basePath) {
200
200
  }
201
201
  return alternativePath;
202
202
  }
203
+ async function assessStaleWorktreeDirectory(targetPath) {
204
+ const fsSync = await import("node:fs");
205
+ if (!fsSync.existsSync(targetPath)) {
206
+ return { status: "absent" };
207
+ }
208
+ const registered = await checkWorktreePathConflict(targetPath);
209
+ if (registered) {
210
+ return { status: "registered" };
211
+ }
212
+ const gitMetaPath = path.join(targetPath, ".git");
213
+ if (!fsSync.existsSync(gitMetaPath)) {
214
+ return { status: "stale", reason: "missing .git" };
215
+ }
216
+ let gitMetaStat;
217
+ try {
218
+ gitMetaStat = await fs.lstat(gitMetaPath);
219
+ }
220
+ catch {
221
+ return { status: "unknown", reason: "unable to stat .git" };
222
+ }
223
+ if (gitMetaStat.isDirectory()) {
224
+ return { status: "unknown", reason: ".git is a directory" };
225
+ }
226
+ if (!gitMetaStat.isFile()) {
227
+ return { status: "unknown", reason: ".git is not a file" };
228
+ }
229
+ let gitMetaContents = "";
230
+ try {
231
+ gitMetaContents = await fs.readFile(gitMetaPath, "utf8");
232
+ }
233
+ catch {
234
+ return { status: "unknown", reason: "unable to read .git" };
235
+ }
236
+ const gitdirMatch = gitMetaContents.match(/^\s*gitdir:\s*(.+)\s*$/m);
237
+ if (!gitdirMatch) {
238
+ return { status: "unknown", reason: "missing gitdir entry" };
239
+ }
240
+ const rawGitdir = gitdirMatch[1]?.trim();
241
+ if (!rawGitdir) {
242
+ return { status: "unknown", reason: "empty gitdir entry" };
243
+ }
244
+ const gitdirPath = path.isAbsolute(rawGitdir)
245
+ ? rawGitdir
246
+ : path.resolve(targetPath, rawGitdir);
247
+ if (!fsSync.existsSync(gitdirPath)) {
248
+ return { status: "stale", reason: "missing gitdir path" };
249
+ }
250
+ return { status: "unknown", reason: "gitdir exists" };
251
+ }
203
252
  /**
204
253
  * 新しいworktreeを作成
205
254
  * @param {WorktreeConfig} config - worktreeの設定
@@ -210,6 +259,14 @@ export async function createWorktree(config) {
210
259
  throw new WorktreeError(`Branch "${config.branchName}" is protected and cannot be used to create a worktree`);
211
260
  }
212
261
  try {
262
+ const staleness = await assessStaleWorktreeDirectory(config.worktreePath);
263
+ if (staleness.status === "stale") {
264
+ await fs.rm(config.worktreePath, { recursive: true, force: true });
265
+ }
266
+ else if (staleness.status === "unknown") {
267
+ const reason = staleness.reason ? ` (${staleness.reason})` : "";
268
+ throw new WorktreeError(`Worktree path already exists but is not registered as a git worktree, and stale status could not be confirmed${reason}. Remove the directory manually and retry: ${config.worktreePath}`);
269
+ }
213
270
  const worktreeParentDir = path.dirname(config.worktreePath);
214
271
  try {
215
272
  await fs.mkdir(worktreeParentDir, { recursive: true });
@@ -1 +1 @@
1
- {"version":3,"file":"worktree.js","sourceRoot":"","sources":["../src/worktree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worktree.js","sourceRoot":"","sources":["../src/worktree.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@akiojin/gwt",
3
- "version": "4.6.1",
3
+ "version": "4.8.0",
4
4
  "description": "Interactive Git worktree manager for Claude Code with graphical branch selection",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -55,7 +55,7 @@
55
55
  "access": "public"
56
56
  },
57
57
  "dependencies": {
58
- "@fastify/static": "^8.0.3",
58
+ "@fastify/static": "^9.0.0",
59
59
  "@fastify/websocket": "^11.2.0",
60
60
  "@radix-ui/react-dialog": "^1.1.15",
61
61
  "@radix-ui/react-label": "^2.1.8",
package/src/claude.ts CHANGED
@@ -306,7 +306,12 @@ export async function launchClaudeCode(
306
306
  ),
307
307
  );
308
308
  console.log("");
309
- await new Promise((resolve) => setTimeout(resolve, 2000));
309
+ const shouldSkipDelay =
310
+ typeof process !== "undefined" &&
311
+ (process.env?.NODE_ENV === "test" || Boolean(process.env?.VITEST));
312
+ if (!shouldSkipDelay) {
313
+ await new Promise((resolve) => setTimeout(resolve, 2000));
314
+ }
310
315
  if (useNpx && npxLookup?.path) {
311
316
  await execInteractive(
312
317
  npxLookup.path,
@@ -429,7 +434,7 @@ export async function launchClaudeCode(
429
434
  */
430
435
  export async function isClaudeCodeAvailable(): Promise<boolean> {
431
436
  try {
432
- await execa("bunx", [CLAUDE_CLI_PACKAGE, "--version"], { shell: true });
437
+ await execa("bunx", [CLAUDE_CLI_PACKAGE, "--version"]);
433
438
  return true;
434
439
  } catch (error: unknown) {
435
440
  const err = error as NodeJS.ErrnoException;
@@ -176,7 +176,7 @@ describe("App shortcuts integration", () => {
176
176
  getRepositoryRootMock.mockResolvedValue("/repo");
177
177
  deleteBranchMock.mockResolvedValue(undefined);
178
178
  App = (await import("../../components/App.js")).App;
179
- });
179
+ }, 30000);
180
180
 
181
181
  afterEach(() => {
182
182
  useGitDataMock.mockReset();
@@ -238,7 +238,7 @@ describe("App shortcuts integration", () => {
238
238
 
239
239
  const latestProps = branchListProps.at(-1);
240
240
  expect(latestProps?.cleanupUI?.footerMessage?.text).toBe(
241
- "クリーンアップ対象が選択されていません",
241
+ "No cleanup targets selected.",
242
242
  );
243
243
  expect(removeWorktreeMock).not.toHaveBeenCalled();
244
244
  expect(deleteBranchMock).not.toHaveBeenCalled();
@@ -380,9 +380,13 @@ describe("App shortcuts integration", () => {
380
380
  expect(latestProps?.cleanupUI?.footerMessage?.text).toBeTruthy();
381
381
  expect(latestProps?.cleanupUI?.indicators).toMatchObject({
382
382
  "feature/add-new-feature": expect.objectContaining({
383
- icon: expect.stringMatching(/⠋|⠙|⠹|⠸|⠼|⠴|⠦|⠧/),
383
+ isSpinning: true,
384
+ color: "cyan",
385
+ }),
386
+ "hotfix/urgent-fix": expect.objectContaining({
387
+ icon: "⏳",
388
+ color: "yellow",
384
389
  }),
385
- "hotfix/urgent-fix": expect.objectContaining({ icon: "⏳" }),
386
390
  });
387
391
 
388
392
  resolveRemoveWorktree?.();
@@ -7,16 +7,55 @@ import React from "react";
7
7
  import { Window } from "happy-dom";
8
8
  import type { BranchInfo, BranchItem } from "../../types.js";
9
9
  import type { BranchListScreenProps } from "../../components/screens/BranchListScreen.js";
10
+ import { App } from "../../components/App.js";
10
11
 
11
12
  const mockRefresh = vi.fn();
12
- let App: typeof import("../../components/App.js").App;
13
+ const exitMock = vi.fn();
13
14
  const branchListProps: BranchListScreenProps[] = [];
14
15
  const useGitDataMock = vi.fn();
16
+ const useProfilesMock = vi.fn();
17
+ const useToolStatusMock = vi.fn();
18
+
19
+ vi.mock("ink", async () => {
20
+ const ReactImport = await import("react");
21
+ const Box = ({ children }: { children?: ReactImport.ReactNode }) =>
22
+ ReactImport.createElement("div", null, children);
23
+ const Text = ({ children }: { children?: ReactImport.ReactNode }) =>
24
+ ReactImport.createElement("span", null, children);
25
+ return {
26
+ Box,
27
+ Text,
28
+ useApp: () => ({ exit: exitMock }),
29
+ useInput: () => {},
30
+ useStdout: () => ({ stdout: process.stdout, write: vi.fn() }),
31
+ };
32
+ });
15
33
 
16
34
  vi.mock("../../hooks/useGitData.js", () => ({
17
35
  useGitData: (...args: unknown[]) => useGitDataMock(...args),
18
36
  }));
19
37
 
38
+ vi.mock("../../hooks/useProfiles.js", () => ({
39
+ useProfiles: (...args: unknown[]) => useProfilesMock(...args),
40
+ }));
41
+
42
+ vi.mock("../../hooks/useToolStatus.js", () => ({
43
+ useToolStatus: (...args: unknown[]) => useToolStatusMock(...args),
44
+ }));
45
+
46
+ vi.mock("../../../utils.js", () => ({
47
+ getPackageVersion: vi.fn(async () => "0.0.0-test"),
48
+ }));
49
+
50
+ vi.mock("../../../git.js", () => ({
51
+ getRepositoryRoot: vi.fn(async () => "/repo"),
52
+ deleteBranch: vi.fn(async () => undefined),
53
+ }));
54
+
55
+ vi.mock("../../../config/index.js", () => ({
56
+ loadSession: vi.fn(async () => null),
57
+ }));
58
+
20
59
  vi.mock("../../components/screens/BranchListScreen.js", () => {
21
60
  return {
22
61
  BranchListScreen: (props: BranchListScreenProps) => {
@@ -47,7 +86,7 @@ vi.mock("../../components/screens/BranchListScreen.js", () => {
47
86
  });
48
87
 
49
88
  describe("App", () => {
50
- beforeEach(async () => {
89
+ beforeEach(() => {
51
90
  // Setup happy-dom
52
91
  const window = new Window();
53
92
  globalThis.window = window as unknown as typeof globalThis.window;
@@ -56,8 +95,31 @@ describe("App", () => {
56
95
 
57
96
  vi.clearAllMocks();
58
97
  useGitDataMock.mockReset();
98
+ useProfilesMock.mockReset();
99
+ useToolStatusMock.mockReset();
59
100
  branchListProps.length = 0;
60
- App = (await import("../../components/App.js")).App;
101
+
102
+ useProfilesMock.mockReturnValue({
103
+ profiles: null,
104
+ loading: false,
105
+ error: null,
106
+ activeProfileName: null,
107
+ activeProfile: null,
108
+ refresh: vi.fn(),
109
+ setActiveProfile: vi.fn(),
110
+ createProfile: vi.fn(),
111
+ updateProfile: vi.fn(),
112
+ deleteProfile: vi.fn(),
113
+ updateEnvVar: vi.fn(),
114
+ deleteEnvVar: vi.fn(),
115
+ });
116
+
117
+ useToolStatusMock.mockReturnValue({
118
+ tools: [],
119
+ loading: false,
120
+ error: null,
121
+ refresh: vi.fn(),
122
+ });
61
123
  });
62
124
 
63
125
  const mockBranches: BranchInfo[] = [
@@ -6,6 +6,7 @@ import { describe, it, expect, vi } from "vitest";
6
6
  import { render } from "ink-testing-library";
7
7
  import React from "react";
8
8
  import { Select } from "../../../components/common/Select.js";
9
+ import { ESCAPE_SEQUENCE_TIMEOUT_MS } from "../../../hooks/useAppInput.js";
9
10
 
10
11
  interface TestItem {
11
12
  label: string;
@@ -285,43 +286,48 @@ describe("Select", () => {
285
286
  });
286
287
  });
287
288
 
288
- describe('Space/Escape handlers', () => {
289
- it('should call onSpace with the currently highlighted item', async () => {
289
+ describe("Space/Escape handlers", () => {
290
+ it("should call onSpace with the currently highlighted item", async () => {
290
291
  const onSelect = vi.fn();
291
292
  const onSpace = vi.fn();
292
293
  const { stdin } = render(
293
- <Select items={mockItems} onSelect={onSelect} onSpace={onSpace} />
294
+ <Select items={mockItems} onSelect={onSelect} onSpace={onSpace} />,
294
295
  );
295
296
 
296
- stdin.write(' ');
297
+ stdin.write(" ");
297
298
  await delay(10);
298
299
 
299
300
  expect(onSpace).toHaveBeenCalledTimes(1);
300
301
  expect(onSpace).toHaveBeenCalledWith(mockItems[0]);
301
302
  });
302
303
 
303
- it('should not trigger onSpace when disabled', async () => {
304
+ it("should not trigger onSpace when disabled", async () => {
304
305
  const onSelect = vi.fn();
305
306
  const onSpace = vi.fn();
306
307
  const { stdin } = render(
307
- <Select items={mockItems} onSelect={onSelect} onSpace={onSpace} disabled />
308
+ <Select
309
+ items={mockItems}
310
+ onSelect={onSelect}
311
+ onSpace={onSpace}
312
+ disabled
313
+ />,
308
314
  );
309
315
 
310
- stdin.write(' ');
316
+ stdin.write(" ");
311
317
  await delay(10);
312
318
 
313
319
  expect(onSpace).not.toHaveBeenCalled();
314
320
  });
315
321
 
316
- it('should call onEscape when escape key is pressed', async () => {
322
+ it("should call onEscape when escape key is pressed", async () => {
317
323
  const onSelect = vi.fn();
318
324
  const onEscape = vi.fn();
319
325
  const { stdin } = render(
320
- <Select items={mockItems} onSelect={onSelect} onEscape={onEscape} />
326
+ <Select items={mockItems} onSelect={onSelect} onEscape={onEscape} />,
321
327
  );
322
328
 
323
- stdin.write('\u001B');
324
- await delay(30);
329
+ stdin.write("\u001B");
330
+ await delay(ESCAPE_SEQUENCE_TIMEOUT_MS + 20);
325
331
 
326
332
  expect(onEscape).toHaveBeenCalledTimes(1);
327
333
  });
@@ -210,7 +210,7 @@ describe("BranchListScreen", () => {
210
210
  />,
211
211
  );
212
212
 
213
- const text = container.textContent ?? "";
213
+ const text = stripAnsi(container.textContent ?? "");
214
214
  expect(text).toMatch(/\[ \]\s(🟢|🔴|⚪)\s(🛡|⚠)/); // state cluster with spacing
215
215
  });
216
216
 
@@ -724,10 +724,11 @@ describe("BranchListScreen", () => {
724
724
  expect(container.textContent).toContain("feature/test");
725
725
  });
726
726
 
727
- it("should disable other key bindings (c, r) while typing in filter", () => {
727
+ it("should disable other key bindings (c, r, l) while typing in filter", () => {
728
728
  const onSelect = vi.fn();
729
729
  const onCleanupCommand = vi.fn();
730
730
  const onRefresh = vi.fn();
731
+ const onOpenLogs = vi.fn();
731
732
 
732
733
  const inkApp = inkRender(
733
734
  <BranchListScreen
@@ -736,6 +737,7 @@ describe("BranchListScreen", () => {
736
737
  onSelect={onSelect}
737
738
  onCleanupCommand={onCleanupCommand}
738
739
  onRefresh={onRefresh}
740
+ onOpenLogs={onOpenLogs}
739
741
  />,
740
742
  );
741
743
 
@@ -746,10 +748,34 @@ describe("BranchListScreen", () => {
746
748
  act(() => {
747
749
  inkApp.stdin.write("c");
748
750
  inkApp.stdin.write("r");
751
+ inkApp.stdin.write("l");
749
752
  });
750
753
 
751
754
  expect(onCleanupCommand).not.toHaveBeenCalled();
752
755
  expect(onRefresh).not.toHaveBeenCalled();
756
+ expect(onOpenLogs).not.toHaveBeenCalled();
757
+
758
+ inkApp.unmount();
759
+ });
760
+
761
+ it("should open logs on l key", () => {
762
+ const onSelect = vi.fn();
763
+ const onOpenLogs = vi.fn();
764
+
765
+ const inkApp = inkRender(
766
+ <BranchListScreen
767
+ branches={mockBranches}
768
+ stats={mockStats}
769
+ onSelect={onSelect}
770
+ onOpenLogs={onOpenLogs}
771
+ />,
772
+ );
773
+
774
+ act(() => {
775
+ inkApp.stdin.write("l");
776
+ });
777
+
778
+ expect(onOpenLogs).toHaveBeenCalled();
753
779
 
754
780
  inkApp.unmount();
755
781
  });
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @vitest-environment happy-dom
3
+ */
4
+ import { describe, it, expect, vi } from "vitest";
5
+ import { act } from "@testing-library/react";
6
+ import { render as inkRender } from "ink-testing-library";
7
+ import React from "react";
8
+ import { LogDetailScreen } from "../../../components/screens/LogDetailScreen.js";
9
+ import type { FormattedLogEntry } from "../../../../../logging/formatter.js";
10
+
11
+ const entry: FormattedLogEntry = {
12
+ id: "entry-1",
13
+ raw: {
14
+ time: "2025-12-25T10:00:00.000Z",
15
+ level: 30,
16
+ category: "cli",
17
+ msg: "hello",
18
+ },
19
+ timestamp: 1_767_015_200_000,
20
+ timeLabel: "10:00:00",
21
+ levelLabel: "INFO",
22
+ category: "cli",
23
+ message: "hello",
24
+ summary: "[10:00:00] [INFO] [cli] hello",
25
+ json: '{\n "msg": "hello"\n}',
26
+ };
27
+
28
+ describe("LogDetailScreen", () => {
29
+ it("renders formatted JSON and handles shortcuts", () => {
30
+ const onBack = vi.fn();
31
+ const onCopy = vi.fn();
32
+
33
+ const { stdin, lastFrame } = inkRender(
34
+ <LogDetailScreen entry={entry} onBack={onBack} onCopy={onCopy} />,
35
+ );
36
+
37
+ expect(lastFrame()).toContain('"msg": "hello"');
38
+
39
+ act(() => {
40
+ stdin.write("c");
41
+ });
42
+ expect(onCopy).toHaveBeenCalledWith(entry);
43
+
44
+ act(() => {
45
+ stdin.write("q");
46
+ });
47
+ expect(onBack).toHaveBeenCalled();
48
+ });
49
+
50
+ it("shows fallback when entry is missing", () => {
51
+ const { lastFrame } = inkRender(
52
+ <LogDetailScreen entry={null} onBack={vi.fn()} onCopy={vi.fn()} />,
53
+ );
54
+
55
+ expect(lastFrame()).toContain("No logs available.");
56
+ });
57
+ });
@@ -0,0 +1,102 @@
1
+ /**
2
+ * @vitest-environment happy-dom
3
+ */
4
+ import { describe, it, expect, vi } from "vitest";
5
+ import { act } from "@testing-library/react";
6
+ import { render as inkRender } from "ink-testing-library";
7
+ import React from "react";
8
+ import { LogListScreen } from "../../../components/screens/LogListScreen.js";
9
+ import type { FormattedLogEntry } from "../../../../../logging/formatter.js";
10
+
11
+ const buildEntry = (
12
+ overrides: Partial<FormattedLogEntry>,
13
+ ): FormattedLogEntry => ({
14
+ id: "entry-1",
15
+ raw: {
16
+ time: "2025-12-25T10:00:00.000Z",
17
+ level: 30,
18
+ category: "cli",
19
+ msg: "hello",
20
+ },
21
+ timestamp: 1_767_015_200_000,
22
+ timeLabel: "10:00:00",
23
+ levelLabel: "INFO",
24
+ category: "cli",
25
+ message: "hello",
26
+ summary: "[10:00:00] [INFO] [cli] hello",
27
+ json: '{\n "msg": "hello"\n}',
28
+ ...overrides,
29
+ });
30
+
31
+ describe("LogListScreen", () => {
32
+ it("renders log entries and handles shortcuts", () => {
33
+ const entries: FormattedLogEntry[] = [
34
+ buildEntry({ id: "entry-1" }),
35
+ buildEntry({
36
+ id: "entry-2",
37
+ summary: "[10:01:00] [WARN] [server] warn",
38
+ levelLabel: "WARN",
39
+ category: "server",
40
+ message: "warn",
41
+ }),
42
+ ];
43
+
44
+ const onSelect = vi.fn();
45
+ const onBack = vi.fn();
46
+ const onCopy = vi.fn();
47
+ const onPickDate = vi.fn();
48
+
49
+ const { stdin, lastFrame } = inkRender(
50
+ <LogListScreen
51
+ entries={entries}
52
+ loading={false}
53
+ error={null}
54
+ onBack={onBack}
55
+ onSelect={onSelect}
56
+ onCopy={onCopy}
57
+ onPickDate={onPickDate}
58
+ selectedDate="2025-12-25"
59
+ />,
60
+ );
61
+
62
+ const frame = lastFrame();
63
+ expect(frame).toContain("[10:00:00] [INFO] [cli] hello");
64
+ expect(frame).toContain("[10:01:00] [WARN] [server] warn");
65
+
66
+ act(() => {
67
+ stdin.write("\r");
68
+ });
69
+ expect(onSelect).toHaveBeenCalledWith(entries[0]);
70
+
71
+ act(() => {
72
+ stdin.write("c");
73
+ });
74
+ expect(onCopy).toHaveBeenCalledWith(entries[0]);
75
+
76
+ act(() => {
77
+ stdin.write("d");
78
+ });
79
+ expect(onPickDate).toHaveBeenCalled();
80
+
81
+ act(() => {
82
+ stdin.write("q");
83
+ });
84
+ expect(onBack).toHaveBeenCalled();
85
+ });
86
+
87
+ it("shows empty message when no logs", () => {
88
+ const { lastFrame } = inkRender(
89
+ <LogListScreen
90
+ entries={[]}
91
+ loading={false}
92
+ error={null}
93
+ onBack={vi.fn()}
94
+ onSelect={vi.fn()}
95
+ onCopy={vi.fn()}
96
+ selectedDate="2025-12-25"
97
+ />,
98
+ );
99
+
100
+ expect(lastFrame()).toContain("No logs available.");
101
+ });
102
+ });