dashboard-table-e2e zero-budget semantic-index
Dashboard table (E2E)
Pin the dashboard table end-to-end: column reorder, modal flows, table edge cases, form validation, deep job detail tabs, and the jobs + scoring path. Covers the main product surface where most users live.
Behaviours 0 Tests 154 Graph 155 nodes · 154 edges Runner - CircleCI - Source qa/suites/dashboard-table-e2e.yaml
Test witnesses
These tests belong to the suite. Missing implementation links stay visible until a code-backed graph claim records them.
| Test | Status | Implementation | Open |
|---|---|---|---|
column headers render after navigation @cv/ui · playwright · dashboard-column-reorder.spec.ts | catalog | missing implementation link | Test |
column order persists after page reload (order_state.update op) @cv/ui · playwright · dashboard-column-reorder.spec.ts | catalog | missing implementation link | Test |
pointer drag from one column header to another does not corrupt the table @cv/ui · playwright · dashboard-column-reorder.spec.ts | catalog | missing implementation link | Test |
"Auto-generate tailored CVs" checkbox is present and toggleable @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
"Back" in mapping step returns to upload step @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
"Open full CV page" link is present in footer @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
"Powered by Google" attribution is visible in footer @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
"Use tailored CV for CL generation" checkbox is present @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
"Your Home Base" section is present with address autocomplete input @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
"Your Transport Options" section lists three togglable modes @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
Close button (×) closes the modal @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
Close button closes the modal @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
Colors tab shows origin color selects @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
Done button closes the modal @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
Escape key closes the modal @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
Industry tab "Add Industry" button adds a new entry @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
Industry tab "Remove" button removes an entry @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
Industry tab "Reset to defaults" button appears after customization @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
Industry tab opens and shows the industry list @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
Industry tab shows built-in industries from INDUSTRIES config @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
Search button becomes enabled when query has text @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
Search button is disabled when query is empty @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
Settings tab shows Theme Colors and Pipeline Label controls @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
Source tab "Add Rule" button adds a source rule row @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
Source tab is selectable and shows "Add Rule" button when active @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
active tab is highlighted with bg-slate-800 text-white @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
adds selected RADAR candidate to the dashboard @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
auto-generate toggle state is preserved on reopen @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
close and reopen: modal is functional on second open @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
column mapping table has correct headers (File Header, Sample Value, Maps To) @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
each mapping row has a <select> with "(Skip Column)" option @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
empty workspace shows "No jobs with descriptions yet" placeholder @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
empty-state guidance is present before searching @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
file input accepts .csv, .xlsx, .xls @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
focus is trapped inside modal on open @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
four tabs are present: Source, Industry, Colors, Settings @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
initial state shows "Enter a search query to discover jobs" placeholder @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
job with description appears in job list @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
location input is visible @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
mapping step shows "Back" and "Import N Jobs" buttons @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
opens via Data > Import Data and renders dialog @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
opens via PipelineBar Enrich button and renders dialog @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
opens via PipelineBar RADAR button and renders dialog @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
opens via PipelineBar Tailor button and renders @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
opens via Visuals button and renders dialog @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
reopening preserves transport mode toggle state @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
search input is visible and receives focus on open @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
search returns aggregated RADAR candidates @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
source legend shows Google Jobs, Arbeitnow, Job-Room.ch @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
state resets to empty query on reopen (v2 $effect resets on isOpen) @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
state resets to upload step on close and reopen @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
title reads "Commute Calculator" @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
title reads "Job Radar" @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
title reads "Visuals" @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
transport mode checkbox is present and clickable @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
transport mode toggle inverts its checked state @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
upload step renders drop-zone with "Import Jobs" heading @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
uploading a CSV advances to the mapping step @cv/ui · playwright · dashboard-modals.spec.ts | catalog | missing implementation link | Test |
FileCell: AI generate (tailor) button visible for empty CV with description @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
FileCell: delete button present in popover (non-readOnly) @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
FileCell: file badge button opens popover with filename @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
FileCell: multiple misc files show stack icon with count @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
FileCell: upload button visible for empty CV slot @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
SourceLogo: empty source renders empty badge @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
SourceLogo: known source (LinkedIn) renders rule badge @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
SourceLogo: multiple jobs with different sources each get correct badge type @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
SourceLogo: unknown source renders fallback badge with deterministic color @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
cell: custom boolean column renders checkbox @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
cell: custom number column renders input with correct testid @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
cell: date column (applied_at) renders with correct testid @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
cell: score cell renders with correct testid @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
cell: status select cell renders and is interactive @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
cell: title cell renders with job-detail button @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
origin tint: AI provider (groq) fills salary → bg-secondary/10 tint applied @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
origin tint: absent origin → no tint @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
origin tint: human origin → no provider tint class @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
origin tint: mistral origin → bg-secondary/10 (same as all provider origins) @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
origin tint: system origin (score) → bg-base-200 tint @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
resize: column width change persists after page reload @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
resize: drag still works while a sort is active @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
resize: dragging right past current width increases column width @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
resize: min-width clamp prevents column collapsing below 40px @cv/ui · playwright · dashboard-table-edges.spec.ts | catalog | missing implementation link | Test |
Add Column button is visible in Evaluation Columns section @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
Escape key while editing cancels and restores previous title @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
URL with special chars in path is accepted without error @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
applied_at date input accepts valid date @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
column Add button is disabled when name is empty @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
column name is auto-converted to snake_case ID (special chars stripped) @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
column name with only whitespace keeps Add disabled @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
creating a new custom view adds it to the list @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
duplicate column ID is silently de-duped (_copy suffix) @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
email field accepts properly formatted email (no :invalid state) @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
empty key is not saved — save filters out blank providers @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
empty title commits without error and falls back to default display @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
entering only whitespace keeps submit disabled @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
error message clears when input is modified after a failed attempt @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
ftp:// URL (non-http) shows validation error @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
key input is type=text (not password) after masking applied @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
modal opens and Save & Recalculate button is always present @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
non-URL value shows validation error message @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
phone field accepts international format (no :invalid state) @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
preset views show as non-deletable in the list @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
rule value input appears for operators that need a value @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
salary field accepts numeric input (valid state after fill) @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
salary field has min=0 constraint @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
salary min input has min=0 attribute @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
salary min/max inputs are type=number and accept only numeric input @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
save button is present in Views modal @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
scoring disabled state shows overlay and disables interaction @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
social URL field accepts standard https URL (no :invalid state) @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
special-char key value (e.g. colons, slashes) is accepted without crash @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
status select renders as a <select> element @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
submit button is disabled while URL input is empty @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
title longer than 40 chars is truncated by maxlength attribute @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
very long URL (>2000 chars) does not crash — submit remains clickable @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
whitespace-only title commits as empty and falls back to default @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
workload field has min=0 max=100 constraints @cv/ui · playwright · forms-validation.spec.ts | catalog | missing implementation link | Test |
CommuteTab Letter Recipient section is visible with name, title, company fields @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
CommuteTab departure time input defaults to 08:00 @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
CommuteTab recalculate button is disabled when job has no location @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
CommuteTab settings controls (departure, return, office days) are visible @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
CommuteTab shows empty state when job has no location @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
CommuteTab shows no-home warning when home location is not configured @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
CommuteTab weekly minutes displayed when commute_config has computed_weekly_minutes @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
Company Research textarea shows seeded company_context value from API @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
Connections textarea shows seeded connections value from API @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
Ctrl+I keyboard shortcut wraps selected text with _ markers @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
KNOCKOUT badge shown when a K.O. boolean column triggers score knockout @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
MdToolbar Bold button wraps selected text with ** markers @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
MdToolbar Bullet button prefixes the line with - @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
MdToolbar Code button wraps selection with backtick markers @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
MdToolbar H2 button prefixes the line with ## @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
MdToolbar Italic button wraps selection with _ markers @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
MdToolbar Link button wraps selection as markdown link syntax @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
Scratchpad textarea shows seeded notes value from API @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
all three IntelTab sections and all three textareas are present @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
bold and italic markdown syntax renders as <strong> and <em> in the prose preview @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
boolean K.O. column renders with checkbox and K.O. badge when value is false (knockout) @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
editing description in Edit mode and switching to Preview shows updated content @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
empty description shows the empty-state placeholder, not a prose container @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
heading and list markdown renders as <h2>, <ul>/<li> in the prose preview @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
inline code markdown renders as <code> in the prose preview @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
link markdown renders as <a> with correct href in the prose preview @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
missing-data state: no custom columns shows the no-columns message @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
numeric custom column row renders with label and input, AI origin badge shown after evaluate @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
score breakdown value matches the persisted evaluation score @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
typing in the Scratchpad textarea and blurring updates the value (Yjs commit-on-blur) @cv/ui · playwright · jobdetail-tabs-deep.spec.ts | catalog | missing implementation link | Test |
After a job is scored, opening the Scorecard tab in JobDetail shows the score bar @cv/ui · playwright · jobs-and-scoring.spec.ts | catalog | missing implementation link | Test |
Clicking the Description tab shows markdown preview for a job that has a description @cv/ui · playwright · jobs-and-scoring.spec.ts | catalog | missing implementation link | Test |
In Edit mode, Ctrl+B wraps selected text in Description textarea with markdown bold markers @cv/ui · playwright · jobs-and-scoring.spec.ts | catalog | missing implementation link | Test |
Opening JobDetail and clicking the Intel tab renders Connections, Company Research, and Scratchpad textareas @cv/ui · playwright · jobs-and-scoring.spec.ts | catalog | missing implementation link | Test |
User creates a new job, fills in title and organisation, job appears on the dashboard @cv/ui · playwright · jobs-and-scoring.spec.ts | catalog | missing implementation link | Test |
User deletes a job; job is removed from the dashboard immediately (optimistic Y.Doc op) @cv/ui · playwright · jobs-and-scoring.spec.ts | catalog | missing implementation link | Test |
User edits a job title inline; Y.Doc optimistic update is reflected immediately @cv/ui · playwright · jobs-and-scoring.spec.ts | catalog | missing implementation link | Test |