Files
familysync/apps/api/tests/broker/poller.test.ts
T
Lucas Berger 3f591566d1 chore(01-01): scaffold monorepo, Docker Compose stack, and Vitest harness
- pnpm workspace with apps/api (Hono/Drizzle) and apps/pwa (Vite/React 19)
- Pinned versions per RESEARCH: hono@4.12.23, drizzle-orm@0.45.2, mysql2@3.22.4, tsdav@2.2.2, ical.js@2.2.1, zod@^3.25.0, node-cron@^4.2.1
- docker-compose.yml with mariadb:11 healthcheck, api depends_on service_healthy, redis stub
- docker-compose.dev.yml overrides for local dev (bind mounts, exposed ports)
- .env.example lists all env vars (DB_*, OIDC_*, APP_PASSWORD_ENCRYPTION_KEY)
- .gitignore excludes .env (never commit secrets)
- apps/api/vitest.config.ts with environment: node
- Wave 0 test stubs: health, auth/user, broker/crypto, broker/sync, broker/poller
2026-06-04 09:50:16 -04:00

25 lines
772 B
TypeScript

/**
* Wave 0 stub — Broker: ctag polling + change detection
*
* These tests are RED stubs. Implementation lives in:
* apps/api/src/broker/poller.ts (Plan 03)
*
* Tests will be filled GREEN in Plan 03 when the poller is implemented.
*
* Key behavior (D-13): ctag unchanged → no DB write (skip sync entirely)
*/
import { describe, it } from 'vitest'
describe('broker poller', () => {
it.todo('skips syncCalendar when ctag is unchanged (Plan 03)')
it.todo('calls syncCalendar when ctag changes (Plan 03)')
it.todo('calls syncCalendar when ctag was null (first sync) (Plan 03)')
it.todo('handles decryptPassword failure gracefully without crashing the poller (Plan 03)')
it.todo('processes all member credentials in a poll cycle (Plan 03)')
})