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

medplum / medplum / 25819900366
92%
main: 92%

Build:
Build:
LAST BUILD BRANCH: testing/agent-vitest-migration
DEFAULT BRANCH: main
Ran 13 May 2026 07:08PM UTC
Jobs 1
Files 772
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

13 May 2026 06:55PM UTC coverage: 91.997% (+0.001%) from 91.996%
25819900366

push

github

web-flow
Disable GIN Fastupdate on Appointment, Slot in tests (#9194)

* Disable GIN Fastupdate on Appointment, Slot in tests

While working on scheduling tests that are exercising endpoints using
serializable transactions, I'm seeing CI failing irregularly with "could
not serialize access due to read/write dependencies among transactions".
I'm surprised because the tests shouldn't be conflicting with each other
(they are touching distinct rows), but it seems like Postgres can
sometimes end up locking more than I expected.

@mattlong suggested that FastUpdate could be the culprit - the default
GIN index uses this feature, which can push all the updates to a table
into a single pending list, which could cause this kind of problem. In
this commit we turn off the fastUpdate feature for these tables in the
test environment.

Signed-off-by: Noah Silas <noah@medplum.com>

* $book: remove leak across transaction retry

When the `bufferSlots` array was defined outside of the transaction
closure, it was not getting cleared if a transaction failed to commit
and retried. This could cause the returned array to include a phantom
Slot that looks persisted but can't be looked up.

Moving this declaration inside `withTransaction` means that each attempt
starts fresh and any instances from previous attempts can be garbage
collected.

This occasionally caused test failures when I was stressing concurrent
scheduling tests.

Signed-off-by: Noah Silas <noah@medplum.com>

* Test response.body.issue before response.status

When these tests fail, an assertion on the status code is relatively low
utility. Knowing that we expected "201 created" but for "400 bad
request" doesn't help explain why something went wrong.

Adding or moving more specific assertions, such as tests against
`response.body.issue` will hopefully reveal more useful error messages.

Signed-off-by: Noah Silas <noah@medplum.com>

* Add rationale comment to seed.test index adjustments

Signed-off-by: Noah Silas <noah@m... (continued)

20935 of 23617 branches covered (88.64%)

Branch coverage included in aggregate %.

1 of 1 new or added line in 1 file covered. (100.0%)

34475 of 36613 relevant lines covered (94.16%)

24004.05 hits per line

Jobs
ID Job ID Ran Files Coverage
1 25819900366.1 13 May 2026 07:08PM UTC 898
92.24
GitHub Action Run
Source Files on build 25819900366
  • Tree
  • List 772
  • Changed 85
  • Source Changed 2
  • Coverage Changed 84
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #25819900366
  • 5621e1df on github
  • Prev Build on gh-readonly-queue/main/pr-9189-fc83c7509eabdb02d1350fef6bf87fde10d4791d (#25818434881)
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