11#! /usr/bin/env bats
2- # smoke_lineup.bats - Level 1: Lineup create
3- #
4- # Note: lineup update/delete are OOS — the API returns 204 No Content
5- # (no ID in response), making them structurally untestable without a
6- # fragile list-after-create workaround. See smoke_lifecycle.bats.
2+ # smoke_lineup.bats - Level 1: Lineup CRUD lifecycle
73
84load smoke_helper
95
@@ -15,8 +11,50 @@ setup_file() {
1511@test " lineup create creates a lineup marker" {
1612 local future_date
1713 future_date=$( date -v+7d +%Y-%m-%d 2> /dev/null || date -d " +7 days" +%Y-%m-%d)
18- run_smoke basecamp lineup create " Smoke lineup $( date +%s) " " $future_date " --json
14+ local marker_name=" Smoke lineup $( date +%s) "
15+ run_smoke basecamp lineup create " $marker_name " " $future_date " --json
1916 # Lineup API may not exist on all environments (404 → validation error)
2017 [[ " $status " -ne 0 ]] && mark_unverifiable " Lineup API not available"
2118 assert_json_value ' .ok' ' true'
19+ echo " $marker_name " > " $BATS_FILE_TMPDIR /marker_name"
20+ }
21+
22+ @test " lineup list returns markers" {
23+ run_smoke basecamp lineup list --json
24+ [[ " $status " -ne 0 ]] && mark_unverifiable " Lineup API not available"
25+ assert_json_value ' .ok' ' true'
26+ }
27+
28+ @test " lineup update updates a lineup marker" {
29+ local name_file=" $BATS_FILE_TMPDIR /marker_name"
30+ [[ ! -f " $name_file " ]] && mark_unverifiable " No marker created by earlier test"
31+ local marker_name
32+ marker_name=$( cat " $name_file " )
33+ run_smoke basecamp lineup list --json
34+ [[ " $status " -ne 0 ]] && mark_unverifiable " Lineup API not available"
35+ assert_json_value ' .ok' ' true'
36+ local marker_id
37+ marker_id=$( echo " $output " | jq -r --arg name " $marker_name " ' [.data[] | select(.name == $name)][0].id // empty' )
38+ [[ -z " $marker_id " ]] && mark_unverifiable " No markers found to update"
39+ local updated_name=" Updated $marker_name "
40+ run_smoke basecamp lineup update " $marker_id " " $updated_name " --json
41+ assert_success
42+ assert_json_value ' .ok' ' true'
43+ echo " $updated_name " > " $BATS_FILE_TMPDIR /marker_name"
44+ }
45+
46+ @test " lineup delete removes a lineup marker" {
47+ local name_file=" $BATS_FILE_TMPDIR /marker_name"
48+ [[ ! -f " $name_file " ]] && mark_unverifiable " No marker created by earlier test"
49+ local marker_name
50+ marker_name=$( cat " $name_file " )
51+ run_smoke basecamp lineup list --json
52+ [[ " $status " -ne 0 ]] && mark_unverifiable " Lineup API not available"
53+ assert_json_value ' .ok' ' true'
54+ local marker_id
55+ marker_id=$( echo " $output " | jq -r --arg name " $marker_name " ' [.data[] | select(.name == $name)][0].id // empty' )
56+ [[ -z " $marker_id " ]] && mark_unverifiable " No markers found to delete"
57+ run_smoke basecamp lineup delete " $marker_id " --json
58+ assert_success
59+ assert_json_value ' .ok' ' true'
2260}
0 commit comments