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