# quotesdb Integration Tests Integration tests for the quotesdb API, located in this directory. ## Running ```sh # From quotesdb/ cargo test ``` Integration tests run automatically as part of `cargo test`. ## Structure Each test file focuses on one area of the API: | File | Coverage | |---|---| | `api_spec.rs` | GET /api/ — OpenAPI spec shape | | `quotes_list.rs` | GET /api/quotes — pagination, filters | | `quotes_random.rs` | GET /api/quotes/random — 200 and empty DB | | `quotes_crud.rs` | PUT, POST, DELETE — create, update, delete | | `auth.rs` | Auth code validation, 403 responses | | `tags.rs` | Tag create, filter, replace on update | | `router_order.rs` | `/random` not matched as `:id` | ## Test harness All tests use a shared harness (`harness.rs`) that: 1. Creates a temporary SQLite database 2. Spawns an Axum server on a random port 3. Returns the server address for `reqwest` clients to hit 4. Cleans up the database on drop ## Notes - Tests require no external services — all run against a local SQLite database - Each test gets its own isolated database to avoid state contamination - The API server target must build natively (`cargo test` uses the host target)