Skip to content

Commit 752fca6

Browse files
committed
docs: manual test checklist for push, pull, list, edit, log, restore, sync, diff, delete
1 parent 6946230 commit 752fca6

File tree

1 file changed

+182
-0
lines changed

1 file changed

+182
-0
lines changed

docs/manual-test-checklist.md

Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
# Manual Test Checklist
2+
3+
Tests that require a real system, real auth, interactive TUI, or a browser.
4+
Unit/integration tests cover error paths and logic; this covers the full UX.
5+
6+
Binary: `/Users/fullstackjam/workspace/openbotdotdev/openboot/openboot`
7+
Rebuild: `make build` from the repo root.
8+
9+
---
10+
11+
## Prerequisites
12+
13+
- [ ] Logged in: `./openboot login`
14+
- [ ] At least one config on openboot.dev
15+
- [ ] Sync source configured (run `./openboot install <config>` or `./openboot push` once)
16+
17+
---
18+
19+
## openboot push
20+
21+
### Happy path — with sync source (silent update)
22+
- [ ] Run `./openboot push`
23+
- [ ] No prompts appear (name/desc/visibility not asked)
24+
- [ ] Output shows `✓ Config uploaded successfully!` with the config URL
25+
- [ ] Run `./openboot log` — new revision appears at the top
26+
27+
### Happy path — with message
28+
- [ ] Run `./openboot push -m "manual test"`
29+
- [ ] Run `./openboot log` — newest revision shows `manual test` as message
30+
31+
### Interactive picker — no sync source
32+
- [ ] Delete `~/.openboot/sync_source.json`
33+
- [ ] Run `./openboot push`
34+
- [ ] Picker appears listing existing configs + "Create a new config"
35+
- [ ] Select an existing config → uploads silently, no name/desc prompts
36+
- [ ] Repeat, choose "Create a new config" → name / description / visibility prompts appear
37+
38+
### --slug flag skips picker
39+
- [ ] Run `./openboot push --slug <slug>`
40+
- [ ] No picker, no prompts — silent update
41+
42+
---
43+
44+
## openboot pull
45+
46+
### Happy path
47+
- [ ] Run `./openboot pull`
48+
- [ ] Diff is shown, changes applied (or "already up to date")
49+
50+
### Dry run
51+
- [ ] Run `./openboot pull --dry-run`
52+
- [ ] Shows diff, nothing installed/removed
53+
54+
---
55+
56+
## openboot list
57+
58+
### Shows configs
59+
- [ ] Run `./openboot list`
60+
- [ ] All configs appear with slug and name
61+
- [ ] Currently linked config is marked with ``
62+
- [ ] Public configs show `[public]`, private show `[private]`, unlisted show nothing
63+
- [ ] Footer shows install / edit / delete hints
64+
65+
### Linked config warning
66+
- [ ] Edit `~/.openboot/sync_source.json`, change slug to `nonexistent-slug`
67+
- [ ] Run `./openboot list`
68+
- [ ] Warning appears: "linked to 'nonexistent-slug' but that config no longer exists"
69+
- [ ] Restore the original slug in sync_source.json
70+
71+
---
72+
73+
## openboot edit
74+
75+
### Interactive picker
76+
- [ ] Run `./openboot edit`
77+
- [ ] Picker lists all your configs
78+
- [ ] Select one → browser opens `https://openboot.dev/dashboard/edit/<slug>`
79+
- [ ] Edit page loads with the correct config
80+
81+
### --slug skips picker
82+
- [ ] Run `./openboot edit --slug <slug>`
83+
- [ ] No picker — browser opens directly
84+
85+
---
86+
87+
## openboot log
88+
89+
### Shows revision history
90+
- [ ] Run `./openboot push -m "rev A"`, then `./openboot push -m "rev B"`
91+
- [ ] Run `./openboot log`
92+
- [ ] Both revisions appear, newest first
93+
- [ ] IDs, timestamps, package counts, and messages all shown
94+
- [ ] Footer shows `openboot restore <revision-id>` hint
95+
96+
### Empty history
97+
- [ ] Create a brand new config with `./openboot push` (choose "Create a new config")
98+
- [ ] Run `./openboot log --slug <new-slug>`
99+
- [ ] Output: "No revisions yet. Push a config update to create one."
100+
101+
### --slug flag
102+
- [ ] Run `./openboot log --slug <slug>`
103+
- [ ] Shows history for that specific config, not the linked one
104+
105+
---
106+
107+
## openboot restore
108+
109+
### Dry run — preview only
110+
- [ ] Run `./openboot log` to get a revision ID
111+
- [ ] Run `./openboot restore <rev-id> --dry-run`
112+
- [ ] Diff is shown (packages that would change)
113+
- [ ] Nothing is installed or removed
114+
- [ ] Restore endpoint is NOT called (run `./openboot log` — no new "before restore" revision)
115+
116+
### Actual restore
117+
- [ ] Note current package count from `./openboot log`
118+
- [ ] Push a config with a different package list (e.g. add a formula)
119+
- [ ] Run `./openboot log` — confirm new revision at top
120+
- [ ] Run `./openboot restore <previous-rev-id> --yes`
121+
- [ ] Diff shown, changes applied
122+
- [ ] Run `./openboot log` — new "before restore to …" revision saved at top
123+
- [ ] Confirm local system matches the restored revision
124+
125+
### Already up to date
126+
- [ ] Run `./openboot restore <rev-id>` where the revision matches your current system
127+
- [ ] Output: "Your system already matches this revision — nothing to do."
128+
129+
### Revision not found
130+
- [ ] Run `./openboot restore rev_doesnotexist --slug <slug>`
131+
- [ ] Error: "revision not found" (or similar)
132+
133+
### --slug flag
134+
- [ ] Run `./openboot restore <rev-id> --slug <other-slug>`
135+
- [ ] Restores the correct config, not the linked one
136+
137+
---
138+
139+
## openboot sync
140+
141+
### Shows diff and applies selectively
142+
- [ ] Make a change to the remote config on openboot.dev (add a package)
143+
- [ ] Run `./openboot sync`
144+
- [ ] Diff shown, interactive checkboxes to select which changes to apply
145+
- [ ] Apply selection — package installed
146+
147+
### --yes applies all
148+
- [ ] Run `./openboot sync --yes`
149+
- [ ] No prompts, all changes applied
150+
151+
---
152+
153+
## openboot diff
154+
155+
- [ ] Run `./openboot diff`
156+
- [ ] Shows packages missing locally vs extra locally compared to remote config
157+
- [ ] No changes applied
158+
159+
---
160+
161+
## openboot delete
162+
163+
### With confirmation
164+
- [ ] Create a throwaway config: `./openboot push --slug test-delete-me`
165+
- [ ] Run `./openboot delete test-delete-me`
166+
- [ ] Confirmation prompt appears — type `n` to cancel
167+
- [ ] Run `./openboot list` — config still exists
168+
- [ ] Run `./openboot delete test-delete-me` again, confirm `y`
169+
- [ ] Config removed from `./openboot list`
170+
171+
### --force skips prompt
172+
- [ ] Create another throwaway config
173+
- [ ] Run `./openboot delete <slug> --force`
174+
- [ ] No prompt — deleted immediately
175+
176+
---
177+
178+
## Revision cap (10 max)
179+
180+
- [ ] Run `./openboot push` 11 times in a row
181+
- [ ] Run `./openboot log`
182+
- [ ] Only 10 revisions shown (oldest pruned automatically)

0 commit comments

Comments
 (0)