Skip to content

Commit b53bf6a

Browse files
committed
Close smoke coverage gap from .surface alias expansion (#366)
The .surface regeneration with alias support added 332 CMD entries for aliases that the smoke suite didn't account for. Add smoke_aliases.bats with group-level OOS markers that propagate to all leaf descendants, and add a chat show test to smoke_campfire.bats.
1 parent dff1254 commit b53bf6a

2 files changed

Lines changed: 259 additions & 0 deletions

File tree

e2e/smoke/smoke_aliases.bats

Lines changed: 252 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,252 @@
1+
#!/usr/bin/env bats
2+
# smoke_aliases.bats - Coverage for command aliases and sub-aliases.
3+
#
4+
# The .surface file registers every alias as its own CMD entry. This file
5+
# marks them out of scope since the canonical forms are tested elsewhere.
6+
# Group-level OOS tests propagate to all leaf descendants automatically.
7+
8+
load smoke_helper
9+
10+
# ---------------------------------------------------------------------------
11+
# Top-level command aliases (singular, shortened, or alternate names)
12+
# ---------------------------------------------------------------------------
13+
14+
@test "boosts is out of scope" {
15+
mark_out_of_scope "Alias for boost — tested via canonical form"
16+
}
17+
18+
@test "campfire is out of scope" {
19+
mark_out_of_scope "Alias for chat — tested via canonical form"
20+
}
21+
22+
@test "checkin is out of scope" {
23+
mark_out_of_scope "Alias for checkins — tested via canonical form"
24+
}
25+
26+
@test "cmds is out of scope" {
27+
mark_out_of_scope "Alias for commands — tested via canonical form"
28+
}
29+
30+
@test "msgs is out of scope" {
31+
mark_out_of_scope "Alias for messages — tested via canonical form"
32+
}
33+
34+
@test "project is out of scope" {
35+
mark_out_of_scope "Alias for projects — tested via canonical form"
36+
}
37+
38+
@test "todolist is out of scope" {
39+
mark_out_of_scope "Alias for todolists — tested via canonical form"
40+
}
41+
42+
@test "todolistgroup is out of scope" {
43+
mark_out_of_scope "Alias for todolistgroups — tested via canonical form"
44+
}
45+
46+
@test "tlgroup is out of scope" {
47+
mark_out_of_scope "Alias for todolistgroups — tested via canonical form"
48+
}
49+
50+
@test "tlgroups is out of scope" {
51+
mark_out_of_scope "Alias for todolistgroups — tested via canonical form"
52+
}
53+
54+
@test "webhook is out of scope" {
55+
mark_out_of_scope "Alias for webhooks — tested via canonical form"
56+
}
57+
58+
# ---------------------------------------------------------------------------
59+
# File-management root aliases (all share implementation with files/vaults)
60+
# ---------------------------------------------------------------------------
61+
62+
@test "documents is out of scope" {
63+
mark_out_of_scope "Alias for files — tested via canonical form"
64+
}
65+
66+
@test "file is out of scope" {
67+
mark_out_of_scope "Alias for files — tested via canonical form"
68+
}
69+
70+
@test "folders is out of scope" {
71+
mark_out_of_scope "Alias for files — tested via canonical form"
72+
}
73+
74+
@test "vault is out of scope" {
75+
mark_out_of_scope "Alias for vaults — tested via canonical form"
76+
}
77+
78+
# ---------------------------------------------------------------------------
79+
# File-management sub-aliases within canonical groups (docs, files, vaults)
80+
#
81+
# Each canonical group has sub-aliases like doc/document/folder/upload/vault
82+
# that resolve to the canonical sub-group (documents/folders/uploads/vaults).
83+
# Group-level OOS propagates to their create/list leaves.
84+
# ---------------------------------------------------------------------------
85+
86+
# --- docs sub-aliases ---
87+
88+
@test "docs doc is out of scope" {
89+
mark_out_of_scope "Sub-alias for docs documents — tested via canonical form"
90+
}
91+
92+
@test "docs document is out of scope" {
93+
mark_out_of_scope "Sub-alias for docs documents — tested via canonical form"
94+
}
95+
96+
@test "docs folder is out of scope" {
97+
mark_out_of_scope "Sub-alias for docs folders — tested via canonical form"
98+
}
99+
100+
@test "docs upload is out of scope" {
101+
mark_out_of_scope "Sub-alias for docs uploads — tested via canonical form"
102+
}
103+
104+
@test "docs vault is out of scope" {
105+
mark_out_of_scope "Sub-alias for docs vaults — tested via canonical form"
106+
}
107+
108+
@test "docs vaults is out of scope" {
109+
mark_out_of_scope "Sub-alias for docs vaults — tested via canonical form"
110+
}
111+
112+
# --- files sub-aliases ---
113+
114+
@test "files doc is out of scope" {
115+
mark_out_of_scope "Sub-alias for files documents — tested via canonical form"
116+
}
117+
118+
@test "files document is out of scope" {
119+
mark_out_of_scope "Sub-alias for files documents — tested via canonical form"
120+
}
121+
122+
@test "files folder is out of scope" {
123+
mark_out_of_scope "Sub-alias for files folders — tested via canonical form"
124+
}
125+
126+
@test "files upload is out of scope" {
127+
mark_out_of_scope "Sub-alias for files uploads — tested via canonical form"
128+
}
129+
130+
@test "files vault is out of scope" {
131+
mark_out_of_scope "Sub-alias for files vaults — tested via canonical form"
132+
}
133+
134+
@test "files vaults is out of scope" {
135+
mark_out_of_scope "Sub-alias for files vaults — tested via canonical form"
136+
}
137+
138+
# --- vaults sub-aliases ---
139+
140+
@test "vaults doc is out of scope" {
141+
mark_out_of_scope "Sub-alias for vaults documents — tested via canonical form"
142+
}
143+
144+
@test "vaults document is out of scope" {
145+
mark_out_of_scope "Sub-alias for vaults documents — tested via canonical form"
146+
}
147+
148+
@test "vaults folder is out of scope" {
149+
mark_out_of_scope "Sub-alias for vaults folders — tested via canonical form"
150+
}
151+
152+
@test "vaults upload is out of scope" {
153+
mark_out_of_scope "Sub-alias for vaults uploads — tested via canonical form"
154+
}
155+
156+
@test "vaults vault is out of scope" {
157+
mark_out_of_scope "Sub-alias for vaults vaults — tested via canonical form"
158+
}
159+
160+
@test "vaults vaults is out of scope" {
161+
mark_out_of_scope "Sub-alias for vaults vaults — tested via canonical form"
162+
}
163+
164+
# ---------------------------------------------------------------------------
165+
# Leaf command aliases (individual subcommands with alternate names)
166+
# ---------------------------------------------------------------------------
167+
168+
# --- cards ---
169+
170+
@test "card mv is out of scope" {
171+
mark_out_of_scope "Alias for card move — tested via canonical form"
172+
}
173+
174+
@test "cards mv is out of scope" {
175+
mark_out_of_scope "Alias for cards move — tested via canonical form"
176+
}
177+
178+
# --- recordings ---
179+
180+
@test "recordings active is out of scope" {
181+
mark_out_of_scope "Alias for recordings restore — tested via canonical form"
182+
}
183+
184+
@test "recordings archived is out of scope" {
185+
mark_out_of_scope "Alias for recordings archive — tested via canonical form"
186+
}
187+
188+
@test "recordings client-visibility is out of scope" {
189+
mark_out_of_scope "Alias for recordings visibility — tested via canonical form"
190+
}
191+
192+
@test "recordings trashed is out of scope" {
193+
mark_out_of_scope "Alias for recordings trash — tested via canonical form"
194+
}
195+
196+
# --- search ---
197+
198+
@test "search types is out of scope" {
199+
mark_out_of_scope "Alias for search metadata — tested via canonical form"
200+
}
201+
202+
# --- timesheet ---
203+
204+
@test "timesheet recording is out of scope" {
205+
mark_out_of_scope "Alias for timesheet item — tested via canonical form"
206+
}
207+
208+
# --- todos ---
209+
210+
@test "todos move is out of scope" {
211+
mark_out_of_scope "Alias for todos position — tested via canonical form"
212+
}
213+
214+
@test "todos reopen is out of scope" {
215+
mark_out_of_scope "Alias for todos uncomplete — tested via canonical form"
216+
}
217+
218+
@test "todos reorder is out of scope" {
219+
mark_out_of_scope "Alias for todos position — tested via canonical form"
220+
}
221+
222+
# --- todolistgroups ---
223+
224+
@test "todolistgroups move is out of scope" {
225+
mark_out_of_scope "Alias for todolistgroups position — tested via canonical form"
226+
}
227+
228+
@test "todolistgroups rename is out of scope" {
229+
mark_out_of_scope "Alias for todolistgroups update — tested via canonical form"
230+
}
231+
232+
# --- tools ---
233+
234+
@test "tools delete is out of scope" {
235+
mark_out_of_scope "Alias for tools trash — tested via canonical form"
236+
}
237+
238+
@test "tools move is out of scope" {
239+
mark_out_of_scope "Alias for tools reposition — tested via canonical form"
240+
}
241+
242+
@test "tools rename is out of scope" {
243+
mark_out_of_scope "Alias for tools update — tested via canonical form"
244+
}
245+
246+
# ---------------------------------------------------------------------------
247+
# New commands needing OOS (destructive or unsafe in smoke environment)
248+
# ---------------------------------------------------------------------------
249+
250+
@test "projects trash is out of scope" {
251+
mark_out_of_scope "Soft-trashes a project — destructive mutation"
252+
}

e2e/smoke/smoke_campfire.bats

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,13 @@ setup_file() {
5656
assert_json_value '.ok' 'true'
5757
}
5858

59+
@test "campfire show shows room detail" {
60+
run_smoke basecamp chat show --room "$QA_CAMPFIRE" -p "$QA_PROJECT" --json
61+
assert_success
62+
assert_json_value '.ok' 'true'
63+
assert_json_not_null '.data.id'
64+
}
65+
5966
@test "campfire upload uploads to campfire" {
6067
local tmpfile="$BATS_FILE_TMPDIR/smoke_campfire_upload.txt"
6168
echo "campfire upload test $(date +%s)" > "$tmpfile"

0 commit comments

Comments
 (0)