Files
mic-check/tests/api/MicCheck.Api.Tests.Integration/readme.md
James Wampler d1a41d84d7 Add MicCheck.Api.Tests.Integration project
NUnit integration tests that target a running API by URL and seed/clean
data directly in Postgres. Settings (BaseUrl, DbConnectionString) come
from .runsettings or environment variables so tests can be pointed at
any environment. HTTP requests live in HttpFiles/*.http; assertion
failures include a fresh DB snapshot of the relevant rows. First test
covers the flag-enabled path.
2026-06-30 11:43:50 -07:00

1.3 KiB

MicCheck.Api.Tests.Integration

Black-box integration tests. Targets a running MicCheck.Api instance by URL and seeds/cleans data directly in the Postgres database.

Running against an environment

Two settings are required: BaseUrl and DbConnectionString.

dotnet test --settings local.runsettings

Copy local.runsettings to e.g. staging.runsettings and override the values for other environments.

Via command-line

dotnet test -- TestRunParameters.Parameter\(name=\"BaseUrl\",value=\"https://staging.example.com\"\) ^
             TestRunParameters.Parameter\(name=\"DbConnectionString\",value=\"Host=...\"\)

Via environment variables (overrides .runsettings)

MICCHECK_API_BASE_URL=...
MICCHECK_DB_CONNECTION_STRING=...
MICCHECK_ACCEPT_ANY_SERVER_CERTIFICATE=true|false

Patterns

  • Tests seed their own data directly in the database, never through the API.
  • Per-test data is seeded in [SetUp]. Reusable cross-test data goes in [OneTimeSetUp].
  • Cleanup runs in [TearDown] / [OneTimeTearDown], also directly in the database.
  • HTTP requests are defined in HttpFiles/*.http and executed via FlagApiHttpClient.
  • Assertion failure messages include a fresh snapshot of the relevant rows in the database.