• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

supabase / supabase-flutter / 27544768443
85%

Build:
DEFAULT BRANCH: main
Ran 15 Jun 2026 12:02PM UTC
Jobs 8
Files 73
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

15 Jun 2026 12:01PM UTC coverage: 84.678% (+3.2%) from 81.508%
27544768443

push

github

web-flow
test(realtime): add Dockerized integration tests for v1 and v2 protocols (#1405)

## What

Adds Dockerized integration tests for `realtime_client` that run against
a real Supabase Realtime server, exercising the full client surface for
**both** the legacy `1.0.0` and the new `2.0.0` protocol formats.

## Changes

### Infra (`infra/realtime_client/`)
Follows the same pattern as the `gotrue`/`postgrest`/`storage_client`
setups.
- `docker-compose.yml` — `supabase/postgres:15.1.0.37` +
`supabase/realtime:v2.102.3`. The Realtime server connects as the
`postgres` superuser and seeds a `realtime-dev` tenant on startup via
`SEED_SELF_HOST` (the required `METRICS_JWT_SECRET` is set alongside
`API_JWT_SECRET`).
- `db/00-schema.sql` — a self-contained bootstrap that creates the
standard Supabase roles (`supabase_admin`, `anon`, `authenticated`,
`service_role`, `authenticator`), the
`extensions`/`auth`/`_realtime`/`realtime` schemas, a `public.todos`
table with `REPLICA IDENTITY FULL`, the grants, and the
`supabase_realtime` publication used for `postgres_changes`. The bare
image does not create these roles itself, and the per-tenant `realtime`
schema must exist before the tenant initializes.

### Tests (`packages/realtime_client/test/`)
- `realtime_integration_test.dart` runs once per
`RealtimeProtocolVersion`, covering:
  - connection and open state
  - channel subscribe / unsubscribe
  - self-broadcast and cross-client broadcast
  - presence track / sync / join / untrack / leave
- `postgres_changes` insert / update / delete plus a server-side filter
- `utils/realtime_test_utils.dart` — generates HS256 JWTs signed with
the server `API_JWT_SECRET`, builds clients per protocol version, opens
a direct Postgres connection to mutate rows, polls the server for
readiness (`waitForRealtimeServer`), and primes the replication pipeline
(`primePostgresChanges`) so `postgres_changes` events are delivered
reliably on first use.

### Wiring
- `realtime_client.yml` workflow n... (continued)

3874 of 4575 relevant lines covered (84.68%)

3.41 hits per line

Jobs
ID Job ID Ran Files Coverage
1 supabase - 27544768443.1 15 Jun 2026 12:02PM UTC 15
88.62
GitHub Action Run
2 storage_client - 27544768443.2 15 Jun 2026 12:03PM UTC 5
93.01
GitHub Action Run
3 gotrue - 27544768443.3 15 Jun 2026 12:04PM UTC 23
80.06
GitHub Action Run
4 supabase_flutter - 27544768443.4 15 Jun 2026 12:03PM UTC 7
78.57
GitHub Action Run
5 realtime_client - 27544768443.5 15 Jun 2026 12:04PM UTC 11
87.65
GitHub Action Run
6 postgrest - 27544768443.6 15 Jun 2026 12:03PM UTC 9
83.74
GitHub Action Run
7 functions_client - 27544768443.7 15 Jun 2026 12:02PM UTC 2
97.1
GitHub Action Run
8 yet_another_json_isolate - 27544768443.8 15 Jun 2026 12:02PM UTC 1
79.03
GitHub Action Run
Source Files on build 27544768443
  • Tree
  • List 73
  • Changed 6
  • Source Changed 0
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #27544768443
  • 9ece0332 on github
  • Prev Build on main (#27539879221)
  • Next Build on main (#27546909655)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc