{"numFailedTestSuites":3,"numFailedTests":6,"numPassedTestSuites":0,"numPassedTests":40,"numPendingTestSuites":0,"numPendingTests":0,"numRuntimeErrorTestSuites":0,"numTodoTests":0,"numTotalTestSuites":3,"numTotalTests":46,"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":1793693300936,"success":false,"testResults":[{"assertionResults":[{"ancestorTitles":[],"duration":52,"failing":false,"failureDetails":[{"name":"TestingLibraryElementError"}],"failureMessages":["TestingLibraryElementError: Unable to find an accessible element with the role \"button\" and name \"Continue setup\"\n\nHere are the accessible roles:\n\n status:\n\n Name \"Destination\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n\nIgnored nodes: comments, script, style\n\u001b[36m\u001b[39m\n \u001b[36m
\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0m/\u001b[0m\n \u001b[36m\u001b[39m\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 Object.getByRole (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\onboarding-checklist.test.tsx:63:26)\n at Promise.finally.completed (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1561:28)\n at new Promise ()\n at callAsyncCircusFn (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1501:10)\n at _callCircusTest (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1011:40)\n at _runTest (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:951:3)\n at C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:853:7\n at _runTestsForDescribeBlock (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:866:11)\n at run (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:765:3)\n at runAndTransformResultsToJestFormat (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1993:21)\n at jestAdapter (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\runner.js:111:19)\n at runTestInternal (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-runner\\build\\index.js:276:16)\n at runTest (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-runner\\build\\index.js:344:7)"],"fullName":"a dismissed optional checklist resumes without losing source-backed progress","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"startAt":1793693304214,"status":"failed","title":"a dismissed optional checklist resumes without losing source-backed progress"},{"ancestorTitles":[],"duration":144,"failing":false,"failureDetails":[{"name":"TestingLibraryElementError"}],"failureMessages":["TestingLibraryElementError: Unable to find an accessible element with the role \"button\" and name `/^Skip for now:/`\n\nHere are the accessible roles:\n\n region:\n\n Name \"Get set up\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n banner:\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n heading:\n\n Name \"Get set up\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n paragraph:\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n button:\n\n Name \"Dismiss setup checklist\":\n \u001b[36m\u001b[39m\n\n Name \"Add job\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n progressbar:\n\n Name \"3 of 4 done\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n list:\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n listitem:\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n img:\n\n Name \"1 of 1 done\":\n \u001b[36m\u001b[39m\n\n Name \"1 of 1 done\":\n \u001b[36m\u001b[39m\n\n Name \"1 of 1 done\":\n \u001b[36m\u001b[39m\n\n Name \"0 of 1 done\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n status:\n\n Name \"Destination\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\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[0mGet set up\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n banner:\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n heading:\n\n Name \"Get set up\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n paragraph:\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n button:\n\n Name \"Dismiss setup checklist\":\n \u001b[36m\u001b[39m\n\n Name \"Add job\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n progressbar:\n\n Name \"3 of 4 done\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n list:\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n listitem:\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n img:\n\n Name \"1 of 1 done\":\n \u001b[36m\u001b[39m\n\n Name \"1 of 1 done\":\n \u001b[36m\u001b[39m\n\n Name \"1 of 1 done\":\n \u001b[36m\u001b[39m\n\n Name \"0 of 1 done\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n status:\n\n Name \"Destination\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\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[0mGet set up\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n\n Ignored nodes: comments, script, style\n \u001b[36m\u001b[39m\n \u001b[36m
\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0m/\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m
\u001b[39m\n \u001b[36m\u001b[39m\n\n 61 | const view = render();\n 62 | expect(mockedApi.get).not.toHaveBeenCalled();\n > 63 | fireEvent.click(screen.getByRole('button', { name: 'Continue setup' }));\n | ^\n 64 | expect(await screen.findByText('3 / 4')).toBeInTheDocument();\n 65 | expect(localStorage.getItem('onboardingDismissed:owner-a')).toBe('false');\n 66 | view.unmount(); render();\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 Object.getByRole (src/onboarding-checklist.test.tsx:63:26)\n\n ● individual skips persist for their owner but do not count as completed data\n\n TestingLibraryElementError: Unable to find an accessible element with the role \"button\" and name `/^Skip for now:/`\n\n Here are the accessible roles:\n\n region:\n\n Name \"Get set up\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n banner:\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n heading:\n\n Name \"Get set up\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n paragraph:\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n button:\n\n Name \"Dismiss setup checklist\":\n \u001b[36m\u001b[39m\n\n Name \"Add job\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n progressbar:\n\n Name \"3 of 4 done\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n list:\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n listitem:\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n img:\n\n Name \"1 of 1 done\":\n \u001b[36m\u001b[39m\n\n Name \"1 of 1 done\":\n \u001b[36m\u001b[39m\n\n Name \"1 of 1 done\":\n \u001b[36m\u001b[39m\n\n Name \"0 of 1 done\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n status:\n\n Name \"Destination\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\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[0mGet set up\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m {\n 72 | const view = render(); await screen.findByText('3 / 4');\n > 73 | fireEvent.click(screen.getByRole('button', { name: /^Skip for now:/ }));\n | ^\n 74 | expect(screen.getByRole('progressbar', { name: '3 of 4 done' })).toHaveAttribute('aria-valuenow', '75');\n 75 | expect(localStorage.getItem('onboardingSkipped:owner-a')).toBe('[\"/jobs\"]');\n 76 | view.unmount(); render(); await screen.findByText('3 / 4');\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 Object.getByRole (src/onboarding-checklist.test.tsx:73:26)\n\n ● on-demand walkthrough changes guidance and focus without changing completion or connecting providers\n\n TestingLibraryElementError: Unable to find an accessible element with the role \"button\" and name \"Show walkthrough\"\n\n Here are the accessible roles:\n\n region:\n\n Name \"Get set up\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n banner:\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n heading:\n\n Name \"Get set up\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n paragraph:\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n button:\n\n Name \"Dismiss setup checklist\":\n \u001b[36m\u001b[39m\n\n Name \"Add job\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n progressbar:\n\n Name \"3 of 4 done\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n list:\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n listitem:\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n img:\n\n Name \"1 of 1 done\":\n \u001b[36m\u001b[39m\n\n Name \"1 of 1 done\":\n \u001b[36m\u001b[39m\n\n Name \"1 of 1 done\":\n \u001b[36m\u001b[39m\n\n Name \"0 of 1 done\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n status:\n\n Name \"Destination\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\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[0mGet set up\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m {\n 83 | render(); await screen.findByText('3 / 4');\n > 84 | fireEvent.click(screen.getByRole('button', { name: 'Show walkthrough' }));\n | ^\n 85 | const guide = screen.getByRole('region', { name: translations.en.onboardingStepProfile });\n 86 | expect(within(guide).getByRole('heading')).toHaveFocus();\n 87 | fireEvent.click(within(guide).getByRole('button', { name: 'Next step' }));\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 Object.getByRole (src/onboarding-checklist.test.tsx:84:26)\n","name":"C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\onboarding-checklist.test.tsx","startTime":1793693301807,"status":"failed","summary":""},{"assertionResults":[{"ancestorTitles":[],"duration":4068,"failing":false,"failureDetails":[{"name":"TestingLibraryElementError"}],"failureMessages":["Error: Unable to find role=\"region\" and name \"Your week\"\n\nIgnored nodes: comments, script, style\n\u001b[36m\u001b[39m\n \u001b[36m
\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0m/\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m
\u001b[39m\n \u001b[0mSetup retained\u001b[0m\n \u001b[36m
\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mtrue\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m)\n at callAsyncCircusFn (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1501:10)\n at _callCircusTest (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1011:40)\n at _runTest (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:951:3)\n at C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:853:7\n at _runTestsForDescribeBlock (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:866:11)\n at run (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:765:3)\n at runAndTransformResultsToJestFormat (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1993:21)\n at jestAdapter (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\runner.js:111:19)\n at runTestInternal (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-runner\\build\\index.js:276:16)\n at runTest (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-runner\\build\\index.js:344:7)"],"fullName":"A1 week glance shows recorded upcoming dates from attention data without inventing missing dates","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793693306280,"status":"failed","title":"A1 week glance shows recorded upcoming dates from attention data without inventing missing dates"},{"ancestorTitles":[],"duration":152,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[PRES-S01] exact monthly values, sample, custom statuses and separate salary group remain readable","invocations":1,"location":null,"numPassingAsserts":7,"retryReasons":[],"startAt":1793693310348,"status":"passed","title":"[PRES-S01] exact monthly values, sample, custom statuses and separate salary group remain readable"},{"ancestorTitles":[],"duration":713,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[PRES-S02] all widget visibility choices save and survive remount","invocations":1,"location":null,"numPassingAsserts":8,"retryReasons":[],"startAt":1793693310500,"status":"passed","title":"[PRES-S02] all widget visibility choices save and survive remount"},{"ancestorTitles":[],"duration":123,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[PRES-S01] a trends failure retains summary and retries without showing a false zero response rate","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793693311213,"status":"passed","title":"[PRES-S01] a trends failure retains summary and retries without showing a false zero response rate"},{"ancestorTitles":[],"duration":59,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[PRES-S01] a summary failure does not suppress independent trends","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793693311336,"status":"passed","title":"[PRES-S01] a summary failure does not suppress independent trends"},{"ancestorTitles":[],"duration":203,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[PRES-J05 J09 S01] raw status and company destinations use supported exact query fields","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793693311395,"status":"passed","title":"[PRES-J05 J09 S01] raw status and company destinations use supported exact query fields"},{"ancestorTitles":[],"duration":195,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[PRES-S01 S02] period changes only reload trends and retain current snapshot meaning","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793693311598,"status":"passed","title":"[PRES-S01 S02] period changes only reload trends and retain current snapshot meaning"},{"ancestorTitles":[],"duration":93,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[PRES-S01] zero activity is an explicit window-empty state without a fabricated response percentage","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793693311793,"status":"passed","title":"[PRES-S01] zero activity is an explicit window-empty state without a fabricated response percentage"},{"ancestorTitles":[],"duration":76,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[PRES-S01] activity chart uses one shared zero-based scale and a readable legend","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793693311886,"status":"passed","title":"[PRES-S01] activity chart uses one shared zero-based scale and a readable legend"},{"ancestorTitles":[],"duration":148,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[P7-02 PRES-S01 S02] setup guidance treats pending and failed summaries as unknown until their owner retries","invocations":1,"location":null,"numPassingAsserts":5,"retryReasons":[],"startAt":1793693311962,"status":"passed","title":"[P7-02 PRES-S01 S02] setup guidance treats pending and failed summaries as unknown until their owner retries"}],"endTime":1793693312114,"message":" ● A1 week glance shows recorded upcoming dates from attention data without inventing missing dates\n\n Unable to find role=\"region\" and name \"Your week\"\n\n Ignored nodes: comments, script, style\n \u001b[36m\u001b[39m\n \u001b[36m
\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0m/\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m
\u001b[39m\n \u001b[0mSetup retained\u001b[0m\n \u001b[36m
\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mtrue\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m Promise.resolve({ data: url.endsWith('/reminders') ? jobs : data(url) }) as any);\n 41 | open();\n > 42 | const week = await screen.findByRole('region', { name: 'Your week' });\n | ^\n 43 | expect(within(week).getByText('School vacancy')).toBeVisible();\n 44 | expect(within(week).queryByText('No recorded date')).not.toBeInTheDocument();\n 45 | expect(within(week).getByRole('link', { name: /School vacancy/ })).toHaveAttribute('href', '/jobs/91');\n\n at waitForWrapper (node_modules/@testing-library/dom/dist/wait-for.js:163:27)\n at node_modules/@testing-library/dom/dist/query-helpers.js:86:33\n at Object.findByRole (src/dashboard-presentation.test.tsx:42:29)\n","name":"C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\dashboard-presentation.test.tsx","startTime":1793693305524,"status":"failed","summary":""},{"assertionResults":[{"ancestorTitles":[],"duration":2,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"legacy preferences migrate to bounded geometry while preserving order, visibility and revision","invocations":1,"location":null,"numPassingAsserts":9,"retryReasons":[],"startAt":1793693312342,"status":"passed","title":"legacy preferences migrate to bounded geometry while preserving order, visibility and revision"},{"ancestorTitles":[],"duration":0,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"schema two preserves chosen hidden geometry without resetting the owner revision","invocations":1,"location":null,"numPassingAsserts":4,"retryReasons":[],"startAt":1793693312344,"status":"passed","title":"schema two preserves chosen hidden geometry without resetting the owner revision"},{"ancestorTitles":[],"duration":1,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"default catalogue preserves every section and supported widths","invocations":1,"location":null,"numPassingAsserts":4,"retryReasons":[],"startAt":1793693312344,"status":"passed","title":"default catalogue preserves every section and supported widths"},{"ancestorTitles":[],"duration":2,"failing":false,"failureDetails":[{"matcherResult":{"message":"expect(received).toMatchObject(expected)\n\n- Expected - 1\n+ Received + 1\n\n Object {\n- \"id\": \"attention\",\n+ \"id\": \"cards\",\n \"visible\": true,\n \"w\": 12,\n \"x\": 0,\n \"y\": 0,\n }","pass":false}}],"failureMessages":["Error: expect(received).toMatchObject(expected)\n\n- Expected - 1\n+ Received + 1\n\n Object {\n- \"id\": \"attention\",\n+ \"id\": \"cards\",\n \"visible\": true,\n \"w\": 12,\n \"x\": 0,\n \"y\": 0,\n }\n at toMatchObject (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\dashboardLayout.test.ts:43:29)\n at Object. (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-each\\build\\index.js:80:140)\n at Promise.finally.completed (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1561:28)\n at new Promise ()\n at callAsyncCircusFn (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1501:10)\n at _callCircusTest (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1011:40)\n at _runTest (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:951:3)\n at C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:853:7\n at _runTestsForDescribeBlock (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:866:11)\n at run (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:765:3)\n at runAndTransformResultsToJestFormat (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1993:21)\n at jestAdapter (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\runner.js:111:19)\n at runTestInternal (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-runner\\build\\index.js:276:16)\n at runTest (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-runner\\build\\index.js:344:7)"],"fullName":"new schema 1 preferences use task-first A1 defaults without omitting widgets","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793693312345,"status":"failed","title":"new schema 1 preferences use task-first A1 defaults without omitting widgets"},{"ancestorTitles":[],"duration":0,"failing":false,"failureDetails":[{"matcherResult":{"message":"expect(received).toMatchObject(expected)\n\n- Expected - 1\n+ Received + 1\n\n Object {\n- \"id\": \"attention\",\n+ \"id\": \"cards\",\n \"visible\": true,\n \"w\": 12,\n \"x\": 0,\n \"y\": 0,\n }","pass":false}}],"failureMessages":["Error: expect(received).toMatchObject(expected)\n\n- Expected - 1\n+ Received + 1\n\n Object {\n- \"id\": \"attention\",\n+ \"id\": \"cards\",\n \"visible\": true,\n \"w\": 12,\n \"x\": 0,\n \"y\": 0,\n }\n at toMatchObject (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\dashboardLayout.test.ts:43:29)\n at Object. (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-each\\build\\index.js:80:140)\n at Promise.finally.completed (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1561:28)\n at new Promise ()\n at callAsyncCircusFn (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1501:10)\n at _callCircusTest (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1011:40)\n at _runTest (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:951:3)\n at C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:853:7\n at _runTestsForDescribeBlock (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:866:11)\n at run (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:765:3)\n at runAndTransformResultsToJestFormat (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\jestAdapterInit.js:1993:21)\n at jestAdapter (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-circus\\build\\runner.js:111:19)\n at runTestInternal (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-runner\\build\\index.js:276:16)\n at runTest (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\node_modules\\jest-runner\\build\\index.js:344:7)"],"fullName":"new schema 2 preferences use task-first A1 defaults without omitting widgets","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793693312353,"status":"failed","title":"new schema 2 preferences use task-first A1 defaults without omitting widgets"},{"ancestorTitles":[],"duration":0,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"saved layouts retain known order, reject duplicates and append missing sections hidden","invocations":1,"location":null,"numPassingAsserts":5,"retryReasons":[],"startAt":1793693312354,"status":"passed","title":"saved layouts retain known order, reject duplicates and append missing sections hidden"},{"ancestorTitles":[],"duration":0,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"invalid input has safe defaults: null","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"startAt":1793693312354,"status":"passed","title":"invalid input has safe defaults: null"},{"ancestorTitles":[],"duration":0,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"invalid input has safe defaults: {}","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"startAt":1793693312355,"status":"passed","title":"invalid input has safe defaults: {}"},{"ancestorTitles":[],"duration":0,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"invalid input has safe defaults: {\"version\":3,\"revision\":8,\"widgets\":[]}","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"startAt":1793693312355,"status":"passed","title":"invalid input has safe defaults: {\"version\":3,\"revision\":8,\"widgets\":[]}"},{"ancestorTitles":[],"duration":0,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"invalid input has safe defaults: {\"version\":1,\"revision\":-1,\"widgets\":[]}","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"startAt":1793693312355,"status":"passed","title":"invalid input has safe defaults: {\"version\":1,\"revision\":-1,\"widgets\":[]}"}],"endTime":1793693312359,"message":" ● new schema 1 preferences use task-first A1 defaults without omitting widgets\n\n expect(received).toMatchObject(expected)\n\n - Expected - 1\n + Received + 1\n\n Object {\n - \"id\": \"attention\",\n + \"id\": \"cards\",\n \"visible\": true,\n \"w\": 12,\n \"x\": 0,\n \"y\": 0,\n }\n\n 41 | test.each([1, 2])('new schema %s preferences use task-first A1 defaults without omitting widgets', version => {\n 42 | const layout = normalizeDashboardLayout({ version, revision: 0, widgets: [] });\n > 43 | expect(layout.widgets[0]).toMatchObject({ id: 'attention', visible: true, x: 0, y: 0, w: 12 });\n | ^\n 44 | expect(layout.widgets.findIndex(widget => widget.id === 'cards')).toBeGreaterThan(layout.widgets.findIndex(widget => widget.id === 'funnel'));\n 45 | expect(layout.widgets).toHaveLength(WIDGETS.length);\n 46 | const visible = layout.widgets.filter(widget => widget.visible);\n\n at toMatchObject (src/dashboardLayout.test.ts:43:29)\n\n ● new schema 2 preferences use task-first A1 defaults without omitting widgets\n\n expect(received).toMatchObject(expected)\n\n - Expected - 1\n + Received + 1\n\n Object {\n - \"id\": \"attention\",\n + \"id\": \"cards\",\n \"visible\": true,\n \"w\": 12,\n \"x\": 0,\n \"y\": 0,\n }\n\n 41 | test.each([1, 2])('new schema %s preferences use task-first A1 defaults without omitting widgets', version => {\n 42 | const layout = normalizeDashboardLayout({ version, revision: 0, widgets: [] });\n > 43 | expect(layout.widgets[0]).toMatchObject({ id: 'attention', visible: true, x: 0, y: 0, w: 12 });\n | ^\n 44 | expect(layout.widgets.findIndex(widget => widget.id === 'cards')).toBeGreaterThan(layout.widgets.findIndex(widget => widget.id === 'funnel'));\n 45 | expect(layout.widgets).toHaveLength(WIDGETS.length);\n 46 | const visible = layout.widgets.filter(widget => widget.visible);\n\n at toMatchObject (src/dashboardLayout.test.ts:43:29)\n","name":"C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\dashboardLayout.test.ts","startTime":1793693312124,"status":"failed","summary":""}],"wasInterrupted":false}