← Back to suites
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.

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