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

supabase / supabase-flutter / 23895094801
81%

Build:
DEFAULT BRANCH: main
Ran 02 Apr 2026 10:08AM UTC
Jobs 1
Files 70
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

02 Apr 2026 10:02AM UTC coverage: 81.225% (+0.2%) from 81.054%
23895094801

push

github

web-flow
fix(supabase_flutter): simplify lifecycle reconnection with serial Future chain (#1340)

* fix(supabase_flutter): replace lifecycle state tracking with serial Future chain

Replace complex lifecycle reconnection logic (_disconnectFuture,
_realtimeReconnectOperation, cancel flag) with a serial Future chain
and target-state pattern.

Operations are serialized via _pendingLifecycleOperation so disconnect
and connect never overlap. _targetLifecycleState tracks the most recent
lifecycle request, allowing stale operations to be skipped and
reconnects to be cancelled if the app goes back to background.

Add idempotency guards on both connect (isConnected) and disconnect
(isConnected || isConnecting) paths.

Add tests for rapid lifecycle flapping and cancellation edge cases.

* refactor(supabase_flutter): expose pendingLifecycleOperation for testing

* fix(test): ensure FakeWebSocketSink closes stream controller properly

* refactor(supabase_flutter): simplify Supabase class by removing WidgetsBindingObserver and adding AppLifecycleListener

* refactor(supabase_flutter): code formating using melos

* fix(test): fix lifecycle tests timing out on web/JS platform

Two issues fixed:

1. Missing mockAppLink() in setUp — on web, Supabase.initialize() calls
   _appLinks.getInitialLink() via a platform channel. Without the mock,
   that call hangs forever, timing out the test. Native tests were
   unaffected because _handleInitialUri() has a kIsWeb guard.

2. The completeReadyCompleters() helper was async void, so its body ran
   as a deferred microtask and cleared the list. Replace with
   settleLifecycle() that loops until all lifecycle operations settle.

---------

Co-authored-by: icnahom <4nahom@gmail.com>

21 of 26 new or added lines in 1 file covered. (80.77%)

3448 of 4245 relevant lines covered (81.22%)

2.85 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
5
87.67
0.66% packages/supabase_flutter/lib/src/supabase.dart
Jobs
ID Job ID Ran Files Coverage
1 23895094801.1 02 Apr 2026 10:08AM UTC 70
81.22
GitHub Action Run
Source Files on build 23895094801
  • Tree
  • List 70
  • Changed 2
  • Source Changed 1
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #23895094801
  • 7121ac2b on github
  • Prev Build on main (#23846773811)
  • 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