{"numFailedTestSuites":1,"numFailedTests":2,"numPassedTestSuites":0,"numPassedTests":0,"numPendingTestSuites":0,"numPendingTests":22,"numRuntimeErrorTestSuites":0,"numTodoTests":0,"numTotalTestSuites":1,"numTotalTests":24,"openHandles":[],"snapshot":{"added":0,"didUpdate":false,"failure":false,"filesAdded":0,"filesRemoved":0,"filesRemovedList":[],"filesUnmatched":0,"filesUpdated":0,"matched":0,"total":0,"unchecked":0,"uncheckedKeysByFile":[],"unmatched":0,"updated":0},"startTime":1793711255511,"success":false,"testResults":[{"assertionResults":[{"ancestorTitles":[],"duration":185,"failing":false,"failureDetails":[{"name":"TestingLibraryElementError"}],"failureMessages":["TestingLibraryElementError: Unable to find an element with the text: Modern. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.\n\nIgnored nodes: comments, script, style\n\u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mFrontend CV\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mmodern\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mEN\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mPublic\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mUpdated 12/10/2026 · version 2\u001b[0m\n \u001b[0m · Frontend Engineer at Northstar\u001b[0m\n \u001b[36m\u001b[39m\n\u001b[36m\u001b[39m\n at Object.getElementError (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\@testing-library\\dom\\dist\\config.js:37:19)\n at C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\@testing-library\\dom\\dist\\query-helpers.js:76:38\n at C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\@testing-library\\dom\\dist\\query-helpers.js:52:17\n at C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\@testing-library\\dom\\dist\\query-helpers.js:95:19\n at getByText (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\cv-builder-page.test.tsx:77:23)"],"fullName":"en library identifies templates by their human label and retains an unknown legacy identifier","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262371,"status":"failed","title":"en library identifies templates by their human label and retains an unknown legacy identifier"},{"ancestorTitles":[],"duration":61,"failing":false,"failureDetails":[{"name":"TestingLibraryElementError"}],"failureMessages":["TestingLibraryElementError: Unable to find an element with the text: Moderne. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.\n\nIgnored nodes: comments, script, style\n\u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mFrontend CV\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mmodern\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mEN\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mOffentlig\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mOppdatert 12.10.2026 · versjon 2\u001b[0m\n \u001b[0m · Frontend Engineer hos Northstar\u001b[0m\n \u001b[36m\u001b[39m\n\u001b[36m\u001b[39m\n at Object.getElementError (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\@testing-library\\dom\\dist\\config.js:37:19)\n at C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\@testing-library\\dom\\dist\\query-helpers.js:76:38\n at C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\@testing-library\\dom\\dist\\query-helpers.js:52:17\n at C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\@testing-library\\dom\\dist\\query-helpers.js:95:19\n at getByText (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\cv-builder-page.test.tsx:77:23)"],"fullName":"nb library identifies templates by their human label and retains an unknown legacy identifier","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262609,"status":"failed","title":"nb library identifies templates by their human label and retains an unknown legacy identifier"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"blank creation explicitly excludes all profile sections and contact even after template selection","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"blank creation explicitly excludes all profile sections and contact even after template selection"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"profile creation includes only deliberately selected available sections and contact","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"profile creation includes only deliberately selected available sections and contact"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"unavailable profile sections block profile creation and allow an explicit blank fallback","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"unavailable profile sections block profile creation and allow an explicit blank fallback"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"export validation decodes structured and blob errors without relabelling unknown failures","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"export validation decodes structured and blob errors without relabelling unknown failures"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"the CV library has a section heading and announces its held initial read without showing an empty result","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"the CV library has a section heading and announces its held initial read without showing an empty result"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"a failed CV list read has an explicit retry that clears the stale failure after recovery","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"a failed CV list read has an explicit retry that clears the stale failure after recovery"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"a live language change retains an open CV name and template draft without refetching library data","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"a live language change retains an open CV name and template draft without refetching library data"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"held CV creation locks the draft and gallery, then keeps a failed draft for an explicit retry","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"held CV creation locks the draft and gallery, then keeps a failed draft for an explicit retry"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"a locked CV template remains identifiable and cannot change the creation request","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"a locked CV template remains identifiable and cannot change the creation request"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"a held duplicate blocks another action for the same CV and shows the persisted refreshed copy","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"a held duplicate blocks another action for the same CV and shows the persisted refreshed copy"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"rename reads the current revision and preserves its settings when saving the new name","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"rename reads the current revision and preserves its settings when saving the new name"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"a rename conflict keeps the original library entry and never retries the write automatically","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"a rename conflict keeps the original library entry and never retries the write automatically"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"cancelling deletion returns focus to the surviving CV action control without removing the CV","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"cancelling deletion returns focus to the surviving CV action control without removing the CV"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"a failed creation keeps its draft and translates its failure after closing and reopening in another language","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"a failed creation keeps its draft and translates its failure after closing and reopening in another language"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"generic PDF failure follows the current language both after failure and when a held request fails","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"generic PDF failure follows the current language both after failure and when a held request fails"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"a held deletion preserves focus moved to another surviving control before the response arrives","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"a held deletion preserves focus moved to another surviving control before the response arrives"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"PDF status 503 shows an actionable message without retrying","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"PDF status 503 shows an actionable message without retrying"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"PDF status 504 shows an actionable message without retrying","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"PDF status 504 shows an actionable message without retrying"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"lists existing CVs from the variants API","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"lists existing CVs from the variants API"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"shows the empty state and creates a CV then navigates to the editor","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"shows the empty state and creates a CV then navigates to the editor"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"CV dashboard and create flow render in Bokmål","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"CV dashboard and create flow render in Bokmål"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"CV deletion requires confirmation and supports cancellation","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793711262671,"status":"pending","title":"CV deletion requires confirmation and supports cancellation"}],"endTime":1793711262694,"message":" ● en library identifies templates by their human label and retains an unknown legacy identifier\n\n TestingLibraryElementError: Unable to find an element with the text: Modern. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.\n\n Ignored nodes: comments, script, style\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mFrontend CV\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mmodern\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mEN\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mPublic\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mUpdated 12/10/2026 · version 2\u001b[0m\n \u001b[0m · Frontend Engineer at Northstar\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n\n 75 | renderPage();\n 76 | const card = (await screen.findByText(existingCv.name)).closest('[role=\"link\"]') as HTMLElement;\n > 77 | expect(within(card).getByText(language === 'nb' ? translations.nb.cvTemplateModernName : 'Modern')).toBeVisible();\n | ^\n 78 | const legacy = screen.getByText('Legacy CV').closest('[role=\"link\"]') as HTMLElement;\n 79 | expect(within(legacy).getByText('legacy-template')).toBeVisible();\n 80 | expect(mockedApi.put).not.toHaveBeenCalled();\n\n at Object.getElementError (node_modules/@testing-library/dom/dist/config.js:37:19)\n at node_modules/@testing-library/dom/dist/query-helpers.js:76:38\n at node_modules/@testing-library/dom/dist/query-helpers.js:52:17\n at node_modules/@testing-library/dom/dist/query-helpers.js:95:19\n at getByText (src/cv-builder-page.test.tsx:77:23)\n\n ● nb library identifies templates by their human label and retains an unknown legacy identifier\n\n TestingLibraryElementError: Unable to find an element with the text: Moderne. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.\n\n Ignored nodes: comments, script, style\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mFrontend CV\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mmodern\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mEN\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mOffentlig\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mOppdatert 12.10.2026 · versjon 2\u001b[0m\n \u001b[0m · Frontend Engineer hos Northstar\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n\n 75 | renderPage();\n 76 | const card = (await screen.findByText(existingCv.name)).closest('[role=\"link\"]') as HTMLElement;\n > 77 | expect(within(card).getByText(language === 'nb' ? translations.nb.cvTemplateModernName : 'Modern')).toBeVisible();\n | ^\n 78 | const legacy = screen.getByText('Legacy CV').closest('[role=\"link\"]') as HTMLElement;\n 79 | expect(within(legacy).getByText('legacy-template')).toBeVisible();\n 80 | expect(mockedApi.put).not.toHaveBeenCalled();\n\n at Object.getElementError (node_modules/@testing-library/dom/dist/config.js:37:19)\n at node_modules/@testing-library/dom/dist/query-helpers.js:76:38\n at node_modules/@testing-library/dom/dist/query-helpers.js:52:17\n at node_modules/@testing-library/dom/dist/query-helpers.js:95:19\n at getByText (src/cv-builder-page.test.tsx:77:23)\n","name":"C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\cv-builder-page.test.tsx","startTime":1793711257327,"status":"failed","summary":""}],"wasInterrupted":false}