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

GEWIS / sudosos / 37324352813
88%

Build:
DEFAULT BRANCH: develop
Ran 05 Oct 2026 02:29PM UTC
Jobs 1
Files 297
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

05 Oct 2026 02:23PM UTC coverage: 92.445% (+0.1%) from 92.338%
37324352813

push

github

web-flow
Simplify PDF service abstraction (#161)

* refactor: simplify pdf service abstraction

Replace the PdfAble mixins and the BaseHtmlPdfService hierarchy with
PdfService and StoredPdfService. Entities no longer build a PDF service
per loaded row; controllers call the services directly.

Stored PDFs are now frozen once issued and only re-rendered with
?force=true. Each StoredPdfService declares followsData: write-offs and
payout requests are frozen, so renaming a user no longer rewrites them.
Invoices follow their parameter hash, which catches edits made in the
same PATCH that marks them PAID and stops changing once they are PAID
or DELETED. Seller payouts follow the live sales report. The dashboard's
invoice "Recompile" button now sends force=true.

PdfCompiler shares one lazily created pdf-compiler client per process;
the client holds no per-request state.

Closes #141

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

* fix: make invoice state checks agree on the latest status

isState sorted by createdAt only, while getLatestInvoiceStatus also
breaks ties on id and sorted the status list in place. When two statuses
shared a timestamp, calling both on the same invoice could disagree, so a
deleted invoice could read as CREATED. isState and the invoice request
validators now use getLatestInvoiceStatus, which no longer mutates the
list.

The payout request status filter had the same MAX(createdAt) tie, so it
now picks the latest status by createdAt and id, like invoices do.

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

* docs: use better-sqlite3 in the single-file test command

TYPEORM_CONNECTION=sqlite is no longer a valid driver and throws on startup.

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

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

4572 of 5174 branches covered (88.36%)

Branch coverage included in aggregate %.

150 of 152 new or added lines in 34 files covered. (98.68%)

22824 of 24461 relevant lines covered (93.31%)

809.02 hits per line

Uncovered Changes

Lines Coverage ∆ File
2
77.42
-0.22% backend/src/controller/payout-request-controller.ts
Jobs
ID Job ID Ran Files Coverage
1 37324352813.1 05 Oct 2026 02:29PM UTC 297
92.44
GitHub Action Run
Source Files on build 37324352813
  • Tree
  • List 297
  • Changed 39
  • Source Changed 36
  • Coverage Changed 32
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #37324352813
  • 9ab2a020 on github
  • Prev Build on develop (#37287111959)
  • Next Build on develop (#37442334272)
  • 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