{"numFailedTestSuites":1,"numFailedTests":4,"numPassedTestSuites":0,"numPassedTests":5,"numPendingTestSuites":0,"numPendingTests":0,"numRuntimeErrorTestSuites":0,"numTodoTests":0,"numTotalTestSuites":1,"numTotalTests":9,"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":1793751511232,"success":false,"testResults":[{"assertionResults":[{"ancestorTitles":["VerifyEmailPage"],"duration":67,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"VerifyEmailPage confirms the account and shows success when the link is valid","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793751514518,"status":"passed","title":"confirms the account and shows success when the link is valid"},{"ancestorTitles":["VerifyEmailPage"],"duration":28,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"VerifyEmailPage shows an error when the link is invalid or expired","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"startAt":1793751514586,"status":"passed","title":"shows an error when the link is invalid or expired"},{"ancestorTitles":["VerifyEmailPage"],"duration":14,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"VerifyEmailPage shows an error without calling the API when the link is missing userId/token","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793751514615,"status":"passed","title":"shows an error without calling the API when the link is missing userId/token"},{"ancestorTitles":["VerifyEmailPage"],"duration":31,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"VerifyEmailPage confirms a pending email change and requires a fresh sign-in","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793751514629,"status":"passed","title":"confirms a pending email change and requires a fresh sign-in"},{"ancestorTitles":["VerifyEmailPage"],"duration":16,"failing":false,"failureDetails":[{"matcherResult":{"actual":2,"expected":1,"message":"expect(received).toBe(expected) // Object.is equality\n\nExpected: 1\nReceived: 2","name":"toBe","pass":false}}],"failureMessages":["Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: 1\nReceived: 2\n at toBe (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\verify-email-page.test.tsx:79:26)"],"fullName":"VerifyEmailPage changing UI language never resubmits a pending confirmation: emailChange=false","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"startAt":1793751514660,"status":"failed","title":"changing UI language never resubmits a pending confirmation: emailChange=false"},{"ancestorTitles":["VerifyEmailPage"],"duration":13,"failing":false,"failureDetails":[{"matcherResult":{"actual":2,"expected":1,"message":"expect(received).toBe(expected) // Object.is equality\n\nExpected: 1\nReceived: 2","name":"toBe","pass":false}}],"failureMessages":["Error: expect(received).toBe(expected) // Object.is equality\n\nExpected: 1\nReceived: 2\n at toBe (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\verify-email-page.test.tsx:79:26)"],"fullName":"VerifyEmailPage changing UI language never resubmits a pending confirmation: emailChange=true","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"startAt":1793751514681,"status":"failed","title":"changing UI language never resubmits a pending confirmation: emailChange=true"},{"ancestorTitles":["VerifyEmailPage"],"duration":47,"failing":false,"failureDetails":[],"failureMessages":[],"fullName":"VerifyEmailPage localizes missing-link errors without a confirmation request","invocations":1,"location":null,"numPassingAsserts":3,"retryReasons":[],"startAt":1793751514695,"status":"passed","title":"localizes missing-link errors without a confirmation request"},{"ancestorTitles":["VerifyEmailPage"],"duration":36,"failing":false,"failureDetails":[{"matcherResult":{"message":"expect(jest.fn()).toHaveBeenCalledTimes(expected)\n\nExpected number of calls: 1\nReceived number of calls: 2","pass":false}}],"failureMessages":["Error: expect(jest.fn()).toHaveBeenCalledTimes(expected)\n\nExpected number of calls: 1\nReceived number of calls: 2\n at Object.toHaveBeenCalledTimes (C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\verify-email-page.test.tsx:101:28)"],"fullName":"VerifyEmailPage localizes a failed confirmation fallback without retrying the one-time command","invocations":1,"location":null,"numPassingAsserts":2,"retryReasons":[],"startAt":1793751514742,"status":"failed","title":"localizes a failed confirmation fallback without retrying the one-time command"},{"ancestorTitles":["VerifyEmailPage"],"duration":50,"failing":false,"failureDetails":[{"name":"TestingLibraryElementError"}],"failureMessages":["TestingLibraryElementError: Unable to find an accessible element with the role \"alert\"\n\nHere are the accessible roles:\n\n main:\n\n Name \"Confirm your new email\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n banner:\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n heading:\n\n Name \"Confirm your new email\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n status:\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n button:\n\n Name \"Back to login\":\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[36m\u001b[39m\n \u001b[0mConfirm your new email\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[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mYour email has changed. Sign in again with the new address.\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mBack to login\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 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\\verify-email-page.test.tsx:112:19)"],"fullName":"VerifyEmailPage does not let an older confirmation replace a different flow missing-link error","invocations":1,"location":null,"numPassingAsserts":1,"retryReasons":[],"startAt":1793751514778,"status":"failed","title":"does not let an older confirmation replace a different flow missing-link error"}],"endTime":1793751514845,"message":" ● VerifyEmailPage › changing UI language never resubmits a pending confirmation: emailChange=false\n\n expect(received).toBe(expected) // Object.is equality\n\n Expected: 1\n Received: 2\n\n 77 | const pendingCalls = mockedApi.post.mock.calls.length;\n 78 | await act(async () => finish({ data: {} }));\n > 79 | expect(pendingCalls).toBe(1);\n | ^\n 80 | expect(mockedApi.post).toHaveBeenCalledTimes(1);\n 81 | expect(screen.getByRole('status')).toHaveTextContent(translations.nb[emailChange ? 'confirmEmailChangeSuccess' : 'verifyEmailSuccess']);\n 82 | act(() => window.dispatchEvent(new StorageEvent('storage', { key: 'uiLanguage', newValue: 'en' })));\n\n at toBe (src/verify-email-page.test.tsx:79:26)\n\n ● VerifyEmailPage › changing UI language never resubmits a pending confirmation: emailChange=true\n\n expect(received).toBe(expected) // Object.is equality\n\n Expected: 1\n Received: 2\n\n 77 | const pendingCalls = mockedApi.post.mock.calls.length;\n 78 | await act(async () => finish({ data: {} }));\n > 79 | expect(pendingCalls).toBe(1);\n | ^\n 80 | expect(mockedApi.post).toHaveBeenCalledTimes(1);\n 81 | expect(screen.getByRole('status')).toHaveTextContent(translations.nb[emailChange ? 'confirmEmailChangeSuccess' : 'verifyEmailSuccess']);\n 82 | act(() => window.dispatchEvent(new StorageEvent('storage', { key: 'uiLanguage', newValue: 'en' })));\n\n at toBe (src/verify-email-page.test.tsx:79:26)\n\n ● VerifyEmailPage › localizes a failed confirmation fallback without retrying the one-time command\n\n expect(jest.fn()).toHaveBeenCalledTimes(expected)\n\n Expected number of calls: 1\n Received number of calls: 2\n\n 99 | await act(async () => window.dispatchEvent(new StorageEvent('storage', { key: 'uiLanguage', newValue: 'nb' })));\n 100 | expect(screen.getByRole('alert')).toHaveTextContent(translations.nb.verifyEmailFailed);\n > 101 | expect(mockedApi.post).toHaveBeenCalledTimes(1);\n | ^\n 102 | });\n 103 |\n 104 | it('does not let an older confirmation replace a different flow missing-link error', async () => {\n\n at Object.toHaveBeenCalledTimes (src/verify-email-page.test.tsx:101:28)\n\n ● VerifyEmailPage › does not let an older confirmation replace a different flow missing-link error\n\n TestingLibraryElementError: Unable to find an accessible element with the role \"alert\"\n\n Here are the accessible roles:\n\n main:\n\n Name \"Confirm your new email\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n banner:\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n heading:\n\n Name \"Confirm your new email\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n status:\n\n Name \"\":\n \u001b[36m\u001b[39m\n\n --------------------------------------------------\n button:\n\n Name \"Back to login\":\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[36m\u001b[39m\n \u001b[0mConfirm your new email\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[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mYour email has changed. Sign in again with the new address.\u001b[0m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[36m\u001b[39m\n \u001b[0mBack to login\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\n 110 | expect(await screen.findByText(translations.en.missingEmailChangeLinkInfo)).toBeInTheDocument();\n 111 | await act(async () => finish({ data: {} }));\n > 112 | expect(screen.getByRole('alert')).toHaveTextContent(translations.en.missingEmailChangeLinkInfo);\n | ^\n 113 | expect(mockedApi.post).toHaveBeenCalledTimes(1);\n 114 | });\n 115 | });\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/verify-email-page.test.tsx:112:19)\n","name":"C:\\Users\\Connor\\.codex\\worktrees\\direct-roadmap-integration\\Job tracker\\job-tracker-ui\\src\\verify-email-page.test.tsx","startTime":1793751512139,"status":"failed","summary":""}],"wasInterrupted":false}