Deterministic scenarios
- libs/testing/data-fixtures/src/lib/data-table-workflow.fixtures.ts
- libs/testing/data-fixtures/src/lib/make-data-table-rows.spec.ts
Variant disposition
Fixed: Serializable rows · Stable row identity · Visible terminal states
Varied: Search and facet controls · Selection and bulk actions
States: default · filtered · selected · loading · empty
Falsifier: A repeated production pull cannot preserve context while filtering, sorting, paging, or acting on rows.
Fixed: Serializable rows · Stable row identity · Visible terminal states
Varied: Reduced density · Side-panel fit
States: default · compact · empty
Falsifier: A second dense side-panel workflow proves compact mode is the primary table composition.
Fixed: Serializable rows · Stable row identity · Visible terminal states
Varied: Large in-memory row count · Virtualized viewport
States: 90-row scan · search · vertical scroll
Falsifier: Production measurement proves server pagination is insufficient for a repeated large in-memory review job.
Quality proof
Table proofs cover labelled selection, reset, column visibility, sortable headers, and visible empty results.
- libs/app-client/ui-interactive/src/lib/organisms/DataTable/DataTable.spec.tsx
- libs/app-client/ui-interactive/src/lib/organisms/DataTable/createSelectionColumn.tsx
The reusable table owns horizontal overflow and CRM contacts verifies the scroll surface at mobile width.
- libs/app-client/ui-interactive/src/lib/organisms/DataTable/DataTable.spec.tsx
- apps/dreamineering/drmg-sales-e2e/src/e2e/crm/contacts/crm-contact-ui-flow.authenticated.spec.ts
Focused proofs cover controlled search, facets, reset, sorting, pagination, selection, bulk actions, and virtualization.
- libs/app-client/ui-interactive/src/lib/organisms/DataTableWorkflowStudy/DataTableWorkflowStudy.spec.tsx
- libs/app-client/ui-interactive/src/lib/organisms/DataTable/DataTable.spec.tsx
The deterministic performance harness measures render and sort samples, while the study proves bounded virtual rendering.
- libs/app-client/ui-interactive/src/lib/organisms/DataTablePerfHarness/DataTablePerfHarness.spec.tsx
- libs/testing/data-fixtures/src/lib/make-data-table-rows.spec.ts
Production flow
- Consumer
- apps/dreamineering/drmg-sales/src/app/(app)/[orgSlug]/crm/contacts/page.tsx
- Producer
- libs/app-server/app-server/src/actions/crm-contacts.actions.ts#listCrmContactsWithSummaryAction
- Application
- libs/application/src/lib/use-cases/sales__crm/contact-crud.use-case.ts#createContactCrudUseCases
- Port
- IAgentProfileHumanContactRepository
- Repository
- AgentProfileHumanContactDrizzleRepository
- Scope
- end-to-end
Fixture → model findings
iddomain-truth
Stable identity is required for row links, selection, and mutations. Owner: AgentProfileHumanContact.
account + workflow + ownerapplication-projection
Operational labels may join several domain records and should be mapped for each table job. Owner: Application query/projection.
fit + priority + statuspresentation-state
The generic study uses display signals; CRM maps only justified contact fields such as active status. Owner: Owning app-client mapper.
duefixture-only
The due label creates useful table pressure but does not prove a CRM persistence requirement. Owner: @stackmates/testing/data-fixtures.