managarten/apps
Till JS 56130cd3f7 test(mana/web/body): integration tests for bodyStore mutations
11 vitest cases covering the load-bearing parts of bodyStore that
would otherwise rot silently because they only fire on edge paths
(re-tap, phase switch, double-start). Same harness as
nutriphi/mutations.test.ts: fake-indexeddb + a MemoryKeyProvider
seeded with a fresh master key, plus mocks for the browser-only
globals the Dexie hooks reach for (funnel-tracking, triggers,
inline-suggest).

Coverage:

  Encryption (registry round-trip)
    - Exercise: name + notes wrapped, muscleGroup + equipment +
      isPreset stay plaintext for the index/picker layer
    - Set: weight + reps wrapped (numeric values get JSON-stringified
      before encryption), workoutId + exerciseId + order + isWarmup
      stay plaintext

  upsertCheck idempotency
    - Re-tapping the same date updates the existing row instead of
      creating a second one (the bug this guards against would have
      filled bodyChecks with one row per dot-tap on a slow day)
    - Partial updates preserve prior fields when callers pass
      undefined for the others
    - Different dates get different rows

  startPhase auto-close
    - Opening a second phase closes the previous one's endDate
      (so the "active phase" view always sees ≤ 1 open row)
    - endPhase stamps endDate without soft-deleting the row

  startWorkout single-active guard
    - Returns the existing open workout instead of starting a
      second one (would have silently double-tracked sets)
    - After finishWorkout, a fresh start works again

  logSet ordering
    - Assigns sequential order indices within a workout
  deleteWorkout cascade
    - Soft-deletes the workout AND all its sets in one go

All 11 pass against the v2 schema (bodyExercises / bodyWorkouts /
bodySets / bodyChecks / bodyPhases) plus the registry encryption
allowlist landed in the previous body commits.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 16:56:17 +02:00
..
api feat(news): backend ingester service + curated feed API 2026-04-09 15:53:26 +02:00
calc/packages/shared chore: delete 25 web-archived directories, remove stale stubs, clean workspace config 2026-04-03 13:03:49 +02:00
calendar refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
cards chore: complete ManaCore → Mana rename (docs, go modules, plists, images) 2026-04-07 12:26:10 +02:00
chat refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
citycorners chore: complete ManaCore → Mana rename (docs, go modules, plists, images) 2026-04-07 12:26:10 +02:00
contacts refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
context chore(workspace): remove redundant nested lockfiles + workspace.yaml 2026-04-09 11:57:11 +02:00
docs docs: Phase 9 documentation roundup — close encryption-shaped doc gaps 2026-04-08 11:47:59 +02:00
guides refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
inventory refactor(mana): rename inventar → inventory across the codebase 2026-04-09 15:50:24 +02:00
mana test(mana/web/body): integration tests for bodyStore mutations 2026-04-09 16:56:17 +02:00
manavoxel chore(workspace): unify vitest to ^4.1.2 across all packages 2026-04-07 13:58:29 +02:00
memoro chore: remove abandoned per-product workspace artifacts 2026-04-09 11:56:51 +02:00
moodlit refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
mukke feat: rename ManaCore to Mana across entire codebase 2026-04-05 20:00:13 +02:00
news refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
nutriphi refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
photos chore: complete ManaCore → Mana rename (docs, go modules, plists, images) 2026-04-07 12:26:10 +02:00
picture refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
planta chore(planta): remove orphan apps/planta/packages/shared 2026-04-09 14:06:11 +02:00
presi refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
questions refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
skilltree chore: delete 25 web-archived directories, remove stale stubs, clean workspace config 2026-04-03 13:03:49 +02:00
storage refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
times chore: complete ManaCore → Mana rename (docs, go modules, plists, images) 2026-04-07 12:26:10 +02:00
todo refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
traces refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
uload refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
zitare/packages/content chore: delete 25 web-archived directories, remove stale stubs, clean workspace config 2026-04-03 13:03:49 +02:00