Drop — Test Coverage Report 2026-07-16 (MC #105817)

Drop — Test Coverage Report (MC #105817, Proveo audit)

Agent ID: proveo-105817 Verdict: CONDITIONS-FOUND

Date: 2026-07-16 Scope: /Users/makinja/ALAI/products/Drop (symlink → ~/business/ALAI-Holding-AS/products/Drop) Method: static file-mapping + live test execution (vitest, drop-api and drop-app), CI config read, git history read. No coverage numbers fabricated — see "Not verified" section for what could not be executed.

1. Executive summary

Drop has FOUR distinct, unequally-tested surfaces:

Surface Test framework Local run result Verdict
apps/drop-api (Hono/TS, "legacy") Vitest 0/259 tests ran — every suite fails at beforeAll (no Postgres) BLOCKED locally
apps/drop-app (Next.js) Vitest + Playwright + Stryker 1155 passed / 361 failed / 252 skipped (96 files) — all 34 failing files are tests/integration/* (Postgres auth), unit tests pass PARTIAL — integration layer blocked, unit layer healthy
backend/ (Kotlin/Ktor, "migration target") Kotest (assumed) Not run (Gradle) 4 test files vs 71 source files — ~5% file coverage, and not in git
apps/drop-mobile (Expo/RN) Jest + Detox + Playwright smoke Not run this session Only a Playwright smoke report from 2026-02-22 exists (no unit coverage evidence found)

Biggest finding is not a coverage number — it's a false "done." MC #5124 ("Drop backend migration: Hono/TS → Kotlin/Ktor", H priority, CEO-mandated stack per ALAI CLAUDE.md 2026-03-17) is marked Status: done (completed 2026-03-29), but its blocked_reason field still reads "autowork: 5 failed attempts, needs human review", and the actual output — backend/ — is:

This means the CEO-mandated migration is being reported as complete while sitting as uncommitted, ~95%-untested code nobody can build on CI (it isn't even in the repo). Recommend John re-open #5124 or open a new MC task scoped to "commit + test-cover backend/ OR formally shelve it," not silently leave it "done."

2. drop-api (apps/drop-api) — Hono/TypeScript

3. drop-app (apps/drop-app) — Next.js

4. backend/ — Kotlin/Ktor ("migration target", MC #5124)

5. drop-mobile (apps/drop-mobile) — Expo/React Native

6. Flaky / environment-dependent tests (not "logic" flaky, but real)

No evidence of nondeterministic (intermittently-failing-on-identical-input) tests was found. All failures observed this session are deterministic environment failures (missing/misconfigured Postgres), not flakiness — every failing suite fails the same way, every time, for the same reason. This is actually the more important finding: the "flaky" symptom a dev would see (tests fail sometimes, pass other times) is fully explained by whether a correctly-seeded local Postgres happens to be running — which is a setup/CI hygiene issue, not flaky test logic.

7. Not verified this session (be explicit, no fabrication)

8. Recommendations (priority order)

  1. [H] Resolve MC #5124 status contradiction — either commit backend/ to git with a real test suite covering the 16 untested modules, or formally mark the Kotlin migration shelved/paused and correct the MC record. Route: John + CodeCraft.
  2. [H] Fix drop-api-test CI job: add explicit Postgres service, coverage step, and 80/70/80/80 gate to match drop-app-test. Route: FlowForge.
  3. [M] Add unit tests for drop-api's untested money-movement modules: idempotency.ts, services/payments.ts, services/settlement.ts, webhooks.ts, ob-consents.ts. Route: CodeCraft.
  4. [M] Re-run drop-mobile Jest coverage + re-verify Onboarding screen JS error from TEST_REPORT.md (2026-02-22, never re-confirmed). Route: Proveo follow-up task.
  5. [L] Document local dev Postgres setup so npm test works out-of-the-box without manual docker compose up + port conflicts (port 5433 currently contested with an unrelated bilko-postgres-test container on this host).

Revision #2
Created 2026-07-16 08:20:00 UTC by John
Updated 2026-08-10 07:37:40 UTC by John