feat(tui): add snapshot test infrastructure + terminal compat matrix (bd-2nfs)
- 6 deterministic snapshot tests at 120x40 with FakeClock frozen at 2026-01-15T12:00:00Z - Buffer-to-plaintext serializer resolving chars, graphemes, and wide-char continuations - Golden file management with UPDATE_SNAPSHOTS=1 env var for regeneration - Snapshot diff output on mismatch for easy debugging - Tests: dashboard, issue list, issue detail, MR list, search results, empty state - TERMINAL_COMPAT.md template for manual QA across iTerm2/tmux/Alacritty/kitty/WezTerm
This commit is contained in:
40
crates/lore-tui/tests/snapshots/dashboard_default.snap
Normal file
40
crates/lore-tui/tests/snapshots/dashboard_default.snap
Normal file
@@ -0,0 +1,40 @@
|
||||
Dashboard
|
||||
Entity Counts Projects Recent Activity
|
||||
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
||||
Issues: 15 open / 42 ● 5m ago infra/platform No recent activity
|
||||
MRs: 7 open / 28 ● 12m ago web/frontend
|
||||
Discussions: 120 ● 8m ago api/backend
|
||||
Notes: 350 (18% system) ● 4m ago tools/scripts
|
||||
Documents: 85
|
||||
Embeddings: 200 Last sync: succeeded
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
NORMAL q:quit esc:back ?:help C-p:palette o:browser P:scope gh:home gi:issues gm:mrs g/:search gt:timeline
|
||||
40
crates/lore-tui/tests/snapshots/empty_state.snap
Normal file
40
crates/lore-tui/tests/snapshots/empty_state.snap
Normal file
@@ -0,0 +1,40 @@
|
||||
Dashboard
|
||||
Entity Counts Projects Recent Activity
|
||||
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
||||
Issues: 0 open / 0 No projects synced No recent activity
|
||||
MRs: 0 open / 0
|
||||
Discussions: 0
|
||||
Notes: 0 (0% system)
|
||||
Documents: 0
|
||||
Embeddings: 0
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
NORMAL q:quit esc:back ?:help C-p:palette o:browser P:scope gh:home gi:issues gm:mrs g/:search gt:timeline
|
||||
40
crates/lore-tui/tests/snapshots/issue_detail.snap
Normal file
40
crates/lore-tui/tests/snapshots/issue_detail.snap
Normal file
@@ -0,0 +1,40 @@
|
||||
Dashboard > Issues > Issue
|
||||
#101 Add retry logic for transient failures
|
||||
opened | alice | backend, reliability | -> bob, carol
|
||||
Milestone: v2.0 | Due: 2026-02-01
|
||||
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
||||
## Problem
|
||||
|
||||
Transient network failures cause cascading errors in the ingestion pipeline. We need exponential backoff with jitter.
|
||||
|
||||
## Approach
|
||||
|
||||
1. Wrap HTTP calls in a retry decorator
|
||||
2. Use exponential backoff (base 1s, max 30s)
|
||||
3. Add jitter to prevent thundering herd
|
||||
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
||||
Discussions (0)
|
||||
Loading discussions...
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
NORMAL q:quit esc:back ?:help C-p:palette o:browser P:scope gh:home gi:issues gm:mrs g/:search gt:timeline
|
||||
40
crates/lore-tui/tests/snapshots/issue_list_default.snap
Normal file
40
crates/lore-tui/tests/snapshots/issue_list_default.snap
Normal file
@@ -0,0 +1,40 @@
|
||||
Dashboard > Issues
|
||||
/ type / to filter
|
||||
IID v Title State Author Labels Project
|
||||
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
||||
#101 Add retry logic for transient failures opened alice backend, reliability infra/platform
|
||||
#55 Dark mode toggle not persisting across sessi opened bob ui, bug web/frontend
|
||||
#203 Migrate user service to async runtime closed carol backend, refactor api/backend
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Showing 3 of 3 issues
|
||||
NORMAL q:quit esc:back ?:help C-p:palette o:browser P:scope gh:home gi:issues gm:mrs g/:search gt:timeline
|
||||
40
crates/lore-tui/tests/snapshots/mr_list_default.snap
Normal file
40
crates/lore-tui/tests/snapshots/mr_list_default.snap
Normal file
@@ -0,0 +1,40 @@
|
||||
Dashboard > Merge Requests
|
||||
/ type / to filter
|
||||
IID v Title State Author Target Labels Project
|
||||
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
||||
!42 Implement exponential backoff for HT opened bob main backend infra/platform
|
||||
!88 [W WIP: Redesign settings page opened alice main ui web/frontend
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Showing 2 of 2 merge requests
|
||||
NORMAL q:quit esc:back ?:help C-p:palette o:browser P:scope gh:home gi:issues gm:mrs g/:search gt:timeline
|
||||
40
crates/lore-tui/tests/snapshots/search_results.snap
Normal file
40
crates/lore-tui/tests/snapshots/search_results.snap
Normal file
@@ -0,0 +1,40 @@
|
||||
Dashboard > Search
|
||||
[ FTS ] > Type to search...
|
||||
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
|
||||
No search indexes found.
|
||||
Run: lore generate-docs && lore embed
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
NORMAL q:quit esc:back ?:help C-p:palette o:browser P:scope gh:home gi:issues gm:mrs g/:search gt:timeline
|
||||
Reference in New Issue
Block a user