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

safe-global / safe-client-gateway / 23241548536
90%

Build:
DEFAULT BRANCH: main
Ran 18 Mar 2026 11:06AM UTC
Jobs 2
Files 1081
Run time 3min
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

18 Mar 2026 11:02AM UTC coverage: 89.531% (-0.04%) from 89.566%
23241548536

push

github

web-flow
fix(tests): resolve flaky tests from chain ID collisions and missing mock resets (#2977)

* fix(tests): prevent chain ID collisions in recipient-analysis tests

faker.string.numeric(3) for both source and target chain IDs has a ~0.1%
collision chance per test, causing mock routing to return the source Safe
for both chains — making bridge analysis return empty results.

Add uniqueTargetChainId() helper that retries until it generates a chain
ID different from mockChainId. Also remove redundant dead-code branch in
the INCOMPATIBLE_SAFE test.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(tests): add missing mockReset() calls in CoW Swap TWAP tests

The TWAPs describe block inconsistently called mockReset() before
mockImplementation(), unlike the Swaps block. Add networkService.get
and .post mockReset() calls before every mockImplementation() in the
TWAPs tests to prevent mock state leaking between tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* refactor(tests): simplify uniqueTargetChainId using faker exclude

Use faker.string.numeric({ length: 3, exclude: [mockChainId] }) instead
of a manual do/while loop, as suggested in PR review.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(tests): scope fake timers to individual TWAPs tests

jest.useFakeTimers() in beforeAll caused the NestJS app to be
initialized under fake timers in beforeEach, potentially preventing
timer-based operations during module creation from completing.

Move jest.useFakeTimers()/useRealTimers() into the two tests that
actually need time control, so the app always initializes with real
timers. Also remove redundant mockReset() calls — jest.resetAllMocks()
in beforeEach already resets the module-level singleton networkService.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

3074 of 3879 branches covered (79.25%)

Branch coverage included in aggregate %.

14757 of 16037 relevant lines covered (92.02%)

557.54 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
1
83.33
-16.67% src/modules/backbone/domain/entities/__tests__/backbone.builder.ts
1
90.32
-6.45% src/modules/notifications/routes/v1/entities/__tests__/create-registration-v2.dto.builder.ts
1
84.48
-0.86% src/modules/relay/domain/relayers/no-fee-campaign.relayer.ts
Jobs
ID Job ID Ran Files Coverage
1 run-unit-tests - 23241548536.1 18 Mar 2026 11:06AM UTC 1890
57.55
GitHub Action Run
2 run-integration-tests - 23241548536.2 18 Mar 2026 11:07AM UTC 2079
78.88
GitHub Action Run
Source Files on build 23241548536
  • Tree
  • List 1081
  • Changed 300
  • Source Changed 0
  • Coverage Changed 300
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #23241548536
  • e72a9c7b on github
  • Prev Build on main (#23054311376)
  • Next Build on main (#23241534899)
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