Automated Test‑Suite Overview

This document enumerates every automated check executed by the Stella Ops CI pipeline, from unit level to chaos experiments. It is intended for contributors who need to extend coverage or diagnose failures.

Build parameters – values such as {{ dotnet }} (runtime) and {{ angular }} (UI framework) are injected at build time.


Layer map

LayerToolingEntry‑pointFrequency
1. UnitxUnit (dotnet test)*.Tests.csprojper PR / push
2. Property‑basedFsCheckSbomPropertyTestsper PR
3. Integration (API)Testcontainers suitetest/Api.Integrationper PR + nightly
4. Integration (DB‑merge)in‑memory Mongo + RedisFeedMerge.Integrationper PR
5. Contract (gRPC)Buf breakingbuf.yaml filesper PR
6. Front‑end unitJestui/src/**/*.spec.tsper PR
7. Front‑end E2EPlaywrightui/e2e/**nightly
8. Lighthouse perf / a11ylighthouse-ci (Chrome headless)ui/dist/index.htmlnightly
9. Loadk6 scripted scenariosk6/*.jsnightly
10. Chaos CPU / OOMpumbaDocker Compose overlayweekly
11. Dependency scanningTrivy fs + dotnet list package --vulnrootper PR
12. License complianceLicenceFinderrootper PR
13. SBOM reproducibilityin‑toto attestation diffGitLab jobrelease tags

Quality gates

MetricBudgetGate
API unit coverage≥ 85 % linesPR merge
API response P95≤ 120 msnightly alert
Δ‑SBOM warm scan P95 (4 vCPU)≤ 5 snightly alert
Lighthouse performance score≥ 90nightly alert
Lighthouse accessibility score≥ 95nightly alert
k6 sustained RPS drop< 5 % vs baselinenightly alert

Local runner

# minimal run: unit + property + frontend tests
./scripts/dev-test.sh

# full stack incl. Playwright and lighthouse
./scripts/dev-test.sh --full

The script spins up MongoDB/Redis via Testcontainers and requires:

  • Docker ≥ 25
  • Node 20 (for Jest/Playwright)

CI job layout

flowchart LR
  subgraph fast-path
    U[xUnit] --> P[FsCheck] --> I1[Testcontainer API]
  end

  I1 --> FE[Jest]
  FE --> E2E[Playwright]
  E2E --> Lighthouse
  Lighthouse --> INTEG2[FeedMerge]
  INTEG2 --> LOAD[k6]
  LOAD --> CHAOS[pumba]
  CHAOS --> RELEASE[Attestation diff]

Adding a new test layer

  1. Extend scripts/dev-test.sh so local contributors get the layer by default.
  2. Add a dedicated GitLab job in .gitlab-ci.yml (stage test or nightly).
  3. Register the job in docs/19_TEST_SUITE_OVERVIEW.md and list its metric in docs/metrics/README.md.

Last updated {{ “now” | date: “%Y‑%m‑%d” }}