{"numFailedTestSuites":1,"numFailedTests":3,"numPassedTestSuites":0,"numPassedTests":0,"numPendingTestSuites":0,"numPendingTests":21,"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":1793716189064,"success":false,"testResults":[{"assertionResults":[{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"each selected Settings section has a named panel linked to its tab and remains selectable on phones","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716194520,"status":"pending","title":"each selected Settings section has a named panel linked to its tab and remains selectable on phones"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"settings view has no accent picker and uses one follow-up section, one notification section","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716194520,"status":"pending","title":"settings view has no accent picker and uses one follow-up section, one notification section"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"AI privacy settings are server-backed and external processing is local-only by default","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716194520,"status":"pending","title":"AI privacy settings are server-backed and external processing is local-only by default"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[PRES-S03] failed notification save preserves the draft for an explicit retry","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716194520,"status":"pending","title":"[PRES-S03] failed notification save preserves the draft for an explicit retry"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[PRES-S03 PRES-W11] saving one follow-up rule preserves the other scenarios","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716194520,"status":"pending","title":"[PRES-S03 PRES-W11] saving one follow-up rule preserves the other scenarios"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[PRES-S03 PRES-J05] table and theme preferences keep their independent callbacks","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716194520,"status":"pending","title":"[PRES-S03 PRES-J05] table and theme preferences keep their independent callbacks"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[PRES-S03 W11] the Settings session retains independent pending Rules fields across tab unmounts","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716194520,"status":"pending","title":"[PRES-S03 W11] the Settings session retains independent pending Rules fields across tab unmounts"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[PRES-S03] failed Rules save remains actionable after tab return and explicit retry clears dirty state","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716194520,"status":"pending","title":"[PRES-S03] failed Rules save remains actionable after tab return and explicit retry clears dirty state"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[PRES-S03] invalid and empty Rules input and associated validation survive internal navigation","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716194520,"status":"pending","title":"[PRES-S03] invalid and empty Rules input and associated validation survive internal navigation"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[PRES-S03] explicit discard resets only the Rules draft to its saved baseline without writing","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716194520,"status":"pending","title":"[PRES-S03] explicit discard resets only the Rules draft to its saved baseline without writing"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[PRES-S03] later edits stay dirty when an earlier Rules save completes after a tab switch","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716194520,"status":"pending","title":"[PRES-S03] later edits stay dirty when an earlier Rules save completes after a tab switch"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[PRES-S03 E09] leaving the Settings session disposes its draft and pending responses","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716194520,"status":"pending","title":"[PRES-S03 E09] leaving the Settings session disposes its draft and pending responses"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[PRES-S03] switching locale while Rules is hidden does not reload or overwrite its pending draft","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716194520,"status":"pending","title":"[PRES-S03] switching locale while Rules is hidden does not reload or overwrite its pending draft"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[PRES-S03] Rules draft updates do not refetch an unrelated notification preference","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716194520,"status":"pending","title":"[PRES-S03] Rules draft updates do not refetch an unrelated notification preference"},{"ancestorTitles":[],"duration":360,"failing":false,"failureDetails":[{"name":"TestingLibraryElementError"}],"failureMessages":["TestingLibraryElementError: Found multiple elements with the role \"tab\"\n\nHere are the matching elements:\n\nIgnored nodes: comments, script, style\n\u001b[36m\u001b[39m\n \u001b[0mGeneral\u001b[0m\n\u001b[36m\u001b[39m\n\nIgnored nodes: comments, script, style\n\u001b[36m\u001b[39m\n \u001b[0mFollow-ups\u001b[0m\n\u001b[36m\u001b[39m\n\nIgnored nodes: comments, script, style\n\u001b[36m\u001b[39m\n \u001b[0mNotifications\u001b[0m\n\u001b[36m\u001b[39m\n\nIgnored nodes: comments, script, style\n\u001b[36m\u001b[39m\n \u001b[0mBackup\u001b[0m\n\u001b[36m\u001b[39m\n\n(If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)).\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[0mSettings section\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mGeneral\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[0mSettings section\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[0mGeneral\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mFollow-ups\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mNotifications\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mBackup\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 (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":"en Automation reuses the saved notification preference and explicit save","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716194520,"status":"failed","title":"en Automation reuses the saved notification preference and explicit save"},{"ancestorTitles":[],"duration":142,"failing":false,"failureDetails":[{"name":"TestingLibraryElementError"}],"failureMessages":["TestingLibraryElementError: Found multiple elements with the role \"tab\"\n\nHere are the matching elements:\n\nIgnored nodes: comments, script, style\n\u001b[36m\u001b[39m\n \u001b[0mGenerelt\u001b[0m\n\u001b[36m\u001b[39m\n\nIgnored nodes: comments, script, style\n\u001b[36m\u001b[39m\n \u001b[0mOppfølging\u001b[0m\n\u001b[36m\u001b[39m\n\nIgnored nodes: comments, script, style\n\u001b[36m\u001b[39m\n \u001b[0mVarsler\u001b[0m\n\u001b[36m\u001b[39m\n\nIgnored nodes: comments, script, style\n\u001b[36m\u001b[39m\n \u001b[0mSikkerhetskopi\u001b[0m\n\u001b[36m\u001b[39m\n\n(If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)).\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[0mInnstillingsområde\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mGenerelt\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[0mInnstillingsområde\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[0mGenerelt\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mOppfølging\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mVarsler\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mSikkerhetskopi\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 (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":"nb Automation reuses the saved notification preference and explicit save","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716194903,"status":"failed","title":"nb Automation reuses the saved notification preference and explicit save"},{"ancestorTitles":[],"duration":121,"failing":false,"failureDetails":[{"name":"TestingLibraryElementError"}],"failureMessages":["TestingLibraryElementError: Found multiple elements with the role \"tab\"\n\nHere are the matching elements:\n\nIgnored nodes: comments, script, style\n\u001b[36m\u001b[39m\n \u001b[0mGeneral\u001b[0m\n\u001b[36m\u001b[39m\n\nIgnored nodes: comments, script, style\n\u001b[36m\u001b[39m\n \u001b[0mFollow-ups\u001b[0m\n\u001b[36m\u001b[39m\n\nIgnored nodes: comments, script, style\n\u001b[36m\u001b[39m\n \u001b[0mNotifications\u001b[0m\n\u001b[36m\u001b[39m\n\nIgnored nodes: comments, script, style\n\u001b[36m\u001b[39m\n \u001b[0mBackup\u001b[0m\n\u001b[36m\u001b[39m\n\n(If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)).\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[0mSettings section\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mGeneral\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[0mSettings section\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[0mGeneral\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mFollow-ups\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mNotifications\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mBackup\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)\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":"Automation AI entry moves focus into existing settings without an AI request","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716195045,"status":"failed","title":"Automation AI entry moves focus into existing settings without an AI request"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[P7-09 preferences] initial notification failure offers a single GET Retry and recovers its vanished focused action","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716195167,"status":"pending","title":"[P7-09 preferences] initial notification failure offers a single GET Retry and recovers its vanished focused action"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[P7-09 preferences] notification drafts survive internal sections and locale changes without a GET or save","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716195167,"status":"pending","title":"[P7-09 preferences] notification drafts survive internal sections and locale changes without a GET or save"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[P7-09 preferences] one held notification save acknowledges its snapshot and preserves later edits across sections","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716195167,"status":"pending","title":"[P7-09 preferences] one held notification save acknowledges its snapshot and preserves later edits across sections"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[P7-09 preferences] failed notification save keeps its current-locale draft and retries only the original Save","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716195167,"status":"pending","title":"[P7-09 preferences] failed notification save keeps its current-locale draft and retries only the original Save"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[P7-09 preferences] discarding a notification draft leaves the independent Rules draft untouched","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716195167,"status":"pending","title":"[P7-09 preferences] discarding a notification draft leaves the independent Rules draft untouched"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[P7-09 preferences] a disposed notification save cannot publish into surviving providers or a new Settings session","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716195167,"status":"pending","title":"[P7-09 preferences] a disposed notification save cannot publish into surviving providers or a new Settings session"},{"ancestorTitles":[],"duration":null,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"[P7-09 preferences] Rules load failure follows locale without reloading and Retry retains the six-field contract","invocations":1,"location":null,"numPassingAsserts":0,"retryReasons":[],"startAt":1793716195167,"status":"pending","title":"[P7-09 preferences] Rules load failure follows locale without reloading and Retry retains the six-field contract"}],"endTime":1793716195191,"message":" ● en Automation reuses the saved notification preference and explicit save\n\n TestingLibraryElementError: Found multiple elements with the role \"tab\"\n\n Here are the matching elements:\n\n Ignored nodes: comments, script, style\n \u001b[36m\u001b[39m\n \u001b[0mGeneral\u001b[0m\n \u001b[36m\u001b[39m\n\n Ignored nodes: comments, script, style\n \u001b[36m\u001b[39m\n \u001b[0mFollow-ups\u001b[0m\n \u001b[36m\u001b[39m\n\n Ignored nodes: comments, script, style\n \u001b[36m\u001b[39m\n \u001b[0mNotifications\u001b[0m\n \u001b[36m\u001b[39m\n\n Ignored nodes: comments, script, style\n \u001b[36m\u001b[39m\n \u001b[0mBackup\u001b[0m\n \u001b[36m\u001b[39m\n\n (If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)).\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[0mSettings section\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mGeneral\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[0mSettings section\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[0mGeneral\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mFollow-ups\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mNotifications\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mBackup\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 {\n 323 | localStorage.setItem('uiLanguage', language); renderView();\n > 324 | fireEvent.click(screen.getByRole('tab', { name: preferenceCopy('settingsTabAutomation') }));\n | ^\n 325 | const panel = within(screen.getByRole('tabpanel', { name: preferenceCopy('settingsTabAutomation') }));\n 326 | const toggle = await panel.findByRole('switch', { name: preferenceCopy('settingsNotificationsFollowUpReminders') });\n 327 | expect(toggle).toBeChecked(); fireEvent.click(toggle); expect(mockedApi.put).not.toHaveBeenCalled();\n\n at Object.getElementError (node_modules/@testing-library/dom/dist/config.js:37:19)\n at getElementError (node_modules/@testing-library/dom/dist/query-helpers.js:20:35)\n at getMultipleElementsFoundError (node_modules/@testing-library/dom/dist/query-helpers.js:23:10)\n at node_modules/@testing-library/dom/dist/query-helpers.js:55:13\n at node_modules/@testing-library/dom/dist/query-helpers.js:95:19\n at getByRole (src/settings-view.test.tsx:324:26)\n\n ● nb Automation reuses the saved notification preference and explicit save\n\n TestingLibraryElementError: Found multiple elements with the role \"tab\"\n\n Here are the matching elements:\n\n Ignored nodes: comments, script, style\n \u001b[36m\u001b[39m\n \u001b[0mGenerelt\u001b[0m\n \u001b[36m\u001b[39m\n\n Ignored nodes: comments, script, style\n \u001b[36m\u001b[39m\n \u001b[0mOppfølging\u001b[0m\n \u001b[36m\u001b[39m\n\n Ignored nodes: comments, script, style\n \u001b[36m\u001b[39m\n \u001b[0mVarsler\u001b[0m\n \u001b[36m\u001b[39m\n\n Ignored nodes: comments, script, style\n \u001b[36m\u001b[39m\n \u001b[0mSikkerhetskopi\u001b[0m\n \u001b[36m\u001b[39m\n\n (If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)).\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[0mInnstillingsområde\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mGenerelt\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[0mInnstillingsområde\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[0mGenerelt\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mOppfølging\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mVarsler\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mSikkerhetskopi\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 {\n 323 | localStorage.setItem('uiLanguage', language); renderView();\n > 324 | fireEvent.click(screen.getByRole('tab', { name: preferenceCopy('settingsTabAutomation') }));\n | ^\n 325 | const panel = within(screen.getByRole('tabpanel', { name: preferenceCopy('settingsTabAutomation') }));\n 326 | const toggle = await panel.findByRole('switch', { name: preferenceCopy('settingsNotificationsFollowUpReminders') });\n 327 | expect(toggle).toBeChecked(); fireEvent.click(toggle); expect(mockedApi.put).not.toHaveBeenCalled();\n\n at Object.getElementError (node_modules/@testing-library/dom/dist/config.js:37:19)\n at getElementError (node_modules/@testing-library/dom/dist/query-helpers.js:20:35)\n at getMultipleElementsFoundError (node_modules/@testing-library/dom/dist/query-helpers.js:23:10)\n at node_modules/@testing-library/dom/dist/query-helpers.js:55:13\n at node_modules/@testing-library/dom/dist/query-helpers.js:95:19\n at getByRole (src/settings-view.test.tsx:324:26)\n\n ● Automation AI entry moves focus into existing settings without an AI request\n\n TestingLibraryElementError: Found multiple elements with the role \"tab\"\n\n Here are the matching elements:\n\n Ignored nodes: comments, script, style\n \u001b[36m\u001b[39m\n \u001b[0mGeneral\u001b[0m\n \u001b[36m\u001b[39m\n\n Ignored nodes: comments, script, style\n \u001b[36m\u001b[39m\n \u001b[0mFollow-ups\u001b[0m\n \u001b[36m\u001b[39m\n\n Ignored nodes: comments, script, style\n \u001b[36m\u001b[39m\n \u001b[0mNotifications\u001b[0m\n \u001b[36m\u001b[39m\n\n Ignored nodes: comments, script, style\n \u001b[36m\u001b[39m\n \u001b[0mBackup\u001b[0m\n \u001b[36m\u001b[39m\n\n (If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)).\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[0mSettings section\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mGeneral\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[0mSettings section\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[0mGeneral\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mFollow-ups\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mNotifications\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mBackup\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 {\n > 335 | renderView(); fireEvent.click(screen.getByRole('tab', { name: preferenceCopy('settingsTabAutomation') }));\n | ^\n 336 | fireEvent.click(await screen.findByRole('button', { name: preferenceCopy('settingsAutomationAi') }));\n 337 | await waitFor(() => expect(document.getElementById('settings-ai-controls')).toHaveFocus());\n 338 | expect(mockedApi.post).not.toHaveBeenCalled();\n\n at Object.getElementError (node_modules/@testing-library/dom/dist/config.js:37:19)\n at getElementError (node_modules/@testing-library/dom/dist/query-helpers.js:20:35)\n at getMultipleElementsFoundError (node_modules/@testing-library/dom/dist/query-helpers.js:23:10)\n at node_modules/@testing-library/dom/dist/query-helpers.js:55:13\n at node_modules/@testing-library/dom/dist/query-helpers.js:95:19\n at Object.getByRole (src/settings-view.test.tsx:335:40)\n","name":"C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\settings-view.test.tsx","startTime":1793716190429,"status":"failed","summary":""}],"wasInterrupted":false}