End-to-end test suites for the Agyn platform.
This repository contains the shared E2E runner plus suite definitions for
service, UI, CLI, and Terraform provider coverage. The runner discovers
suites/*/suite.yaml, selects suites from TAGS, and executes each selected
suite in a Kubernetes pod.
For BDD coverage, tag conventions, and traceability references, see the E2E BDD documentation.
| Service | E2E | Service | E2E | Service | E2E |
|---|---|---|---|---|---|
| agent-state | agents | agents-orchestrator | |||
| agn-cli | agynd-cli | apps | |||
| authorization | chat-app | console-app | |||
| files | files-mcp | gateway | |||
| identity | k8s-runner | llm | |||
| llm-proxy | media-proxy | metering | |||
| organizations | runners | tracing-app |
Run the selected suites through DevSpace:
devspace run test-e2eRun suites for one or more tags:
devspace run test-e2e --tag smoke
devspace run test-e2e --tag svc_gateway --tag svc_agents_orchestratorUseful environment variables:
E2E_NAMESPACE: Kubernetes namespace used for runner pods. Defaults toplatform.E2E_SUITES: optional space-separated suite names to limit discovery, for exampleplaywright go-core.TAGS: space-separated tags used by suite selection. Prefer--tagwhen invoking DevSpace locally.E2E_DOMAIN: app domain used by Playwright suite defaults. Defaults toagyn.dev.E2E_INGRESS_PORT: ingress port used by external service defaults. Falls back toINGRESS_PORT, thenPORT, then2496.
Each suite declares a select script in suite.yaml.
- With an empty
TAGS, only suites that explicitly emit a default selector run. - With
TAGSset, a suite runs when any requested tag matches one of its suite tags. - If
TAGSis non-empty and no suite matches, the runner fails instead of silently doing nothing. - Playwright suites convert selected tags to Playwright
--grepexpressions such as@smoke|@svc_gateway. - Go suites convert selected tags to Go build tags alongside the shared
e2ebuild tag.
- Default
TAGSbehavior: Not selected by default. Runs whenTAGSincludessvc_agn_cli. - Suite tags:
svc_agn_cli - Required env vars: None in
suite.yaml. Runtime expectsAGN_BINARY, or./bin/agnby default. - Playwright base URL default: N/A
- Default
TAGSbehavior: Selected assmoke; runs Go tests withe2e smoke. - Suite tags:
svc_agents_orchestrator,svc_runners,svc_metering,svc_k8s_runner,svc_organizations,svc_files,svc_gateway,svc_media_proxy,svc_llm,svc_llm_proxy,smoke - Required env vars:
AGN_INIT_IMAGE,CODEX_INIT_IMAGE,CLAUDE_INIT_IMAGE,AGN_EXPOSE_INIT_IMAGE - Playwright base URL default: N/A
- Default
TAGSbehavior: Selected assvc_gateway; runs Go tests withe2e svc_gateway tf_provider_agynwhenTAGSis empty. - Suite tags:
svc_gateway,tf_provider_agyn - Required env vars: None in
suite.yaml. - Playwright base URL default: N/A
- Default
TAGSbehavior: Selected by default and runs the full Playwright suite with no grep. - Suite tags:
svc_console,svc_gateway,svc_threads,svc_metering,svc_identity,smoke - Required env vars: None in
suite.yaml. - Playwright base URL default:
https://console.${E2E_DOMAIN:-agyn.dev}
- Default
TAGSbehavior: Not selected by default. Runs whenTAGSmatches one of its suite tags. - Suite tags:
svc_chat_app,svc_gateway,svc_agents_orchestrator,svc_organizations,svc_files,svc_media_proxy,svc_tracing_app - Required env vars:
CODEX_INIT_IMAGE - Playwright base URL default:
https://chat.${E2E_DOMAIN:-agyn.dev}
- Default
TAGSbehavior: Selected assmoke; runs Playwright with--grep @smoke. - Suite tags:
svc_tracing_app,svc_agents_orchestrator,smoke - Required env vars:
AGN_INIT_IMAGE,CODEX_INIT_IMAGE,CLAUDE_INIT_IMAGE - Playwright base URL default:
https://tracing.${E2E_DOMAIN:-agyn.dev}