---
id: w5/m12/t008
title: Test coverage — pages, create validation, connection-info reveal
worker: worker5
status: done
estimate: 45m
depends_on: [w5/m12/t006]
---

## Objective

Meaningful tests per the m8 pattern (`features/databases/**/__tests__/`): list page render + empty state, create form validation (bad name/plan → API error surfaced, not swallowed), detail render for available vs creating stores, and the connect panel's security-relevant behavior — password absent from the DOM until reveal, external string only when public, copy invoked with the right values.

## Context

- The reveal-gating test is load-bearing (same posture m8 established for Postgres credentials).
- Route tests per the existing route test conventions; mock the Apollo layer with the codegen types.

## Steps

1. Component tests for list/create/detail/connect panel.
2. Assert the mask/reveal DOM behavior and public/internal variants.
3. `yarn test` green with the suite added.

## Files

- `dashboard/src/features/keyvalue/**/__tests__/` (new)

## Acceptance criteria

- [ ] Behaviors above asserted (no snapshot-everything); `yarn lint && yarn typecheck && yarn test` green.

## Out of scope

- Backend tests (w2/m7/t009); e2e.
