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

archetech / archon / 30769471261
94%

Build:
DEFAULT BRANCH: main
Ran 02 Aug 2026 10:12PM UTC
Jobs 1
Files 88
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 Aug 2026 10:09PM UTC coverage: 93.938% (+0.7%) from 93.207%
30769471261

push

github

web-flow
test(herald): cover the dmail poll loop and remaining route guards (#830)

routes.ts sat at 67.4% branches. 21 tests take it to 81.9% (63 -> 35
missed), and lines from 80.8% to 88.8%.

The dmail poll loop is the piece deferred from #820 and #821. It is the
component that turns inbound dmails into outbound email, and none of its
routing logic had ever run in a test — startDmailPollLoop installs a 5s
setTimeout and then a 60s setInterval, and a live timer keeps Jest alive
because CI runs without --forceExit.

Fake timers solve it: the timers never reach the real event loop, and
clearAllTimers in teardown disposes of them. Verified by running the file
without --forceExit — Jest still exits cleanly.

Poll loop coverage:
- reply forwarding through a stored email mapping, and falling through
  when no mapping exists
- the "[email to addr] subject" compose convention, including the
  empty-subject default
- sender resolution across all three shapes: a DID with a named user, a
  DID with no name (falls back to dmail-user), and a non-DID sender used
  verbatim — plus a non-string sender becoming Unknown
- the guard that a composed email only sends when the service DID is
  actually a recipient
- the in-flight guard, and the interval firing a second poll
- failures logging rather than throwing

Also covered: credential issuance failures (fetch and update), the
error/message/string fallback chain on /api/credential, admin deletion
naming a user by DID when unnamed, and Lightning service resolution
including a service identified by a #lightning fragment rather than by
type — a real alternate path in the matcher that nothing exercised.

mount() now returns startDmailPollLoop, which the factory already
exposed but the harness discarded.

Repo branches 84.84% -> 86.06%, lines 96.62%.

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

3587 of 4060 branches covered (88.35%)

Branch coverage included in aggregate %.

8222 of 8511 relevant lines covered (96.6%)

686.99 hits per line

Jobs
ID Job ID Ran Files Coverage
1 30769471261.1 02 Aug 2026 10:12PM UTC 176
95.0
GitHub Action Run
Source Files on build 30769471261
  • Tree
  • List 88
  • Changed 73
  • Source Changed 0
  • Coverage Changed 73
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #30769471261
  • a9f74384 on github
  • Prev Build on main (#30767097536)
  • Next Build on main (#30770397419)
  • 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