Skip to content

test: enable ATS gotest chart tests and fill the e2e basic suite - #954

Draft
QuentinBisson wants to merge 4 commits into
mainfrom
tests/shared-assertions
Draft

test: enable ATS gotest chart tests and fill the e2e basic suite#954
QuentinBisson wants to merge 4 commits into
mainfrom
tests/shared-assertions

Conversation

@QuentinBisson

@QuentinBisson QuentinBisson commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

What

  • tests/ats switches from pytest (Pipfile-era, and effectively dead: all ATS scenarios were skipped in .ats/main.yaml since the CI bootstrap in fix(ci): add Helm chart publishing to OCI registry #154) to app-test-suite's gotest contract: a single self-contained test file (//go:build smoke || upgrade) on plain client-go, reading KUBECONFIG / ATS_* env vars. It checks API reachability and muster deployment readiness.
  • .ats/main.yaml sets test-executor: gotest and re-enables the smoke scenario. functional/upgrade stay skipped: functional has no tests, upgrade needs a validated stable-version path first.
  • tests/e2e/suites/basic fills the empty scaffold: the suite asserts WC connectivity and muster deployment readiness via Gomega Eventually over the clustertest client.

Why

Both harnesses need "does the deployed muster actually work" checks. An earlier iteration shared them through a tests/assertions module consumed by both sides; that turned out to be plumbing (extra module, replace directives, adapter helpers) protecting ~12 lines of predicate logic, so each harness now carries the checks in its own idiom. A shared package becomes worth it once muster grows real behavioral e2e checks (e.g. MCP protocol probes against the deployed aggregator).

Verification

Ran the full ATS smoke scenario locally (ats -c muster-0.3.12.tgz with image tag 0.22.10): kind cluster up, CRDs applied, chart deployed, go test -tags=smoke passed both tests against the live deployment, clean teardown. The e2e path compiles and vets; it needs an ephemeral MC, so exercise it with /run app-test-suites on this PR.

Add a framework-agnostic tests/assertions Go module (cluster
reachability, deployment readiness over controller-runtime client).
Replace the pytest ATS tests with the ATS gotest contract reading the
ATS_* env vars, switch .ats/main.yaml to the gotest executor, and
enable the smoke scenario that had been skipped since the CI
bootstrap. Fill the empty e2e basic suite with the same assertions
via the apptest-framework state.
The cluster-reachability check now also runs in the upgrade scenario;
it was smoke-only as a leftover from the pytest markers.
The module, replace directives, and adapter helpers shared ~12 lines
of predicate logic. Each harness now carries its own idiom: tests/ats
is a single self-contained file on plain client-go, the e2e suite
uses Gomega Eventually with the clustertest client.
@QuentinBisson QuentinBisson changed the title test: share assertions between ATS chart tests and e2e suite test: enable ATS gotest chart tests and fill the e2e basic suite Jul 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant