← Back to suites
careervector-ui-unit zero-budget semantic-index

CareerVector UI unit

Vitest gate for pure-logic helpers under ui/src that previously each lived in their own singleton suite: DnD action helpers, profile-stack Node-tree extraction, JobImport modal parsing, the service-worker sub-doc SWR cache, and the live-capture e2e helper.

Behaviours 0 Tests 76 Graph 77 nodes · 76 edges Runner - CircleCI node_ui_unit Source qa/suites/careervector-ui-unit.yaml

Test witnesses

These tests belong to the suite. Missing implementation links stay visible until a code-backed graph claim records them.

TestStatusImplementationOpen
accepts custom keysToRedact patterns (case-insensitive substring)
@cv/ui · vitest · src/lib/__tests__/live-capture.test.ts
catalogmissing implementation linkTest
error mentions wiki/content/runbooks/LIVE-JOURNEY.md so callers know where to look
@cv/ui · vitest · src/lib/__tests__/live-capture.test.ts
catalogmissing implementation linkTest
matches built-in patterns case-insensitively
@cv/ui · vitest · src/lib/__tests__/live-capture.test.ts
catalogmissing implementation linkTest
preserves arrays and walks into their elements
@cv/ui · vitest · src/lib/__tests__/live-capture.test.ts
catalogmissing implementation linkTest
redacts api_key, token, secret, password at the top level
@cv/ui · vitest · src/lib/__tests__/live-capture.test.ts
catalogmissing implementation linkTest
redacts secret-like keys at any nested depth
@cv/ui · vitest · src/lib/__tests__/live-capture.test.ts
catalogmissing implementation linkTest
refuses to write when evidence contains a known provider key prefix
@cv/ui · vitest · src/lib/__tests__/live-capture.test.ts
catalogmissing implementation linkTest
returns primitive inputs unchanged
@cv/ui · vitest · src/lib/__tests__/live-capture.test.ts
catalogmissing implementation linkTest
returns the parsed cap when every var is set correctly
@cv/ui · vitest · src/lib/__tests__/live-capture.test.ts
catalogmissing implementation linkTest
sanitizes secret-like nested fields before writing
@cv/ui · vitest · src/lib/__tests__/live-capture.test.ts
catalogmissing implementation linkTest
throws on schema validation failure (missing required field)
@cv/ui · vitest · src/lib/__tests__/live-capture.test.ts
catalogmissing implementation linkTest
throws when CV_LIVE_JOURNEY is set to something other than "1"
@cv/ui · vitest · src/lib/__tests__/live-capture.test.ts
catalogmissing implementation linkTest
throws when CV_LIVE_JOURNEY is unset
@cv/ui · vitest · src/lib/__tests__/live-capture.test.ts
catalogmissing implementation linkTest
throws when CV_LIVE_MAX_COST_CHF is <= 0
@cv/ui · vitest · src/lib/__tests__/live-capture.test.ts
catalogmissing implementation linkTest
throws when CV_LIVE_MAX_COST_CHF is non-numeric
@cv/ui · vitest · src/lib/__tests__/live-capture.test.ts
catalogmissing implementation linkTest
throws when CV_LIVE_MAX_COST_CHF is unset
@cv/ui · vitest · src/lib/__tests__/live-capture.test.ts
catalogmissing implementation linkTest
throws when CV_LIVE_PROVIDER_OPT_IN is unset
@cv/ui · vitest · src/lib/__tests__/live-capture.test.ts
catalogmissing implementation linkTest
writes evidence.json and summary.md when the bundle is valid
@cv/ui · vitest · src/lib/__tests__/live-capture.test.ts
catalogmissing implementation linkTest
accepts http:// URLs
@cv/ui · vitest · src/lib/components/toolbar/modals/JobImport.test.ts
catalogmissing implementation linkTest
accepts https:// URLs
@cv/ui · vitest · src/lib/components/toolbar/modals/JobImport.test.ts
catalogmissing implementation linkTest
bulk mode reads from urls and splits on newlines
@cv/ui · vitest · src/lib/components/toolbar/modals/JobImport.test.ts
catalogmissing implementation linkTest
bulk mode skips blank lines mixed with valid URLs
@cv/ui · vitest · src/lib/components/toolbar/modals/JobImport.test.ts
catalogmissing implementation linkTest
clears emptyAttempted when called with valid URLs
@cv/ui · vitest · src/lib/components/toolbar/modals/JobImport.test.ts
catalogmissing implementation linkTest
clicking Single URL tab preserves bulk-mode textarea content across mode switches
@cv/ui · vitest · src/lib/components/toolbar/modals/JobImport.test.ts
catalogmissing implementation linkTest
does not enter processing loop when URLs are empty
@cv/ui · vitest · src/lib/components/toolbar/modals/JobImport.test.ts
catalogmissing implementation linkTest
enters processing loop when valid URLs are present
@cv/ui · vitest · src/lib/components/toolbar/modals/JobImport.test.ts
catalogmissing implementation linkTest
mode-toggle template does NOT contain emptyAttempted = false in onclick (Bug C fix)
@cv/ui · vitest · src/lib/components/toolbar/modals/JobImport.test.ts
catalogmissing implementation linkTest
rejects non-URL strings
@cv/ui · vitest · src/lib/components/toolbar/modals/JobImport.test.ts
catalogmissing implementation linkTest
returns empty array for blank input
@cv/ui · vitest · src/lib/components/toolbar/modals/JobImport.test.ts
catalogmissing implementation linkTest
sets emptyAttempted=true when called with no valid URLs (DOM mutation)
@cv/ui · vitest · src/lib/components/toolbar/modals/JobImport.test.ts
catalogmissing implementation linkTest
switching back to bulk preserves single-mode url field content
@cv/ui · vitest · src/lib/components/toolbar/modals/JobImport.test.ts
catalogmissing implementation linkTest
the input has the verbatim placeholder
@cv/ui · vitest · src/lib/components/toolbar/modals/JobImport.test.ts
catalogmissing implementation linkTest
the modal template contains the verbatim subtitle text
@cv/ui · vitest · src/lib/components/toolbar/modals/JobImport.test.ts
catalogmissing implementation linkTest
the single-mode label has no for= attribute (plain label, no htmlFor)
@cv/ui · vitest · src/lib/components/toolbar/modals/JobImport.test.ts
catalogmissing implementation linkTest
the single-mode submit button is labeled "Import"
@cv/ui · vitest · src/lib/components/toolbar/modals/JobImport.test.ts
catalogmissing implementation linkTest
the submit button carries data-testid="job-import-submit" in both modes
@cv/ui · vitest · src/lib/components/toolbar/modals/JobImport.test.ts
catalogmissing implementation linkTest
the url count helper text is present in bulk mode only
@cv/ui · vitest · src/lib/components/toolbar/modals/JobImport.test.ts
catalogmissing implementation linkTest
applies preset-specific transforms
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
does not call onCommit when finalize is never invoked (cancelled drag)
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
drops keys added by Svelte 5 reactive proxies / svelte-dnd-action
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
finalize after a no-consider lifecycle is a no-op
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
fires onCommit exactly once per finalize
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
fires onPreview during consider and never onCommit
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
is a no-op when called with no element
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
keeps generic SortableList instances disjoint by prefix
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
passes through arrays without a placeholder
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
pauses each id on consider exactly once
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
preserves explicit undefined values for listed keys
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
produces distinct types for different surfaces
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
releaseAll lifts pauses without a finalize call (component unmount path)
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
releases every paused id on finalize
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
removes the svelte-dnd-action placeholder
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
returns a function that mutates the provided element
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
returns an empty array for an empty input
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
returns only listed fields
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
runs the optional `extra` hook for caller-specific tweaks
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
scopes per-instance zones with a stable suffix
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
shares the kanban-status type across phases (cross-phase drag)
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
skips the shadow placeholder
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
strips the shadow placeholder from both consider and finalize
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
treats onPreview as optional
@cv/ui · vitest · src/lib/components/ui/dnd-helpers.test.ts
catalogmissing implementation linkTest
extracts the canonical Node tree from a LangTree slot
@cv/ui · vitest · src/lib/profile-stack.test.ts
catalogmissing implementation linkTest
prefers exact locale match over base-language fallback
@cv/ui · vitest · src/lib/profile-stack.test.ts
catalogmissing implementation linkTest
resolves locale fallback (de-CH → de → en)
@cv/ui · vitest · src/lib/profile-stack.test.ts
catalogmissing implementation linkTest
returns a deep-cloned tree decoupled from the input slot
@cv/ui · vitest · src/lib/profile-stack.test.ts
catalogmissing implementation linkTest
returns null for empty or malformed slots
@cv/ui · vitest · src/lib/profile-stack.test.ts
catalogmissing implementation linkTest
returns null when no map or no matching language is available
@cv/ui · vitest · src/lib/profile-stack.test.ts
catalogmissing implementation linkTest
does NOT write to cache on a 200 with `Cache-Control: no-store`
@cv/ui · vitest · src/lib/sw/sub-doc-swr.test.ts
catalogmissing implementation linkTest
does NOT write to cache on a 304 (no body to store)
@cv/ui · vitest · src/lib/sw/sub-doc-swr.test.ts
catalogmissing implementation linkTest
does NOT write to cache on a 5xx network response
@cv/ui · vitest · src/lib/sw/sub-doc-swr.test.ts
catalogmissing implementation linkTest
falls through to network on cache miss
@cv/ui · vitest · src/lib/sw/sub-doc-swr.test.ts
catalogmissing implementation linkTest
serves cached body even if the network revalidation throws
@cv/ui · vitest · src/lib/sw/sub-doc-swr.test.ts
catalogmissing implementation linkTest
serves the cached body on hit and returns immediately
@cv/ui · vitest · src/lib/sw/sub-doc-swr.test.ts
catalogmissing implementation linkTest
throws on cache miss + network failure (offline with no cache)
@cv/ui · vitest · src/lib/sw/sub-doc-swr.test.ts
catalogmissing implementation linkTest
writes to cache on a 200 with cacheable headers (cache miss)
@cv/ui · vitest · src/lib/sw/sub-doc-swr.test.ts
catalogmissing implementation linkTest
writing the same key twice (after a server clock bump) overwrites the cache entry
@cv/ui · vitest · src/lib/sw/sub-doc-swr.test.ts
catalogmissing implementation linkTest