Skip to content
testpulse

Ostomate 2.0

Local-first ostomy supply tracker for Android and iOS. Kotlin Multiplatform rewrite of Ostomate v1.

Track ostomy supply changes, predict reorders, and manage inventory, privately and locally. Logs bag and flange changes by tap or QR deep link, predicts days of supply, schedules reorder notifications, and adds calendar and stats views, QR label printing, backup and restore, home-screen widgets, and an optional biometric lock. No analytics; crash reporting is opt-in.

Reporting healthyLast report Source on GitHub
PassedLatest run · · main · 823cb42
153tests · 153 passed · 0 failed · 0 skipped · 49 s
Pass rate, 30 days
99.8%
Green streak
7runs
Longest7 runs
Time to green
2h 40m
Median of 3, 90 days · worst 4h 48m
View this run →

What it’s built with

Built with

Mobile
  • Kotlin Multiplatform 2.3.21
  • Compose Multiplatform 1.11.0
  • Room KMP 2.8.4
  • Koin 4.2.1
Platforms
  • Android (minSdk 26, targetSdk 36)
  • iOS 15.3+ (SwiftUI shell, WidgetKit)
Services
  • Sentry (opt-in crash reporting)
Delivery
  • Gradle 9.3.1
  • JDK 21
  • GitHub Actions
  • Fastlane

Tested with

Runners
  • kotlin.test
  • JUnit4
  • Robolectric 4.14.1
  • kotlinx-coroutines-test
Property
  • kotest-property 5.9.1
Visual
  • Roborazzi 1.68.0
Coverage
  • JaCoCo 0.8.13
Static analysis
  • detekt 1.23.8
  • ktlint 1.0.1
  • SwiftLint
E2E
  • Maestro 2.11.0

How it’s tested

153tests executed in the latest run
  • Visual
    107%
  • Integration
    3020%
  • Unit
    11374%

Coverage and reports

Line coverage against enforced floors

The amber tick is the floor CI enforces; a build below it fails. Scale 0 to 100.

composeApp94.4%floor 93%
shared93.2%floor 91%

Reports per run

Job / module / platformTests
android/composeApp/jvm64
android/shared/jvm88
ios/composeApp/ios-sim51
ios/shared/ios-sim86

History

Pass rate

Default branch · last 30 runs · CI and imported history

100% on the latest run. 5 of the last 30 runs failed.

Tests per run

Default branch · last 30 CI runs

Grew from 143 to 153 over the last 22 runs.

Line coverage, composeApp

Default branch · last 30 runs · CI and imported history

Rose from 94.3% to 94.4% over 30 runs; above its 93% floor.

Line coverage, shared

Default branch · last 30 runs · CI and imported history

Fell from 93.3% to 93.2% over 30 runs; above its 91% floor.

Run duration

Default branch · last 30 CI runs (imported history has no durations)

Between 35 s and 11m 47s over the last 22 runs. Median 7m 24s.

Last 40 runs

Default branch · run status

17 passed, 5 failed.
Latest
  • Passed
  • Failed

Runs and flaky tests