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

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

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

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

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 %.

640 of 694 new or added lines in 11 files covered. (92.22%)

4 existing lines in 3 files now uncovered.

1487 of 1678 relevant lines covered (88.62%)

18.43 hits per line

Uncovered Changes

Lines Coverage ∆ File
15
86.82
-0.95% carriers/dhl.js
13
88.89
1.39% carriers/usps.js
10
93.11
-0.48% carriers/fedEx.js
6
91.53
2.98% carriers/amazon.js
4
96.25
-0.24% carriers/onTrac.js
2
97.0
5.11% carriers/gofo.js
2
85.04
2.33% carriers/xpo.js
1
46.85
-1.4% carriers/dhlEcommerceSolutions.js
1
98.68
-0.1% carriers/pitneyBowes.js

Coverage Regressions

Lines Coverage ∆ File
2
88.89
1.39% carriers/usps.js
1
91.53
2.98% carriers/amazon.js
1
86.82
-0.95% carriers/dhl.js
Jobs
ID Job ID Ran Files Coverage
1 30651197487.1 31 Jul 2026 05:27PM UTC 12
88.0
GitHub Action Run
Source Files on build 30651197487
  • 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 Repo
  • Github Actions Build #30651197487
  • Pull Request #187
  • PR Base - main (#30596231479)
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