orbit/e2e
2026-07-06 18:35:42 +00:00
..
ci-forgejo.yml.example Point all links at git.devtronic.pro and drop the dead Codeberg references 2026-07-06 18:35:42 +00:00
config.e2e.json add playwright e2e tests against a local ergo ircv3 server 2026-06-20 21:05:01 +00:00
fixtures.ts add playwright e2e tests against a local ergo ircv3 server 2026-06-20 21:05:01 +00:00
global-setup.ts add playwright e2e tests against a local ergo ircv3 server 2026-06-20 21:05:01 +00:00
global-teardown.ts add playwright e2e tests against a local ergo ircv3 server 2026-06-20 21:05:01 +00:00
install-ergo.sh add playwright e2e tests against a local ergo ircv3 server 2026-06-20 21:05:01 +00:00
orbit.spec.ts e2e: cover the handoff auto-connect 2026-06-21 01:13:50 +00:00
README.md Point all links at git.devtronic.pro and drop the dead Codeberg references 2026-07-06 18:35:42 +00:00

End-to-end tests

Playwright drives the real built client against a live Ergo IRCv3 server over WebSocket, the same transport production uses.

Run

npm run test:e2e

That fetches the Ergo binary (cached in e2e/.bin/, first run only), starts it on a loopback WebSocket port, builds the client, serves it with vite preview, and runs e2e/*.spec.ts. Ergo is torn down afterwards.

Layout

  • global-setup.ts / global-teardown.ts: start and stop Ergo. The config is generated from Ergo's bundled default.yaml (a plaintext loopback WebSocket listener, no TLS, a throwaway datastore in $TMPDIR).
  • config.e2e.json: points the client at the local Ergo. fixtures.ts serves it by intercepting the client's config.json request, so no build output is rewritten.
  • install-ergo.sh: downloads and pins the Ergo version (ERGO_VERSION).

A Forgejo Actions workflow that runs the same flow is provided as ci-forgejo.yml.example. A self-hosted Forgejo instance may have no shared runners, so to run it: attach your own Forgejo runner, then copy the file to .forgejo/workflows/e2e.yml and set runs-on: to your runner's label.