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

stores-com / bloodhound / 30651197487 / 1
88%
main: 88%

Build:
Build:
LAST BUILD BRANCH: fedex-package
DEFAULT BRANCH: main
Ran 31 Jul 2026 05:27PM UTC
Files 12
Run time 1s
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

31 Jul 2026 05:26PM UTC coverage: 88.0% (+0.5%) from 87.506%
30651197487.1

Pull #187

github

freshlogic
Convert every carrier from callbacks to async/await

bloodhound.track() has been promise-only since 4.0.0, but underneath it every carrier
still took callback(err, data) and index.js wrapped the whole dispatch in a single
new Promise to bridge them. This removes the bridge: all ten carriers are now async
and resolve with the results object, and index.js returns the carrier's promise
directly.

carriers/fedEx.js's getAccessToken() is async too. That one is worth calling out —
it hangs off the carrier instance, so a consumer deep-requiring the module and passing
it a callback breaks. package.json has no exports map, so those deep requires resolve.

Two things fell out rather than being sought:

carriers/gofo.js and carriers/onTrac.js now take only a tracking number. Their options
argument existed solely to hold the callback shim; neither ever read minDate, so
neither has ever honoured it. Dropping the parameter makes that visible instead of
leaving an argument that silently does nothing. Not fixed here.

test/carriers/fedEx.js, test/carriers/gofo.js and test/index.js had 51 un-awaited
t.test() subtests between them. That was survivable while the failures arrived through
callbacks; once they reject directly the timing changed and the fedEx file stopped
running its last twelve tests, which --test-force-exit then truncated silently. They
are awaited now. test/carriers/xpo.js still has 14 and is untouched here.

Verification: 173 tests / 126 pass / 42 fail / 5 skipped, identical to the same
worktree before the change, with a byte-identical failing set (all FedEx/XPO cases
needing credentials). The only test names that moved are two Pitney Bowes tests that
described the callback shim and now describe calling track() without options.
npx eslint . clean.

No version bump — CHANGELOG entry is under Unreleased.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Pull Request #187: Convert every carrier from callbacks to async/await

317 of 372 branches covered (85.22%)

Branch coverage included in aggregate %.

1487 of 1678 relevant lines covered (88.62%)

18.43 hits per line

Source Files on job 30651197487.1
  • Tree
  • List 12
  • Changed 11
  • Source Changed 11
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 30651197487
  • 2b76d2c5 on github
  • Prev Job for on promise-carriers (#30596231479.1)
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