Phase 3 — Storage and networking
Jennifer's deliverable: Review the storage and networking specs. Explain to the engineer that
block volumes and object storage are independent services — a failure in one should not block the
other. Walk through the VPC subnet dependency (subnet test depends on VPC existing).
Engineer builds: 04-storage.spec.ts (tests 23–33), 05-networking.spec.ts (tests 34–43)
Gate: All 43 tests pass. No smoke-vol-*, smoke-obj-*, smoke-vpc-*, smoke-net-*
resources remain after the run.
Block storage — 04-storage.spec.ts — tags: @storage @smoke
# | Test name | Method | Endpoint | Pass condition
-- | -- | -- | -- | --
23 | list volumes | GET | /volumes | HTTP 200, array
24 | create volume | POST | /volumes | HTTP 200/201, data.slug present
25 | get volume by slug | GET | /volumes/smoke-vol-01 | HTTP 200, correct slug
26 | create snapshot from volume | POST | /snapshots | HTTP 200/201, data.slug present
27 | list snapshots | GET | /snapshots | HTTP 200, array
28 | delete volume | DELETE | /volumes/smoke-vol-01 | HTTP 200/204
Phase 3 — Storage and networking
Jennifer's deliverable: Review the storage and networking specs. Explain to the engineer that
block volumes and object storage are independent services — a failure in one should not block the
other. Walk through the VPC subnet dependency (subnet test depends on VPC existing).
Engineer builds:
04-storage.spec.ts(tests 23–33),05-networking.spec.ts(tests 34–43)Gate: All 43 tests pass. No
smoke-vol-*,smoke-obj-*,smoke-vpc-*,smoke-net-*resources remain after the run.
Block storage —
# | Test name | Method | Endpoint | Pass condition -- | -- | -- | -- | -- 23 | list volumes | GET | /volumes | HTTP 200, array 24 | create volume | POST | /volumes | HTTP 200/201, data.slug present 25 | get volume by slug | GET | /volumes/smoke-vol-01 | HTTP 200, correct slug 26 | create snapshot from volume | POST | /snapshots | HTTP 200/201, data.slug present 27 | list snapshots | GET | /snapshots | HTTP 200, array 28 | delete volume | DELETE | /volumes/smoke-vol-01 | HTTP 200/20404-storage.spec.ts— tags:@storage @smoke