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

supabase / supabase-flutter / 38223427918
92%

Build:
DEFAULT BRANCH: main
Ran 12 Oct 2026 08:26AM UTC
Jobs 11
Files 175
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

12 Oct 2026 08:24AM UTC coverage: 91.512% (+0.002%) from 91.51%
38223427918

push

github

web-flow
fix(storage): keep the trailing slash of the listPaginated prefix (#1943)

## What kind of change does this PR introduce?

Bug fix.

## What is the current behavior?

`listPaginated` runs the prefix through `_removeEmptyFolders`, which
strips a trailing `/`. The `object/list-v2` endpoint matches the prefix
as a plain string, the same way S3 does, so the trailing `/` changes the
result:

- With `withDelimiter: true`, `prefix: 'photos/'` is sent as `photos`.
The server then returns a single folder entry, `photos/`, plus any
object such as `photos.png`, instead of the contents of the `photos`
folder.
- Without a delimiter, `photos` also matches `photos.png` and
`photos-2/a.png`.

The storage server's own `object-list-v2` tests cover both cases:
`prefix without slash - with delimiter` expects `aal.txt` and the folder
`aal/`, and `prefix - with delimiter` uses `aal/` to list the folder
contents.

## What is the new behavior?

The prefix keeps its trailing `/`. Leading slashes are still removed and
repeated slashes are still collapsed, as for object paths. `list` is not
changed, because the `object/list` endpoint treats its prefix as a
folder.

## Additional context

`test/path_normalization_test.dart` has a new `listPaginated prefix`
group that replaces the `listPaginated` case in the per-path loop. Three
of its cases (`folder/`, `folder//`, and `//folder//sub//`) fail on the
previous code, and the `listPaginated posts options and parses the
result` test in `test/basic_test.dart` now expects `prefix/` to be sent
unchanged. The unit tests in `supabase_storage` pass, and `dart analyze`
and `dart format` are clean.


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

* **Bug Fixes**
* Corrected paginated storage listings to preserve trailing slashes in
folder prefixes while removing leading and repeated slashes.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: ... (continued)

4 of 4 new or added lines in 1 file covered. (100.0%)

9498 of 10379 relevant lines covered (91.51%)

5.19 hits per line

Jobs
ID Job ID Ran Files Coverage
3 supabase_flutter - 38223427918.3 12 Oct 2026 08:26AM UTC 15
80.58
GitHub Action Run
4 supabase_functions - 38223427918.4 12 Oct 2026 08:26AM UTC 4
93.28
GitHub Action Run
5 supabase - 38223427918.5 12 Oct 2026 08:30AM UTC 17
95.05
GitHub Action Run
6 supabase_realtime - 38223427918.6 12 Oct 2026 08:29AM UTC 14
91.11
GitHub Action Run
7 supabase_auth - 38223427918.7 12 Oct 2026 08:29AM UTC 32
92.16
GitHub Action Run
8 iceberg - 38223427918.8 12 Oct 2026 08:26AM UTC 6
69.17
GitHub Action Run
9 supabase_typegen - 38223427918.9 12 Oct 2026 08:28AM UTC 24
96.19
GitHub Action Run
10 postgrest - 38223427918.10 12 Oct 2026 08:29AM UTC 30
92.97
GitHub Action Run
11 supabase_storage - 38223427918.11 12 Oct 2026 08:28AM UTC 9
98.47
GitHub Action Run
11 yet_another_json_isolate - 37623283614.11 07 Oct 2026 12:48PM UTC 1
98.44
GitHub Action Run
2 supabase_common - 37944513512.2 09 Oct 2026 02:32PM UTC 23
88.14
GitHub Action Run
Source Files on build 38223427918
  • Tree
  • List 175
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #38223427918
  • 76e3c0a8 on github
  • Prev Build on main (#37944513512)
  • Next Build on main (#38226711363)
  • 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