agynio/e2e

August 1, 2026 ยท View on GitHub

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.

Microservice E2E status

ServiceE2EServiceE2EServiceE2E
agent-stateE2EagentsE2Eagents-orchestratorE2E
agn-cliE2Eagynd-cliE2EappsE2E
authorizationE2Echat-appE2Econsole-appE2E
filesE2Efiles-mcpE2EgatewayE2E
identityE2Ek8s-runnerE2EllmE2E
llm-proxyE2Emedia-proxyE2EmeteringE2E
organizationsE2ErunnersE2Etracing-appE2E

Run

Run the selected suites through DevSpace:

devspace run test-e2e

Run suites for one or more tags:

devspace run test-e2e --tag smoke
devspace run test-e2e --tag svc_gateway --tag svc_agents_orchestrator

Useful environment variables:

  • E2E_NAMESPACE: Kubernetes namespace used for runner pods. Defaults to platform.
  • E2E_SUITES: optional space-separated suite names to limit discovery, for example playwright go-core.
  • TAGS: space-separated tags used by suite selection. Prefer --tag when invoking DevSpace locally.
  • E2E_DOMAIN: app domain used by Playwright suite defaults. Defaults to agyn.dev.
  • E2E_INGRESS_PORT: ingress port used by external service defaults. Falls back to INGRESS_PORT, then PORT, then 2496.

Suite selection

Each suite declares a select script in suite.yaml.

  • With an empty TAGS, only suites that explicitly emit a default selector run.
  • With TAGS set, a suite runs when any requested tag matches one of its suite tags.
  • If TAGS is non-empty and no suite matches, the runner fails instead of silently doing nothing.
  • Playwright suites convert selected tags to Playwright --grep expressions such as @smoke|@svc_gateway.
  • Go suites convert selected tags to Go build tags alongside the shared e2e build tag.

Suites

go-agn-cli

  • Default TAGS behavior: Not selected by default. Runs when TAGS includes svc_agn_cli.
  • Suite tags: svc_agn_cli
  • Required env vars: None in suite.yaml. Runtime expects AGN_BINARY, or ./bin/agn by default.
  • Playwright base URL default: N/A

go-core

  • Default TAGS behavior: Selected as smoke; runs Go tests with e2e 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

go-terraform

  • Default TAGS behavior: Selected as svc_gateway; runs Go tests with e2e svc_gateway tf_provider_agyn when TAGS is empty.
  • Suite tags: svc_gateway, tf_provider_agyn
  • Required env vars: None in suite.yaml.
  • Playwright base URL default: N/A

playwright

  • Default TAGS behavior: 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}

playwright-chat-app

  • Default TAGS behavior: Not selected by default. Runs when TAGS matches 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}

playwright-tracing-app

  • Default TAGS behavior: Selected as smoke; 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}