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

supabase / supabase-flutter / 32016936960
89%

Build:
DEFAULT BRANCH: main
Ran 17 Aug 2026 09:49AM UTC
Jobs 9
Files 104
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

17 Aug 2026 09:46AM UTC coverage: 88.239%. Remained the same
32016936960

push

github

web-flow
test(supabase_flutter): deflake the expired session stream expectation (#1720)

## What kind of change does this PR introduce?

Test fix for a flaky WASM CI failure on main.

## What is the current behavior?

`Expired session emits exception when no auto refresh` waits a fixed
100ms and then asserts that the next event on `onAuthStateChange` is an
error:

```dart
await Future.delayed(const Duration(milliseconds: 100));
await expectLater(
  Supabase.instance.client.auth.onAuthStateChange,
  emitsError(isA<AuthException>()),
);
```

The session recovery flow emits `initialSession`, then `signedOut` (with
`signOutReason: sessionExpired`), and only after the logout HTTP call
fails does the `AuthException` reach the stream. Since `ReplaySubject`
replays only the latest event, the test passes only when the whole flow,
including the HTTP roundtrip, completes within the 100ms budget. On a
slow runner the subscription lands between `signedOut` and the error,
the replayed event is a data event, and `emitsError` fails:

```
Which: emitted • AuthState(event: signedOut, session: null, fromBroadcast: false, signOutReason: sessionExpired)
```

This is exactly the failure seen on the main WASM runs starting with the
run for #1716. The race is unrelated to that commit: reducing the delay
reproduces the identical failure on 29286f43, the commit before it, and
both failing CI runs executed concurrently on loaded runners while all
passing runs did not.

## What is the new behavior?

The test drops the fixed delay and skips past data events until the
error arrives, which is deterministic for every interleaving:

```dart
await expectLater(
  Supabase.instance.client.auth.onAuthStateChange,
  emitsThrough(emitsError(isA<AuthException>())),
);
```

Verified locally on the VM and with `flutter test --platform chrome
--wasm`.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Tests**
* Updated expired-session authenticati... (continued)

5732 of 6496 relevant lines covered (88.24%)

4.11 hits per line

Jobs
ID Job ID Ran Files Coverage
9 supabase_flutter - 32016936960.9 17 Aug 2026 09:49AM UTC 10
81.64
GitHub Action Run
9 supabase - 31805117378.9 14 Aug 2026 01:37PM UTC 13
87.19
GitHub Action Run
4 yet_another_json_isolate - 31785069647.4 14 Aug 2026 08:44AM UTC 1
94.44
GitHub Action Run
5 storage_client - 31804163356.5 14 Aug 2026 01:23PM UTC 13
85.03
GitHub Action Run
9 supabase_auth - 32009240063.9 17 Aug 2026 08:16AM UTC 27
89.72
GitHub Action Run
9 realtime_client - 31804163356.9 14 Aug 2026 01:24PM UTC 11
90.51
GitHub Action Run
6 functions_client - 31804163356.6 14 Aug 2026 01:21PM UTC 3
97.75
GitHub Action Run
4 supabase_common - 31804163356.4 14 Aug 2026 01:21PM UTC 16
99.48
GitHub Action Run
8 postgrest - 31804163356.8 14 Aug 2026 01:23PM UTC 10
85.46
GitHub Action Run
Source Files on build 32016936960
  • Tree
  • List 104
  • Changed 25
  • Source Changed 25
  • Coverage Changed 8
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #32016936960
  • 76c6f6ee on github
  • Prev Build on main (#32016794095)
  • Next Build on main (#32018494325)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc