diff --git a/docs/stories/1.1.project-initialization-main-ledger.md b/docs/stories/1.1.project-initialization-main-ledger.md index d1a93b8..5e2c75a 100644 --- a/docs/stories/1.1.project-initialization-main-ledger.md +++ b/docs/stories/1.1.project-initialization-main-ledger.md @@ -2,7 +2,7 @@ ## Status -Approved +Done ## Story @@ -117,5 +117,19 @@ Approved ## QA Results -- Status: +- Status: PASS with CONCERNS - Notes: + - AC1 (Nuxt 4 baseline): Verified. `nuxt.config.ts` includes required modules (`@primevue/nuxt-module`, `@prisma/nuxt`, i18n). Project boots expectedly per structure; monorepo note satisfied by current repo layout. + - AC2 (Docker Compose): `docker-compose.yml` present with `postgres` and `app`, health checks configured. Concerns: + - `app` service does not expose port 3000; add `ports: ["3000:3000"]` for local access. + - `.env.example` leaves `DATABASE_OPEN_PORT` blank while compose maps `${DATABASE_OPEN_PORT}:5432`; define a default (e.g., `5432`) or document required value to prevent startup errors. + - AC3 (DB connectivity): `server/api/health.get.ts` performs `await prisma.$queryRaw\`SELECT 1\`` via `lib/prisma.ts`. Evidence indicates connectivity path exists; recommend adding an integration test or run validation to confirm live connection. + - AC4 (Schema & migrations): `prisma/schema.prisma` defines `MainLedger` and `Registry`; migration `20250901120752_init` creates both tables and indexes. Verified. + - AC5 (SCSS & Tailwind): SCSS structure present under `app/assets/scss/` and included in `nuxt.config.ts`; Tailwind configured in `tailwind.config.ts` with `app/assets/css/tailwind.css` included. Verified. + - PrimeVue demo & SSR: `PrimeButtonDemo.vue` renders `Button` and `Dialog`. Component test `PrimeButtonDemo.spec.ts` passes for click interaction. Suggest adding a keyboard activation test (Enter) and verifying SSR logs during a dev run for client-only warnings. + - Testing scaffolding: Vitest setup present; example unit tests exist (`test/unit/health.spec.ts`, component spec). Verified. + - Prisma client strategy: Both `@prisma/nuxt` (module enabled) and `lib/prisma.ts` singleton coexist. To avoid multiple clients during HMR, choose one approach. Since code imports `lib/prisma.ts`, recommend removing `@prisma/nuxt` from `modules` (or switch fully to `usePrismaClient()` and remove `lib/prisma.ts`). + - Nuxt modules hygiene: `nuxt.config.ts` includes both `@nuxt/test-utils` and `@nuxt/test-utils/module`; keep only `@nuxt/test-utils/module` to avoid duplication. + - A11y spot-check: `Button` includes `type="button"` and keyboard handler; html `lang` set in `app.head`. No blocking a11y issues noted for this scope. + - Google Fonts: Using `@nuxtjs/google-fonts`. Ensure preconnect is active (module typically injects it); verify in head during runtime. + - Gate Decision: PASS with CONCERNS. Provide `qa.qaLocation` to emit gate file at `qa.qaLocation/gates/epic-1.1-project-initialization-main-ledger.yml`; otherwise, we can default to `docs/qa/gates/` if approved.