Skip to content

Adds achievements to the UX#26

Open
sfanahata wants to merge 2 commits intomainfrom
create-badges
Open

Adds achievements to the UX#26
sfanahata wants to merge 2 commits intomainfrom
create-badges

Conversation

@sfanahata
Copy link
Copy Markdown
Owner

Achievements for the UX - added to the home page

@vercel
Copy link
Copy Markdown

vercel bot commented Sep 26, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
fitfest Error Error Sep 26, 2025 8:54pm

- Updated getsentry/prevent-action to use @v0 as recommended
- Kept OpenID Connect authentication setup
- Ready to test the integration
@sentry
Copy link
Copy Markdown

sentry bot commented Sep 26, 2025

❌ 52 Tests Failed:

Tests completed Failed Passed Skipped
188 52 136 0
View the top 3 failed test(s) by shortest run time
Sentry Test Analytics - Failed Tests Intentionally Failing Tests should fail due to type mismatch
Stack Traces | 0s run time
Error: expect(received).toBe(expected) // Object.is equality

Expected: "42"
Received: 42
    at Object.toBe (.../src/tests/SentryTestAnalytics.test.tsx:31:22)
    at Promise.then.completed (.../jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (.../jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:121:9)
    at run (.../jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../jest-runner/build/runTest.js:367:16)
    at runTest (.../jest-runner/build/runTest.js:444:34)
    at Object.worker (.../jest-runner/build/testWorker.js:106:12)
Sentry Test Analytics - Failed Tests Intentionally Failing Tests should fail when testing undefined behavior
Stack Traces | 0s run time
TypeError: Cannot read properties of null (reading 'someProperty')
    at Object.someProperty (.../src/tests/SentryTestAnalytics.test.tsx:37:18)
    at Promise.then.completed (.../jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (.../jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:121:9)
    at run (.../jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../jest-runner/build/runTest.js:367:16)
    at runTest (.../jest-runner/build/runTest.js:444:34)
    at Object.worker (.../jest-runner/build/testWorker.js:106:12)
should fail due to type mismatch
Stack Traces | 0s run time
Error: expect(received).toBe(expected) // Object.is equality

Expected: "42"
Received: 42
    at Object.toBe (.../src/tests/SentryTestAnalytics.test.tsx:31:22)
    at Promise.then.completed (.../jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (.../jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:121:9)
    at run (.../jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../jest-runner/build/runTest.js:367:16)
    at runTest (.../jest-runner/build/runTest.js:444:34)
    at Object.worker (.../jest-runner/build/testWorker.js:106:12)
should fail when testing undefined behavior
Stack Traces | 0s run time
TypeError: Cannot read properties of null (reading 'someProperty')
    at Object.someProperty (.../src/tests/SentryTestAnalytics.test.tsx:37:18)
    at Promise.then.completed (.../jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (.../jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:121:9)
    at run (.../jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../jest-runner/build/runTest.js:367:16)
    at runTest (.../jest-runner/build/runTest.js:444:34)
    at Object.worker (.../jest-runner/build/testWorker.js:106:12)
Flaky Test Examples for Sentry Test Analytics should fail due to incorrect API endpoint
Stack Traces | 0.001s run time
Error: expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false
    at Object.toBe (.../src/tests/FlakyTestExample.test.tsx:26:25)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
NutritionPage Flaky Tests for Analytics Demo should sometimes fail due to timing issues
Stack Traces | 0.001s run time
Error: Random timing failure for analytics demo
    at Object.<anonymous> (.../src/tests/NutritionPage.test.tsx:298:15)
Sentry Test Analytics - Failed Tests Network and API Failure Tests should fail when API response is malformed
Stack Traces | 0.001s run time
TypeError: Cannot read properties of undefined (reading 'targetCalories')
    at Object.targetCalories (.../src/tests/SentryTestAnalytics.test.tsx:67:27)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
Sentry Test Analytics - Failed Tests Network and API Failure Tests should fail when API returns error status
Stack Traces | 0.001s run time
Error: expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false
    at Object.toBe (.../src/tests/SentryTestAnalytics.test.tsx:56:27)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
Sentry Test Analytics - Integration Tests should be flaky when testing concurrent operations
Stack Traces | 0.001s run time
TypeError: Cannot read properties of undefined (reading 'ok')
    at ok (.../src/tests/SentryTestAnalytics.test.tsx:328:57)
    at Array.filter (<anonymous>)
    at Object.filter (.../src/tests/SentryTestAnalytics.test.tsx:328:43)
Sentry Test Analytics - Integration Tests should fail when testing full user flow
Stack Traces | 0.001s run time
Error: expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false
    at Object.toBe (.../src/tests/SentryTestAnalytics.test.tsx:309:30)
should be flaky when testing concurrent operations
Stack Traces | 0.001s run time
TypeError: Cannot read properties of undefined (reading 'ok')
    at ok (.../src/tests/SentryTestAnalytics.test.tsx:328:57)
    at Array.filter (<anonymous>)
    at Object.filter (.../src/tests/SentryTestAnalytics.test.tsx:328:43)
should fail due to incorrect API endpoint
Stack Traces | 0.001s run time
Error: expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false
    at Object.toBe (.../src/tests/FlakyTestExample.test.tsx:26:25)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
should fail when API response is malformed
Stack Traces | 0.001s run time
TypeError: Cannot read properties of undefined (reading 'targetCalories')
    at Object.targetCalories (.../src/tests/SentryTestAnalytics.test.tsx:67:27)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
should fail when API returns error status
Stack Traces | 0.001s run time
Error: expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false
    at Object.toBe (.../src/tests/SentryTestAnalytics.test.tsx:56:27)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
should fail when testing full user flow
Stack Traces | 0.001s run time
Error: expect(received).toBe(expected) // Object.is equality

Expected: true
Received: false
    at Object.toBe (.../src/tests/SentryTestAnalytics.test.tsx:309:30)
should sometimes fail due to timing issues
Stack Traces | 0.001s run time
Error: Random timing failure for analytics demo
    at Object.<anonymous> (.../src/tests/NutritionPage.test.tsx:298:15)
Sentry Test Analytics - Failed Tests Intentionally Failing Tests should fail due to array length mismatch
Stack Traces | 0.002s run time
Error: expect(received).toHaveLength(expected)

Expected length: 5
Received length: 3
Received array:  [1, 2, 3]
    at Object.toHaveLength (.../src/tests/SentryTestAnalytics.test.tsx:42:21)
    at Promise.then.completed (.../jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (.../jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:121:9)
    at run (.../jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../jest-runner/build/runTest.js:367:16)
    at runTest (.../jest-runner/build/runTest.js:444:34)
    at Object.worker (.../jest-runner/build/testWorker.js:106:12)
should fail due to array length mismatch
Stack Traces | 0.002s run time
Error: expect(received).toHaveLength(expected)

Expected length: 5
Received length: 3
Received array:  [1, 2, 3]
    at Object.toHaveLength (.../src/tests/SentryTestAnalytics.test.tsx:42:21)
    at Promise.then.completed (.../jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (.../jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:121:9)
    at run (.../jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../jest-runner/build/runTest.js:367:16)
    at runTest (.../jest-runner/build/runTest.js:444:34)
    at Object.worker (.../jest-runner/build/testWorker.js:106:12)
Sentry Test Analytics - Flaky Tests Data-Dependent Flaky Tests should be flaky when validating form data
Stack Traces | 0.003s run time
Error: expect(received).toBe(expected) // Object.is equality

Expected: "different"
Received: "password123"
    at Object.toBe (.../src/tests/SentryTestAnalytics.test.tsx:235:33)
    at Promise.then.completed (.../jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../jest-circus/build/run.js:316:40)
    at _runTest (.../jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:121:9)
    at run (.../jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../jest-runner/build/runTest.js:367:16)
    at runTest (.../jest-runner/build/runTest.js:444:34)
    at Object.worker (.../jest-runner/build/testWorker.js:106:12)
should be flaky when validating form data
Stack Traces | 0.003s run time
Error: expect(received).toBe(expected) // Object.is equality

Expected: "different"
Received: "password123"
    at Object.toBe (.../src/tests/SentryTestAnalytics.test.tsx:235:33)
    at Promise.then.completed (.../jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../jest-circus/build/run.js:316:40)
    at _runTest (.../jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:121:9)
    at run (.../jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../jest-runner/build/runTest.js:367:16)
    at runTest (.../jest-runner/build/runTest.js:444:34)
    at Object.worker (.../jest-runner/build/testWorker.js:106:12)
Sentry Test Analytics - Flaky Tests Environment-Dependent Flaky Tests should be flaky due to DOM state
Stack Traces | 0.01s run time
TestingLibraryElementError: Found multiple elements with the text: Test

Here are the matching elements:

Ignored nodes: comments, script, style
<div
  id="test-element"
>
  Test
</div>

Ignored nodes: comments, script, style
<button
  class="bg-fitfest-deep text-white px-4 py-2 rounded hover:bg-fitfest-bright dark:bg-fitfest-bright dark:hover:bg-fitfest-deep transition-colors disabled:opacity-50 shadow-sm "
>
  Test
</button>

(If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)).

Ignored nodes: comments, script, style
<body>
  <div
    id="test-element"
  >
    Test
  </div>
  <div>
    <button
      class="bg-fitfest-deep text-white px-4 py-2 rounded hover:bg-fitfest-bright dark:bg-fitfest-bright dark:hover:bg-fitfest-deep transition-colors disabled:opacity-50 shadow-sm "
    >
      Test
    </button>
  </div>
</body>
    at Object.getElementError (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/config.js:37:19)
    at getElementError (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/query-helpers.js:20:35)
    at getMultipleElementsFoundError (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/query-helpers.js:23:10)
    at .../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/query-helpers.js:55:13
    at .../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/query-helpers.js:95:19
    at Object.getByText (.../src/tests/SentryTestAnalytics.test.tsx:155:29)
    at Promise.then.completed (.../fitfest/app/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../fitfest/app/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../fitfest/app/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (.../fitfest/app/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at run (.../fitfest/app/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../fitfest/app/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (.../fitfest/app/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (.../fitfest/app/node_modules/jest-runner/build/testWorker.js:106:12)
should be flaky due to DOM state
Stack Traces | 0.01s run time
TestingLibraryElementError: Found multiple elements with the text: Test

Here are the matching elements:

Ignored nodes: comments, script, style
<div
  id="test-element"
>
  Test
</div>

Ignored nodes: comments, script, style
<button
  class="bg-fitfest-deep text-white px-4 py-2 rounded hover:bg-fitfest-bright dark:bg-fitfest-bright dark:hover:bg-fitfest-deep transition-colors disabled:opacity-50 shadow-sm "
>
  Test
</button>

(If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)).

Ignored nodes: comments, script, style
<body>
  <div
    id="test-element"
  >
    Test
  </div>
  <div>
    <button
      class="bg-fitfest-deep text-white px-4 py-2 rounded hover:bg-fitfest-bright dark:bg-fitfest-bright dark:hover:bg-fitfest-deep transition-colors disabled:opacity-50 shadow-sm "
    >
      Test
    </button>
  </div>
</body>
    at Object.getElementError (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/config.js:37:19)
    at getElementError (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/query-helpers.js:20:35)
    at getMultipleElementsFoundError (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/query-helpers.js:23:10)
    at .../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/query-helpers.js:55:13
    at .../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/query-helpers.js:95:19
    at Object.getByText (.../src/tests/SentryTestAnalytics.test.tsx:155:29)
    at Promise.then.completed (.../fitfest/app/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../fitfest/app/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../fitfest/app/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (.../fitfest/app/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at run (.../fitfest/app/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../fitfest/app/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (.../fitfest/app/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (.../fitfest/app/node_modules/jest-runner/build/testWorker.js:106:12)
Sentry Test Analytics - Failed Tests Intentionally Failing Tests should fail due to incorrect assertion
Stack Traces | 0.016s run time
Error: expect(received).toBe(expected) // Object.is equality

Expected: 5
Received: 4
    at Object.toBe (.../src/tests/SentryTestAnalytics.test.tsx:20:22)
    at Promise.then.completed (.../jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (.../jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:121:9)
    at run (.../jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../jest-runner/build/runTest.js:367:16)
    at runTest (.../jest-runner/build/runTest.js:444:34)
    at Object.worker (.../jest-runner/build/testWorker.js:106:12)
should fail due to incorrect assertion
Stack Traces | 0.016s run time
Error: expect(received).toBe(expected) // Object.is equality

Expected: 5
Received: 4
    at Object.toBe (.../src/tests/SentryTestAnalytics.test.tsx:20:22)
    at Promise.then.completed (.../jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (.../jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../jest-circus/build/run.js:121:9)
    at run (.../jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../jest-runner/build/runTest.js:367:16)
    at runTest (.../jest-runner/build/runTest.js:444:34)
    at Object.worker (.../jest-runner/build/testWorker.js:106:12)
Sentry Test Analytics - Failed Tests Intentionally Failing Tests should fail when testing non-existent element
Stack Traces | 0.025s run time
TestingLibraryElementError: Unable to find an element with the text: Non-existent Button. 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.

Ignored nodes: comments, script, style
<body>
  <div>
    <button
      class="bg-fitfest-deep text-white px-4 py-2 rounded hover:bg-fitfest-bright dark:bg-fitfest-bright dark:hover:bg-fitfest-deep transition-colors disabled:opacity-50 shadow-sm "
    >
      Test Button
    </button>
  </div>
</body>
    at Object.getElementError (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/config.js:37:19)
    at .../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/query-helpers.js:76:38
    at .../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/query-helpers.js:52:17
    at .../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/query-helpers.js:95:19
    at Object.getByText (.../src/tests/SentryTestAnalytics.test.tsx:26:21)
    at Promise.then.completed (.../fitfest/app/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../fitfest/app/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../fitfest/app/node_modules/jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (.../fitfest/app/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at run (.../fitfest/app/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../fitfest/app/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (.../fitfest/app/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (.../fitfest/app/node_modules/jest-runner/build/testWorker.js:106:12)
should fail when testing non-existent element
Stack Traces | 0.025s run time
TestingLibraryElementError: Unable to find an element with the text: Non-existent Button. 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.

Ignored nodes: comments, script, style
<body>
  <div>
    <button
      class="bg-fitfest-deep text-white px-4 py-2 rounded hover:bg-fitfest-bright dark:bg-fitfest-bright dark:hover:bg-fitfest-deep transition-colors disabled:opacity-50 shadow-sm "
    >
      Test Button
    </button>
  </div>
</body>
    at Object.getElementError (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/config.js:37:19)
    at .../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/query-helpers.js:76:38
    at .../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/query-helpers.js:52:17
    at .../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/query-helpers.js:95:19
    at Object.getByText (.../src/tests/SentryTestAnalytics.test.tsx:26:21)
    at Promise.then.completed (.../fitfest/app/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../fitfest/app/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../fitfest/app/node_modules/jest-circus/build/run.js:316:40)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at _runTest (.../fitfest/app/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at run (.../fitfest/app/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../fitfest/app/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (.../fitfest/app/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (.../fitfest/app/node_modules/jest-runner/build/testWorker.js:106:12)
Sentry Test Analytics - Failed Tests Network and API Failure Tests should fail due to timeout
Stack Traces | 1s run time
Error: thrown: "Exceeded timeout of 1000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."
    at it (.../src/tests/SentryTestAnalytics.test.tsx:70:5)
    at _dispatchDescribe (.../jest-circus/build/index.js:91:26)
    at describe (.../jest-circus/build/index.js:55:5)
    at describe (.../src/tests/SentryTestAnalytics.test.tsx:46:3)
    at _dispatchDescribe (.../jest-circus/build/index.js:91:26)
    at describe (.../jest-circus/build/index.js:55:5)
    at Object.describe (.../src/tests/SentryTestAnalytics.test.tsx:15:1)
    at Runtime._execModule (.../jest-runtime/build/index.js:1439:24)
    at Runtime._loadModule (.../jest-runtime/build/index.js:1022:12)
    at Runtime.requireModule (.../jest-runtime/build/index.js:882:12)
    at jestAdapter (.../build/legacy-code-todo-rewrite/jestAdapter.js:77:13)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at runTestInternal (.../jest-runner/build/runTest.js:367:16)
    at runTest (.../jest-runner/build/runTest.js:444:34)
    at Object.worker (.../jest-runner/build/testWorker.js:106:12)
should fail due to timeout
Stack Traces | 1s run time
Error: thrown: "Exceeded timeout of 1000 ms for a test.
Add a timeout value to this test to increase the timeout, if this is a long-running test. See https://jestjs.io/docs/api#testname-fn-timeout."
    at it (.../src/tests/SentryTestAnalytics.test.tsx:70:5)
    at _dispatchDescribe (.../jest-circus/build/index.js:91:26)
    at describe (.../jest-circus/build/index.js:55:5)
    at describe (.../src/tests/SentryTestAnalytics.test.tsx:46:3)
    at _dispatchDescribe (.../jest-circus/build/index.js:91:26)
    at describe (.../jest-circus/build/index.js:55:5)
    at Object.describe (.../src/tests/SentryTestAnalytics.test.tsx:15:1)
    at Runtime._execModule (.../jest-runtime/build/index.js:1439:24)
    at Runtime._loadModule (.../jest-runtime/build/index.js:1022:12)
    at Runtime.requireModule (.../jest-runtime/build/index.js:882:12)
    at jestAdapter (.../build/legacy-code-todo-rewrite/jestAdapter.js:77:13)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at runTestInternal (.../jest-runner/build/runTest.js:367:16)
    at runTest (.../jest-runner/build/runTest.js:444:34)
    at Object.worker (.../jest-runner/build/testWorker.js:106:12)
MealLogForm Flaky Tests for Analytics Demo should fail when form validation is too strict
Stack Traces | 1s run time
Error: Form validation too strict for short names

Ignored nodes: comments, script, style
<html>
  <head />
  <body>
    <div>
      <div
        class="min-h-screen bg-gray-50 dark:bg-fitfest-dark transition-colors duration-200"
      >
        <div
          class="bg-white dark:bg-fitfest-dark-secondary shadow-sm border-b border-fitfest-subtle/20 dark:border-fitfest-subtle/10 transition-colors duration-200"
        >
          <div
            class="flex items-center justify-between p-4"
          >
            <div
              class="flex items-center gap-3"
            >
              <button
                class="p-2 hover:bg-gray-100 dark:hover:bg-fitfest-dark-tertiary rounded-full transition-colors duration-200"
              >
                <svg
                  aria-hidden="true"
                  class="w-5 h-5 text-gray-600 dark:text-fitfest-subtle"
                  data-slot="icon"
                  fill="none"
                  stroke="currentColor"
                  stroke-width="1.5"
                  viewBox="0 0 24 24"
                  xmlns="http://www.w3.org/2000/svg"
                >
                  <path
                    d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"
                    stroke-linecap="round"
                    stroke-linejoin="round"
                  />
                </svg>
              </button>
              <div
                class="flex items-center gap-2"
              >
                <span
                  class="text-2xl"
                >
                  🥗
                </span>
                <h1
                  class="text-xl font-bold text-gray-900 dark:text-fitfest-subtle"
                >
                  Log 
                  Lunch
                </h1>
              </div>
            </div>
          </div>
        </div>
        <div
          class="max-w-md mx-auto mt-8 px-4"
        >
          <form
            class="bg-white dark:bg-fitfest-dark-secondary rounded-lg shadow-sm p-6 space-y-4 transition-colors duration-200"
          >
            <div>
              <label
                class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                for="date"
              >
                Date
              </label>
              <input
                class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle transition-colors duration-200"
                id="date"
                name="date"
                required=""
                type="date"
                value="2025-09-26"
              />
            </div>
            <div>
              <label
                class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                for="name"
              >
                Meal Name
              </label>
              <input
                class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle placeholder-gray-500 dark:placeholder-fitfest-subtle/50 transition-colors duration-200"
                id="name"
                name="name"
                placeholder="e.g., Oatmeal with berries"
                required=""
                type="text"
                value="a"
              />
            </div>
            <div>
              <label
                class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                for="calories"
              >
                Calories
              </label>
              <input
                class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle placeholder-gray-500 dark:placeholder-fitfest-subtle/50 transition-colors duration-200"
                id="calories"
                min="0"
                name="calories"
                placeholder="e.g., 300"
                required=""
                type="number"
                value=""
              />
            </div>
            <div
              class="grid grid-cols-3 gap-3"
            >
              <div>
                <label
                  class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                  for="protein"
                >
                  Protein (g)
                </label>
                <input
                  class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle placeholder-gray-500 dark:placeholder-fitfest-subtle/50 transition-colors duration-200"
                  id="protein"
                  min="0"
                  name="protein"
                  placeholder="0"
                  step="0.1"
                  type="number"
                  value=""
                />
              </div>
              <div>
                <label
                  class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                  for="carbs"
                >
                  Carbs (g)
                </label>
                <input
                  class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle placeholder-gray-500 dark:placeholder-fitfest-subtle/50 transition-colors duration-200"
                  id="carbs"
                  min="0"
                  name="carbs"
                  placeholder="0"
                  step="0.1"
                  type="number"
                  value=""
                />
              </div>
              <div>
                <label
                  class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                  for="fat"
                >
                  Fat (g)
                </label>
                <input
                  class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle placeholder-gray-500 dark:placeholder-fitfest-subtle/50 transition-colors duration-200"
                  id="fat"
                  min="0"
                  name="fat"
                  placeholder="0"
                  step="0.1"
                  type="number"
                  value=""
                />
              </div>
            </div>
            <div
              class="flex gap-3 pt-4"
            >
              <button
                class="flex-1 px-4 py-2 text-gray-700 dark:text-fitfest-subtle bg-gray-100 dark:bg-fitfest-dark-tertiary border border-gray-300 dark:border-fitfest-subtle/20 rounded-md hover:bg-gray-200 dark:hover:bg-fitfest-dark-tertiary/80 focus:outline-none focus:ring-2 focus:ring-gray-500 focus:border-transparent transition-colors duration-200"
                type="button"
              >
                Cancel
              </button>
              <button
                class="flex-1 px-4 py-2 text-white bg-blue-600 border border-transparent rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-colors duration-200 disabled:opacity-50 disabled:cursor-not-allowed"
                type="submit"
              >
                Save Meal
              </button>
            </div>
          </form>
        </div>
      </div>
    </div>
  </body>
</html>
    at .../src/tests/MealLogForm.test.tsx:352:17
    at runWithExpensiveErrorDiagnosticsDisabled (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/config.js:47:12)
    at checkCallback (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:124:77)
    at checkRealTimersCallback (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:118:16)
    at Timeout.task [as _onTimeout] (.../fitfest/app/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
    at listOnTimeout (node:internal/timers:581:17)
    at processTimers (node:internal/timers:519:7)
MealLogForm Flaky Tests for Analytics Demo should validate numeric inputs correctly
Stack Traces | 1s run time
Error: Unable to find a label with the text of: Calories

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:163:27)
    at Object.<anonymous> (.../src/tests/MealLogForm.test.tsx:397:20)
    at Promise.then.completed (.../fitfest/app/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../fitfest/app/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../fitfest/app/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (.../fitfest/app/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at run (.../fitfest/app/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../fitfest/app/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (.../fitfest/app/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (.../fitfest/app/node_modules/jest-runner/build/testWorker.js:106:12)
should fail when form validation is too strict
Stack Traces | 1s run time
Error: Form validation too strict for short names

Ignored nodes: comments, script, style
<html>
  <head />
  <body>
    <div>
      <div
        class="min-h-screen bg-gray-50 dark:bg-fitfest-dark transition-colors duration-200"
      >
        <div
          class="bg-white dark:bg-fitfest-dark-secondary shadow-sm border-b border-fitfest-subtle/20 dark:border-fitfest-subtle/10 transition-colors duration-200"
        >
          <div
            class="flex items-center justify-between p-4"
          >
            <div
              class="flex items-center gap-3"
            >
              <button
                class="p-2 hover:bg-gray-100 dark:hover:bg-fitfest-dark-tertiary rounded-full transition-colors duration-200"
              >
                <svg
                  aria-hidden="true"
                  class="w-5 h-5 text-gray-600 dark:text-fitfest-subtle"
                  data-slot="icon"
                  fill="none"
                  stroke="currentColor"
                  stroke-width="1.5"
                  viewBox="0 0 24 24"
                  xmlns="http://www.w3.org/2000/svg"
                >
                  <path
                    d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"
                    stroke-linecap="round"
                    stroke-linejoin="round"
                  />
                </svg>
              </button>
              <div
                class="flex items-center gap-2"
              >
                <span
                  class="text-2xl"
                >
                  🥗
                </span>
                <h1
                  class="text-xl font-bold text-gray-900 dark:text-fitfest-subtle"
                >
                  Log 
                  Lunch
                </h1>
              </div>
            </div>
          </div>
        </div>
        <div
          class="max-w-md mx-auto mt-8 px-4"
        >
          <form
            class="bg-white dark:bg-fitfest-dark-secondary rounded-lg shadow-sm p-6 space-y-4 transition-colors duration-200"
          >
            <div>
              <label
                class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                for="date"
              >
                Date
              </label>
              <input
                class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle transition-colors duration-200"
                id="date"
                name="date"
                required=""
                type="date"
                value="2025-09-26"
              />
            </div>
            <div>
              <label
                class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                for="name"
              >
                Meal Name
              </label>
              <input
                class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle placeholder-gray-500 dark:placeholder-fitfest-subtle/50 transition-colors duration-200"
                id="name"
                name="name"
                placeholder="e.g., Oatmeal with berries"
                required=""
                type="text"
                value="a"
              />
            </div>
            <div>
              <label
                class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                for="calories"
              >
                Calories
              </label>
              <input
                class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle placeholder-gray-500 dark:placeholder-fitfest-subtle/50 transition-colors duration-200"
                id="calories"
                min="0"
                name="calories"
                placeholder="e.g., 300"
                required=""
                type="number"
                value=""
              />
            </div>
            <div
              class="grid grid-cols-3 gap-3"
            >
              <div>
                <label
                  class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                  for="protein"
                >
                  Protein (g)
                </label>
                <input
                  class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle placeholder-gray-500 dark:placeholder-fitfest-subtle/50 transition-colors duration-200"
                  id="protein"
                  min="0"
                  name="protein"
                  placeholder="0"
                  step="0.1"
                  type="number"
                  value=""
                />
              </div>
              <div>
                <label
                  class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                  for="carbs"
                >
                  Carbs (g)
                </label>
                <input
                  class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle placeholder-gray-500 dark:placeholder-fitfest-subtle/50 transition-colors duration-200"
                  id="carbs"
                  min="0"
                  name="carbs"
                  placeholder="0"
                  step="0.1"
                  type="number"
                  value=""
                />
              </div>
              <div>
                <label
                  class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                  for="fat"
                >
                  Fat (g)
                </label>
                <input
                  class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle placeholder-gray-500 dark:placeholder-fitfest-subtle/50 transition-colors duration-200"
                  id="fat"
                  min="0"
                  name="fat"
                  placeholder="0"
                  step="0.1"
                  type="number"
                  value=""
                />
              </div>
            </div>
            <div
              class="flex gap-3 pt-4"
            >
              <button
                class="flex-1 px-4 py-2 text-gray-700 dark:text-fitfest-subtle bg-gray-100 dark:bg-fitfest-dark-tertiary border border-gray-300 dark:border-fitfest-subtle/20 rounded-md hover:bg-gray-200 dark:hover:bg-fitfest-dark-tertiary/80 focus:outline-none focus:ring-2 focus:ring-gray-500 focus:border-transparent transition-colors duration-200"
                type="button"
              >
                Cancel
              </button>
              <button
                class="flex-1 px-4 py-2 text-white bg-blue-600 border border-transparent rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-colors duration-200 disabled:opacity-50 disabled:cursor-not-allowed"
                type="submit"
              >
                Save Meal
              </button>
            </div>
          </form>
        </div>
      </div>
    </div>
  </body>
</html>
    at .../src/tests/MealLogForm.test.tsx:352:17
    at runWithExpensiveErrorDiagnosticsDisabled (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/config.js:47:12)
    at checkCallback (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:124:77)
    at checkRealTimersCallback (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:118:16)
    at Timeout.task [as _onTimeout] (.../fitfest/app/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
    at listOnTimeout (node:internal/timers:581:17)
    at processTimers (node:internal/timers:519:7)
should validate numeric inputs correctly
Stack Traces | 1s run time
Error: Unable to find a label with the text of: Calories

Ignored nodes: comments, script, style
<body>
  <div />
</body>
    at waitForWrapper (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:163:27)
    at Object.<anonymous> (.../src/tests/MealLogForm.test.tsx:397:20)
    at Promise.then.completed (.../fitfest/app/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../fitfest/app/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../fitfest/app/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (.../fitfest/app/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at run (.../fitfest/app/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../fitfest/app/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (.../fitfest/app/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (.../fitfest/app/node_modules/jest-runner/build/testWorker.js:106:12)
NutritionPage Flaky Tests for Analytics Demo should test dark mode functionality
Stack Traces | 1s run time
Error: expect(element).toHaveClass("dark:bg-fitfest-dark-secondary")

Expected the element to have class:
  dark:bg-fitfest-dark-secondary
Received:
  flex items-center gap-3

Ignored nodes: comments, script, style
<html>
  <head />
  <body>
    <div>
      <div
        class="min-h-screen bg-fitfest-light dark:bg-fitfest-dark transition-colors duration-200"
      >
        <div
          class="bg-white dark:bg-fitfest-dark-secondary shadow-sm border-b border-fitfest-subtle/20 dark:border-fitfest-subtle/10 transition-colors duration-200"
        >
          <div
            class="flex items-center justify-between p-4"
          >
            <div
              class="flex items-center gap-3"
            >
              <button
                class="p-2 hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary rounded-full transition-colors duration-200"
              >
                <svg
                  aria-hidden="true"
                  class="w-5 h-5 text-fitfest-text dark:text-fitfest-subtle"
                  data-slot="icon"
                  fill="none"
                  stroke="currentColor"
                  stroke-width="1.5"
                  viewBox="0 0 24 24"
                  xmlns="http://www.w3.org/2000/svg"
                >
                  <path
                    d="M15.75 19.5 8.25 12l7.5-7.5"
                    stroke-linecap="round"
                    stroke-linejoin="round"
                  />
                </svg>
              </button>
              <h1
                class="text-xl font-bold text-fitfest-deep dark:text-fitfest-subtle"
              >
                Food diary
              </h1>
            </div>
          </div>
          <div
            class="px-4 pb-4"
          >
            <p
              class="text-fitfest-text dark:text-fitfest-subtle text-sm"
            >
              Friday
              , 
              September 26
            </p>
          </div>
          <div
            class="px-4 pb-4"
          >
            <div
              class="flex gap-2 overflow-x-auto"
            >
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
              >
                <span
                  class="text-xs opacity-70"
                >
                  Mon
                </span>
                <span
                  class="text-lg"
                >
                  22
                </span>
              </button>
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
              >
                <span
                  class="text-xs opacity-70"
                >
                  Tue
                </span>
                <span
                  class="text-lg"
                >
                  23
                </span>
              </button>
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
              >
                <span
                  class="text-xs opacity-70"
                >
                  Wed
                </span>
                <span
                  class="text-lg"
                >
                  24
                </span>
              </button>
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
              >
                <span
                  class="text-xs opacity-70"
                >
                  Thu
                </span>
                <span
                  class="text-lg"
                >
                  25
                </span>
              </button>
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-fitfest-deep text-white dark:bg-fitfest-bright dark:text-fitfest-dark"
              >
                <span
                  class="text-xs opacity-70"
                >
                  Today
                </span>
                <span
                  class="text-lg"
                >
                  26
                </span>
              </button>
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fi...
    at toHaveClass (.../src/tests/NutritionPage.test.tsx:360:27)
    at runWithExpensiveErrorDiagnosticsDisabled (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/config.js:47:12)
    at checkCallback (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:124:77)
    at checkRealTimersCallback (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:118:16)
    at Timeout.task [as _onTimeout] (.../fitfest/app/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
    at listOnTimeout (node:internal/timers:581:17)
    at processTimers (node:internal/timers:519:7)
NutritionPage Flaky Tests for Analytics Demo should validate form validation logic
Stack Traces | 1s run time
Error: Found multiple elements with the text: 0

Here are the matching elements:

Ignored nodes: comments, script, style
<div
  class="text-4xl font-bold text-fitfest-deep dark:text-fitfest-subtle mb-1"
>
  0
</div>

Ignored nodes: comments, script, style
<div
  class="text-lg font-bold text-fitfest-deep dark:text-fitfest-subtle mb-2"
>
  0
  <span
    class="text-sm font-normal text-fitfest-subtle dark:text-fitfest-subtle/70"
  >
    /
    98
    g
  </span>
</div>

Ignored nodes: comments, script, style
<div
  class="text-lg font-bold text-fitfest-deep dark:text-fitfest-subtle mb-2"
>
  0
  <span
    class="text-sm font-normal text-fitfest-subtle dark:text-fitfest-subtle/70"
  >
    /
    244
    g
  </span>
</div>

Ignored nodes: comments, script, style
<div
  class="text-lg font-bold text-fitfest-deep dark:text-fitfest-subtle mb-2"
>
  0
  <span
    class="text-sm font-normal text-fitfest-subtle dark:text-fitfest-subtle/70"
  >
    /
    68
    g
  </span>
</div>

(If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)).

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="min-h-screen bg-fitfest-light dark:bg-fitfest-dark transition-colors duration-200"
    >
      <div
        class="bg-white dark:bg-fitfest-dark-secondary shadow-sm border-b border-fitfest-subtle/20 dark:border-fitfest-subtle/10 transition-colors duration-200"
      >
        <div
          class="flex items-center justify-between p-4"
        >
          <div
            class="flex items-center gap-3"
          >
            <button
              class="p-2 hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary rounded-full transition-colors duration-200"
            >
              <svg
                aria-hidden="true"
                class="w-5 h-5 text-fitfest-text dark:text-fitfest-subtle"
                data-slot="icon"
                fill="none"
                stroke="currentColor"
                stroke-width="1.5"
                viewBox="0 0 24 24"
                xmlns="http://www.w3.org/2000/svg"
              >
                <path
                  d="M15.75 19.5 8.25 12l7.5-7.5"
                  stroke-linecap="round"
                  stroke-linejoin="round"
                />
              </svg>
            </button>
            <h1
              class="text-xl font-bold text-fitfest-deep dark:text-fitfest-subtle"
            >
              Food diary
            </h1>
          </div>
        </div>
        <div
          class="px-4 pb-4"
        >
          <p
            class="text-fitfest-text dark:text-fitfest-subtle text-sm"
          >
            Friday
            , 
            September 26
          </p>
        </div>
        <div
          class="px-4 pb-4"
        >
          <div
            class="flex gap-2 overflow-x-auto"
          >
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Mon
              </span>
              <span
                class="text-lg"
              >
                22
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Tue
              </span>
              <span
                class="text-lg"
              >
                23
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Wed
              </span>
              <span
                class="text-lg"
              >
                24
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Thu
              </span>
              <span
                class="text-lg"
              >
                25
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-fitfest-deep text-white dark:bg-fitfest-bright dark:text-fitfest-dark"
            >
              <span
                class="text-xs opacity-70"
              >
                Today
              </span>
              <span
                class="text-lg"
              >
                26
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Sat
              </span>
              <span
                class="text-...
    at waitForWrapper (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:163:27)
    at Object.<anonymous> (.../src/tests/NutritionPage.test.tsx:413:20)
    at Promise.then.completed (.../fitfest/app/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../fitfest/app/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../fitfest/app/node_modules/jest-circus/build/run.js:316:40)
    at runNextTicks (node:internal/process/task_queues:60:5)
    at listOnTimeout (node:internal/timers:545:9)
    at processTimers (node:internal/timers:519:7)
    at _runTest (.../fitfest/app/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at run (.../fitfest/app/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../fitfest/app/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (.../fitfest/app/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (.../fitfest/app/node_modules/jest-runner/build/testWorker.js:106:12)
NutritionPage Meal Display should display snacks in the Snacks section
Stack Traces | 1s run time
Error: Unable to find an element with the text: Apple. 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.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="min-h-screen bg-fitfest-light dark:bg-fitfest-dark transition-colors duration-200"
    >
      <div
        class="bg-white dark:bg-fitfest-dark-secondary shadow-sm border-b border-fitfest-subtle/20 dark:border-fitfest-subtle/10 transition-colors duration-200"
      >
        <div
          class="flex items-center justify-between p-4"
        >
          <div
            class="flex items-center gap-3"
          >
            <button
              class="p-2 hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary rounded-full transition-colors duration-200"
            >
              <svg
                aria-hidden="true"
                class="w-5 h-5 text-fitfest-text dark:text-fitfest-subtle"
                data-slot="icon"
                fill="none"
                stroke="currentColor"
                stroke-width="1.5"
                viewBox="0 0 24 24"
                xmlns="http://www.w3.org/2000/svg"
              >
                <path
                  d="M15.75 19.5 8.25 12l7.5-7.5"
                  stroke-linecap="round"
                  stroke-linejoin="round"
                />
              </svg>
            </button>
            <h1
              class="text-xl font-bold text-fitfest-deep dark:text-fitfest-subtle"
            >
              Food diary
            </h1>
          </div>
        </div>
        <div
          class="px-4 pb-4"
        >
          <p
            class="text-fitfest-text dark:text-fitfest-subtle text-sm"
          >
            Friday
            , 
            September 26
          </p>
        </div>
        <div
          class="px-4 pb-4"
        >
          <div
            class="flex gap-2 overflow-x-auto"
          >
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Mon
              </span>
              <span
                class="text-lg"
              >
                22
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Tue
              </span>
              <span
                class="text-lg"
              >
                23
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Wed
              </span>
              <span
                class="text-lg"
              >
                24
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Thu
              </span>
              <span
                class="text-lg"
              >
                25
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-fitfest-deep text-white dark:bg-fitfest-bright dark:text-fitfest-dark"
            >
              <span
                class="text-xs opacity-70"
              >
                Today
              </span>
              <span
                class="text-lg"
              >
                26
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Sat
              </span>
              <span
                class="text-...
    at waitForWrapper (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:163:27)
    at Object.<anonymous> (.../src/tests/NutritionPage.test.tsx:235:20)
    at Promise.then.completed (.../fitfest/app/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../fitfest/app/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../fitfest/app/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (.../fitfest/app/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at run (.../fitfest/app/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../fitfest/app/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (.../fitfest/app/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (.../fitfest/app/node_modules/jest-runner/build/testWorker.js:106:12)
should display snacks in the Snacks section
Stack Traces | 1s run time
Error: Unable to find an element with the text: Apple. 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.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="min-h-screen bg-fitfest-light dark:bg-fitfest-dark transition-colors duration-200"
    >
      <div
        class="bg-white dark:bg-fitfest-dark-secondary shadow-sm border-b border-fitfest-subtle/20 dark:border-fitfest-subtle/10 transition-colors duration-200"
      >
        <div
          class="flex items-center justify-between p-4"
        >
          <div
            class="flex items-center gap-3"
          >
            <button
              class="p-2 hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary rounded-full transition-colors duration-200"
            >
              <svg
                aria-hidden="true"
                class="w-5 h-5 text-fitfest-text dark:text-fitfest-subtle"
                data-slot="icon"
                fill="none"
                stroke="currentColor"
                stroke-width="1.5"
                viewBox="0 0 24 24"
                xmlns="http://www.w3.org/2000/svg"
              >
                <path
                  d="M15.75 19.5 8.25 12l7.5-7.5"
                  stroke-linecap="round"
                  stroke-linejoin="round"
                />
              </svg>
            </button>
            <h1
              class="text-xl font-bold text-fitfest-deep dark:text-fitfest-subtle"
            >
              Food diary
            </h1>
          </div>
        </div>
        <div
          class="px-4 pb-4"
        >
          <p
            class="text-fitfest-text dark:text-fitfest-subtle text-sm"
          >
            Friday
            , 
            September 26
          </p>
        </div>
        <div
          class="px-4 pb-4"
        >
          <div
            class="flex gap-2 overflow-x-auto"
          >
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Mon
              </span>
              <span
                class="text-lg"
              >
                22
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Tue
              </span>
              <span
                class="text-lg"
              >
                23
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Wed
              </span>
              <span
                class="text-lg"
              >
                24
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Thu
              </span>
              <span
                class="text-lg"
              >
                25
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-fitfest-deep text-white dark:bg-fitfest-bright dark:text-fitfest-dark"
            >
              <span
                class="text-xs opacity-70"
              >
                Today
              </span>
              <span
                class="text-lg"
              >
                26
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Sat
              </span>
              <span
                class="text-...
    at waitForWrapper (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:163:27)
    at Object.<anonymous> (.../src/tests/NutritionPage.test.tsx:235:20)
    at Promise.then.completed (.../fitfest/app/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../fitfest/app/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../fitfest/app/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (.../fitfest/app/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at run (.../fitfest/app/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../fitfest/app/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (.../fitfest/app/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (.../fitfest/app/node_modules/jest-runner/build/testWorker.js:106:12)
should test dark mode functionality
Stack Traces | 1s run time
Error: expect(element).toHaveClass("dark:bg-fitfest-dark-secondary")

Expected the element to have class:
  dark:bg-fitfest-dark-secondary
Received:
  flex items-center gap-3

Ignored nodes: comments, script, style
<html>
  <head />
  <body>
    <div>
      <div
        class="min-h-screen bg-fitfest-light dark:bg-fitfest-dark transition-colors duration-200"
      >
        <div
          class="bg-white dark:bg-fitfest-dark-secondary shadow-sm border-b border-fitfest-subtle/20 dark:border-fitfest-subtle/10 transition-colors duration-200"
        >
          <div
            class="flex items-center justify-between p-4"
          >
            <div
              class="flex items-center gap-3"
            >
              <button
                class="p-2 hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary rounded-full transition-colors duration-200"
              >
                <svg
                  aria-hidden="true"
                  class="w-5 h-5 text-fitfest-text dark:text-fitfest-subtle"
                  data-slot="icon"
                  fill="none"
                  stroke="currentColor"
                  stroke-width="1.5"
                  viewBox="0 0 24 24"
                  xmlns="http://www.w3.org/2000/svg"
                >
                  <path
                    d="M15.75 19.5 8.25 12l7.5-7.5"
                    stroke-linecap="round"
                    stroke-linejoin="round"
                  />
                </svg>
              </button>
              <h1
                class="text-xl font-bold text-fitfest-deep dark:text-fitfest-subtle"
              >
                Food diary
              </h1>
            </div>
          </div>
          <div
            class="px-4 pb-4"
          >
            <p
              class="text-fitfest-text dark:text-fitfest-subtle text-sm"
            >
              Friday
              , 
              September 26
            </p>
          </div>
          <div
            class="px-4 pb-4"
          >
            <div
              class="flex gap-2 overflow-x-auto"
            >
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
              >
                <span
                  class="text-xs opacity-70"
                >
                  Mon
                </span>
                <span
                  class="text-lg"
                >
                  22
                </span>
              </button>
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
              >
                <span
                  class="text-xs opacity-70"
                >
                  Tue
                </span>
                <span
                  class="text-lg"
                >
                  23
                </span>
              </button>
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
              >
                <span
                  class="text-xs opacity-70"
                >
                  Wed
                </span>
                <span
                  class="text-lg"
                >
                  24
                </span>
              </button>
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
              >
                <span
                  class="text-xs opacity-70"
                >
                  Thu
                </span>
                <span
                  class="text-lg"
                >
                  25
                </span>
              </button>
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-fitfest-deep text-white dark:bg-fitfest-bright dark:text-fitfest-dark"
              >
                <span
                  class="text-xs opacity-70"
                >
                  Today
                </span>
                <span
                  class="text-lg"
                >
                  26
                </span>
              </button>
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fi...
    at toHaveClass (.../src/tests/NutritionPage.test.tsx:360:27)
    at runWithExpensiveErrorDiagnosticsDisabled (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/config.js:47:12)
    at checkCallback (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:124:77)
    at checkRealTimersCallback (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:118:16)
    at Timeout.task [as _onTimeout] (.../fitfest/app/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
    at listOnTimeout (node:internal/timers:581:17)
    at processTimers (node:internal/timers:519:7)
should validate form validation logic
Stack Traces | 1s run time
Error: Found multiple elements with the text: 0

Here are the matching elements:

Ignored nodes: comments, script, style
<div
  class="text-4xl font-bold text-fitfest-deep dark:text-fitfest-subtle mb-1"
>
  0
</div>

Ignored nodes: comments, script, style
<div
  class="text-lg font-bold text-fitfest-deep dark:text-fitfest-subtle mb-2"
>
  0
  <span
    class="text-sm font-normal text-fitfest-subtle dark:text-fitfest-subtle/70"
  >
    /
    98
    g
  </span>
</div>

Ignored nodes: comments, script, style
<div
  class="text-lg font-bold text-fitfest-deep dark:text-fitfest-subtle mb-2"
>
  0
  <span
    class="text-sm font-normal text-fitfest-subtle dark:text-fitfest-subtle/70"
  >
    /
    244
    g
  </span>
</div>

Ignored nodes: comments, script, style
<div
  class="text-lg font-bold text-fitfest-deep dark:text-fitfest-subtle mb-2"
>
  0
  <span
    class="text-sm font-normal text-fitfest-subtle dark:text-fitfest-subtle/70"
  >
    /
    68
    g
  </span>
</div>

(If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)).

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="min-h-screen bg-fitfest-light dark:bg-fitfest-dark transition-colors duration-200"
    >
      <div
        class="bg-white dark:bg-fitfest-dark-secondary shadow-sm border-b border-fitfest-subtle/20 dark:border-fitfest-subtle/10 transition-colors duration-200"
      >
        <div
          class="flex items-center justify-between p-4"
        >
          <div
            class="flex items-center gap-3"
          >
            <button
              class="p-2 hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary rounded-full transition-colors duration-200"
            >
              <svg
                aria-hidden="true"
                class="w-5 h-5 text-fitfest-text dark:text-fitfest-subtle"
                data-slot="icon"
                fill="none"
                stroke="currentColor"
                stroke-width="1.5"
                viewBox="0 0 24 24"
                xmlns="http://www.w3.org/2000/svg"
              >
                <path
                  d="M15.75 19.5 8.25 12l7.5-7.5"
                  stroke-linecap="round"
                  stroke-linejoin="round"
                />
              </svg>
            </button>
            <h1
              class="text-xl font-bold text-fitfest-deep dark:text-fitfest-subtle"
            >
              Food diary
            </h1>
          </div>
        </div>
        <div
          class="px-4 pb-4"
        >
          <p
            class="text-fitfest-text dark:text-fitfest-subtle text-sm"
          >
            Friday
            , 
            September 26
          </p>
        </div>
        <div
          class="px-4 pb-4"
        >
          <div
            class="flex gap-2 overflow-x-auto"
          >
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Mon
              </span>
              <span
                class="text-lg"
              >
                22
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Tue
              </span>
              <span
                class="text-lg"
              >
                23
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Wed
              </span>
              <span
                class="text-lg"
              >
                24
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Thu
              </span>
              <span
                class="text-lg"
              >
                25
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-fitfest-deep text-white dark:bg-fitfest-bright dark:text-fitfest-dark"
            >
              <span
                class="text-xs opacity-70"
              >
                Today
              </span>
              <span
                class="text-lg"
              >
                26
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Sat
              </span>
              <span
                class="text-...
    at waitForWrapper (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:163:27)
    at Object.<anonymous> (.../src/tests/NutritionPage.test.tsx:413:20)
    at Promise.then.completed (.../fitfest/app/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../fitfest/app/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../fitfest/app/node_modules/jest-circus/build/run.js:316:40)
    at runNextTicks (node:internal/process/task_queues:60:5)
    at listOnTimeout (node:internal/timers:545:9)
    at processTimers (node:internal/timers:519:7)
    at _runTest (.../fitfest/app/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at run (.../fitfest/app/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../fitfest/app/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (.../fitfest/app/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (.../fitfest/app/node_modules/jest-runner/build/testWorker.js:106:12)
NutritionPage Date Selection should fetch meals for selected date
Stack Traces | 1.01s run time
Error: expect(jest.fn()).toHaveBeenCalledWith(...expected)

Expected: StringContaining "/api/meals?date=", Any<Object>
Received
       1: ".../api/auth/session", {"credentials": "include", "headers": {"Cache-Control": "no-cache"}}
       2: "/api/profile", {"credentials": "include"}
       3: "/api/meals?date=2025-09-26"

Number of calls: 3

Ignored nodes: comments, script, style
<html>
  <head />
  <body>
    <div>
      <div
        class="min-h-screen bg-fitfest-light dark:bg-fitfest-dark transition-colors duration-200"
      >
        <div
          class="bg-white dark:bg-fitfest-dark-secondary shadow-sm border-b border-fitfest-subtle/20 dark:border-fitfest-subtle/10 transition-colors duration-200"
        >
          <div
            class="flex items-center justify-between p-4"
          >
            <div
              class="flex items-center gap-3"
            >
              <button
                class="p-2 hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary rounded-full transition-colors duration-200"
              >
                <svg
                  aria-hidden="true"
                  class="w-5 h-5 text-fitfest-text dark:text-fitfest-subtle"
                  data-slot="icon"
                  fill="none"
                  stroke="currentColor"
                  stroke-width="1.5"
                  viewBox="0 0 24 24"
                  xmlns="http://www.w3.org/2000/svg"
                >
                  <path
                    d="M15.75 19.5 8.25 12l7.5-7.5"
                    stroke-linecap="round"
                    stroke-linejoin="round"
                  />
                </svg>
              </button>
              <h1
                class="text-xl font-bold text-fitfest-deep dark:text-fitfest-subtle"
              >
                Food diary
              </h1>
            </div>
          </div>
          <div
            class="px-4 pb-4"
          >
            <p
              class="text-fitfest-text dark:text-fitfest-subtle text-sm"
            >
              Friday
              , 
              September 26
            </p>
          </div>
          <div
            class="px-4 pb-4"
          >
            <div
              class="flex gap-2 overflow-x-auto"
            >
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
              >
                <span
                  class="text-xs opacity-70"
                >
                  Mon
                </span>
                <span
                  class="text-lg"
                >
                  22
                </span>
              </button>
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
              >
                <span
                  class="text-xs opacity-70"
                >
                  Tue
                </span>
                <span
                  class="text-lg"
                >
                  23
                </span>
              </button>
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
              >
                <span
                  class="text-xs opacity-70"
                >
                  Wed
                </span>
                <span
                  class="text-lg"
                >
                  24
                </span>
              </button>
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
              >
                <span
                  class="text-xs opacity-70"
                >
                  Thu
                </span>
                <span
                  class="text-lg"
                >
                  25
                </span>
              </button>
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-fitfest-deep text-white dark:bg-fitfest-bright dark:text-fitfest-dark"
              >
                <span
                  class="text-xs opacity-70"
                >
                  Today
                </span>
                <span
                  class="text-lg"
                >
                  26
                </span>
              </button>
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fi...
    at toHaveBeenCalledWith (.../src/tests/NutritionPage.test.tsx:115:23)
    at runWithExpensiveErrorDiagnosticsDisabled (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/config.js:47:12)
    at checkCallback (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:124:77)
    at checkRealTimersCallback (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:118:16)
    at Timeout.task [as _onTimeout] (.../fitfest/app/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
    at listOnTimeout (node:internal/timers:581:17)
    at processTimers (node:internal/timers:519:7)
NutritionPage Meal Display should display individual meals in correct categories
Stack Traces | 1.01s run time
Error: Unable to find an element with the text: Chicken Salad. 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.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="min-h-screen bg-fitfest-light dark:bg-fitfest-dark transition-colors duration-200"
    >
      <div
        class="bg-white dark:bg-fitfest-dark-secondary shadow-sm border-b border-fitfest-subtle/20 dark:border-fitfest-subtle/10 transition-colors duration-200"
      >
        <div
          class="flex items-center justify-between p-4"
        >
          <div
            class="flex items-center gap-3"
          >
            <button
              class="p-2 hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary rounded-full transition-colors duration-200"
            >
              <svg
                aria-hidden="true"
                class="w-5 h-5 text-fitfest-text dark:text-fitfest-subtle"
                data-slot="icon"
                fill="none"
                stroke="currentColor"
                stroke-width="1.5"
                viewBox="0 0 24 24"
                xmlns="http://www.w3.org/2000/svg"
              >
                <path
                  d="M15.75 19.5 8.25 12l7.5-7.5"
                  stroke-linecap="round"
                  stroke-linejoin="round"
                />
              </svg>
            </button>
            <h1
              class="text-xl font-bold text-fitfest-deep dark:text-fitfest-subtle"
            >
              Food diary
            </h1>
          </div>
        </div>
        <div
          class="px-4 pb-4"
        >
          <p
            class="text-fitfest-text dark:text-fitfest-subtle text-sm"
          >
            Friday
            , 
            September 26
          </p>
        </div>
        <div
          class="px-4 pb-4"
        >
          <div
            class="flex gap-2 overflow-x-auto"
          >
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Mon
              </span>
              <span
                class="text-lg"
              >
                22
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Tue
              </span>
              <span
                class="text-lg"
              >
                23
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Wed
              </span>
              <span
                class="text-lg"
              >
                24
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Thu
              </span>
              <span
                class="text-lg"
              >
                25
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-fitfest-deep text-white dark:bg-fitfest-bright dark:text-fitfest-dark"
            >
              <span
                class="text-xs opacity-70"
              >
                Today
              </span>
              <span
                class="text-lg"
              >
                26
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Sat
              </span>
              <span
                class="text-...
    at waitForWrapper (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:163:27)
    at Object.<anonymous> (.../src/tests/NutritionPage.test.tsx:186:20)
    at Promise.then.completed (.../fitfest/app/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../fitfest/app/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../fitfest/app/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (.../fitfest/app/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at run (.../fitfest/app/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../fitfest/app/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (.../fitfest/app/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (.../fitfest/app/node_modules/jest-runner/build/testWorker.js:106:12)
NutritionPage Meal Display should display total calories correctly
Stack Traces | 1.01s run time
Error: Unable to find an element with the text: 550. 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.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="min-h-screen bg-fitfest-light dark:bg-fitfest-dark transition-colors duration-200"
    >
      <div
        class="bg-white dark:bg-fitfest-dark-secondary shadow-sm border-b border-fitfest-subtle/20 dark:border-fitfest-subtle/10 transition-colors duration-200"
      >
        <div
          class="flex items-center justify-between p-4"
        >
          <div
            class="flex items-center gap-3"
          >
            <button
              class="p-2 hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary rounded-full transition-colors duration-200"
            >
              <svg
                aria-hidden="true"
                class="w-5 h-5 text-fitfest-text dark:text-fitfest-subtle"
                data-slot="icon"
                fill="none"
                stroke="currentColor"
                stroke-width="1.5"
                viewBox="0 0 24 24"
                xmlns="http://www.w3.org/2000/svg"
              >
                <path
                  d="M15.75 19.5 8.25 12l7.5-7.5"
                  stroke-linecap="round"
                  stroke-linejoin="round"
                />
              </svg>
            </button>
            <h1
              class="text-xl font-bold text-fitfest-deep dark:text-fitfest-subtle"
            >
              Food diary
            </h1>
          </div>
        </div>
        <div
          class="px-4 pb-4"
        >
          <p
            class="text-fitfest-text dark:text-fitfest-subtle text-sm"
          >
            Friday
            , 
            September 26
          </p>
        </div>
        <div
          class="px-4 pb-4"
        >
          <div
            class="flex gap-2 overflow-x-auto"
          >
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Mon
              </span>
              <span
                class="text-lg"
              >
                22
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Tue
              </span>
              <span
                class="text-lg"
              >
                23
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Wed
              </span>
              <span
                class="text-lg"
              >
                24
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Thu
              </span>
              <span
                class="text-lg"
              >
                25
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-fitfest-deep text-white dark:bg-fitfest-bright dark:text-fitfest-dark"
            >
              <span
                class="text-xs opacity-70"
              >
                Today
              </span>
              <span
                class="text-lg"
              >
                26
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Sat
              </span>
              <span
                class="text-...
    at waitForWrapper (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:163:27)
    at Object.<anonymous> (.../src/tests/NutritionPage.test.tsx:167:20)
    at Promise.then.completed (.../fitfest/app/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../fitfest/app/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../fitfest/app/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (.../fitfest/app/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at run (.../fitfest/app/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../fitfest/app/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (.../fitfest/app/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (.../fitfest/app/node_modules/jest-runner/build/testWorker.js:106:12)
should display individual meals in correct categories
Stack Traces | 1.01s run time
Error: Unable to find an element with the text: Chicken Salad. 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.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="min-h-screen bg-fitfest-light dark:bg-fitfest-dark transition-colors duration-200"
    >
      <div
        class="bg-white dark:bg-fitfest-dark-secondary shadow-sm border-b border-fitfest-subtle/20 dark:border-fitfest-subtle/10 transition-colors duration-200"
      >
        <div
          class="flex items-center justify-between p-4"
        >
          <div
            class="flex items-center gap-3"
          >
            <button
              class="p-2 hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary rounded-full transition-colors duration-200"
            >
              <svg
                aria-hidden="true"
                class="w-5 h-5 text-fitfest-text dark:text-fitfest-subtle"
                data-slot="icon"
                fill="none"
                stroke="currentColor"
                stroke-width="1.5"
                viewBox="0 0 24 24"
                xmlns="http://www.w3.org/2000/svg"
              >
                <path
                  d="M15.75 19.5 8.25 12l7.5-7.5"
                  stroke-linecap="round"
                  stroke-linejoin="round"
                />
              </svg>
            </button>
            <h1
              class="text-xl font-bold text-fitfest-deep dark:text-fitfest-subtle"
            >
              Food diary
            </h1>
          </div>
        </div>
        <div
          class="px-4 pb-4"
        >
          <p
            class="text-fitfest-text dark:text-fitfest-subtle text-sm"
          >
            Friday
            , 
            September 26
          </p>
        </div>
        <div
          class="px-4 pb-4"
        >
          <div
            class="flex gap-2 overflow-x-auto"
          >
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Mon
              </span>
              <span
                class="text-lg"
              >
                22
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Tue
              </span>
              <span
                class="text-lg"
              >
                23
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Wed
              </span>
              <span
                class="text-lg"
              >
                24
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Thu
              </span>
              <span
                class="text-lg"
              >
                25
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-fitfest-deep text-white dark:bg-fitfest-bright dark:text-fitfest-dark"
            >
              <span
                class="text-xs opacity-70"
              >
                Today
              </span>
              <span
                class="text-lg"
              >
                26
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Sat
              </span>
              <span
                class="text-...
    at waitForWrapper (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:163:27)
    at Object.<anonymous> (.../src/tests/NutritionPage.test.tsx:186:20)
    at Promise.then.completed (.../fitfest/app/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../fitfest/app/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../fitfest/app/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (.../fitfest/app/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at run (.../fitfest/app/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../fitfest/app/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (.../fitfest/app/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (.../fitfest/app/node_modules/jest-runner/build/testWorker.js:106:12)
should display total calories correctly
Stack Traces | 1.01s run time
Error: Unable to find an element with the text: 550. 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.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="min-h-screen bg-fitfest-light dark:bg-fitfest-dark transition-colors duration-200"
    >
      <div
        class="bg-white dark:bg-fitfest-dark-secondary shadow-sm border-b border-fitfest-subtle/20 dark:border-fitfest-subtle/10 transition-colors duration-200"
      >
        <div
          class="flex items-center justify-between p-4"
        >
          <div
            class="flex items-center gap-3"
          >
            <button
              class="p-2 hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary rounded-full transition-colors duration-200"
            >
              <svg
                aria-hidden="true"
                class="w-5 h-5 text-fitfest-text dark:text-fitfest-subtle"
                data-slot="icon"
                fill="none"
                stroke="currentColor"
                stroke-width="1.5"
                viewBox="0 0 24 24"
                xmlns="http://www.w3.org/2000/svg"
              >
                <path
                  d="M15.75 19.5 8.25 12l7.5-7.5"
                  stroke-linecap="round"
                  stroke-linejoin="round"
                />
              </svg>
            </button>
            <h1
              class="text-xl font-bold text-fitfest-deep dark:text-fitfest-subtle"
            >
              Food diary
            </h1>
          </div>
        </div>
        <div
          class="px-4 pb-4"
        >
          <p
            class="text-fitfest-text dark:text-fitfest-subtle text-sm"
          >
            Friday
            , 
            September 26
          </p>
        </div>
        <div
          class="px-4 pb-4"
        >
          <div
            class="flex gap-2 overflow-x-auto"
          >
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Mon
              </span>
              <span
                class="text-lg"
              >
                22
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Tue
              </span>
              <span
                class="text-lg"
              >
                23
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Wed
              </span>
              <span
                class="text-lg"
              >
                24
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Thu
              </span>
              <span
                class="text-lg"
              >
                25
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-fitfest-deep text-white dark:bg-fitfest-bright dark:text-fitfest-dark"
            >
              <span
                class="text-xs opacity-70"
              >
                Today
              </span>
              <span
                class="text-lg"
              >
                26
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Sat
              </span>
              <span
                class="text-...
    at waitForWrapper (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:163:27)
    at Object.<anonymous> (.../src/tests/NutritionPage.test.tsx:167:20)
    at Promise.then.completed (.../fitfest/app/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../fitfest/app/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../fitfest/app/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (.../fitfest/app/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at run (.../fitfest/app/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../fitfest/app/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (.../fitfest/app/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (.../fitfest/app/node_modules/jest-runner/build/testWorker.js:106:12)
should fetch meals for selected date
Stack Traces | 1.01s run time
Error: expect(jest.fn()).toHaveBeenCalledWith(...expected)

Expected: StringContaining "/api/meals?date=", Any<Object>
Received
       1: ".../api/auth/session", {"credentials": "include", "headers": {"Cache-Control": "no-cache"}}
       2: "/api/profile", {"credentials": "include"}
       3: "/api/meals?date=2025-09-26"

Number of calls: 3

Ignored nodes: comments, script, style
<html>
  <head />
  <body>
    <div>
      <div
        class="min-h-screen bg-fitfest-light dark:bg-fitfest-dark transition-colors duration-200"
      >
        <div
          class="bg-white dark:bg-fitfest-dark-secondary shadow-sm border-b border-fitfest-subtle/20 dark:border-fitfest-subtle/10 transition-colors duration-200"
        >
          <div
            class="flex items-center justify-between p-4"
          >
            <div
              class="flex items-center gap-3"
            >
              <button
                class="p-2 hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary rounded-full transition-colors duration-200"
              >
                <svg
                  aria-hidden="true"
                  class="w-5 h-5 text-fitfest-text dark:text-fitfest-subtle"
                  data-slot="icon"
                  fill="none"
                  stroke="currentColor"
                  stroke-width="1.5"
                  viewBox="0 0 24 24"
                  xmlns="http://www.w3.org/2000/svg"
                >
                  <path
                    d="M15.75 19.5 8.25 12l7.5-7.5"
                    stroke-linecap="round"
                    stroke-linejoin="round"
                  />
                </svg>
              </button>
              <h1
                class="text-xl font-bold text-fitfest-deep dark:text-fitfest-subtle"
              >
                Food diary
              </h1>
            </div>
          </div>
          <div
            class="px-4 pb-4"
          >
            <p
              class="text-fitfest-text dark:text-fitfest-subtle text-sm"
            >
              Friday
              , 
              September 26
            </p>
          </div>
          <div
            class="px-4 pb-4"
          >
            <div
              class="flex gap-2 overflow-x-auto"
            >
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
              >
                <span
                  class="text-xs opacity-70"
                >
                  Mon
                </span>
                <span
                  class="text-lg"
                >
                  22
                </span>
              </button>
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
              >
                <span
                  class="text-xs opacity-70"
                >
                  Tue
                </span>
                <span
                  class="text-lg"
                >
                  23
                </span>
              </button>
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
              >
                <span
                  class="text-xs opacity-70"
                >
                  Wed
                </span>
                <span
                  class="text-lg"
                >
                  24
                </span>
              </button>
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
              >
                <span
                  class="text-xs opacity-70"
                >
                  Thu
                </span>
                <span
                  class="text-lg"
                >
                  25
                </span>
              </button>
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-fitfest-deep text-white dark:bg-fitfest-bright dark:text-fitfest-dark"
              >
                <span
                  class="text-xs opacity-70"
                >
                  Today
                </span>
                <span
                  class="text-lg"
                >
                  26
                </span>
              </button>
              <button
                class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fi...
    at toHaveBeenCalledWith (.../src/tests/NutritionPage.test.tsx:115:23)
    at runWithExpensiveErrorDiagnosticsDisabled (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/config.js:47:12)
    at checkCallback (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:124:77)
    at checkRealTimersCallback (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:118:16)
    at Timeout.task [as _onTimeout] (.../fitfest/app/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
    at listOnTimeout (node:internal/timers:581:17)
    at processTimers (node:internal/timers:519:7)
NutritionPage Meal Display should display macro totals correctly
Stack Traces | 1.01s run time
Error: Unable to find an element with the text: 33. 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.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="min-h-screen bg-fitfest-light dark:bg-fitfest-dark transition-colors duration-200"
    >
      <div
        class="bg-white dark:bg-fitfest-dark-secondary shadow-sm border-b border-fitfest-subtle/20 dark:border-fitfest-subtle/10 transition-colors duration-200"
      >
        <div
          class="flex items-center justify-between p-4"
        >
          <div
            class="flex items-center gap-3"
          >
            <button
              class="p-2 hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary rounded-full transition-colors duration-200"
            >
              <svg
                aria-hidden="true"
                class="w-5 h-5 text-fitfest-text dark:text-fitfest-subtle"
                data-slot="icon"
                fill="none"
                stroke="currentColor"
                stroke-width="1.5"
                viewBox="0 0 24 24"
                xmlns="http://www.w3.org/2000/svg"
              >
                <path
                  d="M15.75 19.5 8.25 12l7.5-7.5"
                  stroke-linecap="round"
                  stroke-linejoin="round"
                />
              </svg>
            </button>
            <h1
              class="text-xl font-bold text-fitfest-deep dark:text-fitfest-subtle"
            >
              Food diary
            </h1>
          </div>
        </div>
        <div
          class="px-4 pb-4"
        >
          <p
            class="text-fitfest-text dark:text-fitfest-subtle text-sm"
          >
            Friday
            , 
            September 26
          </p>
        </div>
        <div
          class="px-4 pb-4"
        >
          <div
            class="flex gap-2 overflow-x-auto"
          >
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Mon
              </span>
              <span
                class="text-lg"
              >
                22
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Tue
              </span>
              <span
                class="text-lg"
              >
                23
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Wed
              </span>
              <span
                class="text-lg"
              >
                24
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Thu
              </span>
              <span
                class="text-lg"
              >
                25
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-fitfest-deep text-white dark:bg-fitfest-bright dark:text-fitfest-dark"
            >
              <span
                class="text-xs opacity-70"
              >
                Today
              </span>
              <span
                class="text-lg"
              >
                26
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Sat
              </span>
              <span
                class="text-...
    at waitForWrapper (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:163:27)
    at Object.<anonymous> (.../src/tests/NutritionPage.test.tsx:176:20)
    at Promise.then.completed (.../fitfest/app/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../fitfest/app/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../fitfest/app/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (.../fitfest/app/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at run (.../fitfest/app/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../fitfest/app/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (.../fitfest/app/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (.../fitfest/app/node_modules/jest-runner/build/testWorker.js:106:12)
should display macro totals correctly
Stack Traces | 1.01s run time
Error: Unable to find an element with the text: 33. 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.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="min-h-screen bg-fitfest-light dark:bg-fitfest-dark transition-colors duration-200"
    >
      <div
        class="bg-white dark:bg-fitfest-dark-secondary shadow-sm border-b border-fitfest-subtle/20 dark:border-fitfest-subtle/10 transition-colors duration-200"
      >
        <div
          class="flex items-center justify-between p-4"
        >
          <div
            class="flex items-center gap-3"
          >
            <button
              class="p-2 hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary rounded-full transition-colors duration-200"
            >
              <svg
                aria-hidden="true"
                class="w-5 h-5 text-fitfest-text dark:text-fitfest-subtle"
                data-slot="icon"
                fill="none"
                stroke="currentColor"
                stroke-width="1.5"
                viewBox="0 0 24 24"
                xmlns="http://www.w3.org/2000/svg"
              >
                <path
                  d="M15.75 19.5 8.25 12l7.5-7.5"
                  stroke-linecap="round"
                  stroke-linejoin="round"
                />
              </svg>
            </button>
            <h1
              class="text-xl font-bold text-fitfest-deep dark:text-fitfest-subtle"
            >
              Food diary
            </h1>
          </div>
        </div>
        <div
          class="px-4 pb-4"
        >
          <p
            class="text-fitfest-text dark:text-fitfest-subtle text-sm"
          >
            Friday
            , 
            September 26
          </p>
        </div>
        <div
          class="px-4 pb-4"
        >
          <div
            class="flex gap-2 overflow-x-auto"
          >
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Mon
              </span>
              <span
                class="text-lg"
              >
                22
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Tue
              </span>
              <span
                class="text-lg"
              >
                23
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Wed
              </span>
              <span
                class="text-lg"
              >
                24
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Thu
              </span>
              <span
                class="text-lg"
              >
                25
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-fitfest-deep text-white dark:bg-fitfest-bright dark:text-fitfest-dark"
            >
              <span
                class="text-xs opacity-70"
              >
                Today
              </span>
              <span
                class="text-lg"
              >
                26
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Sat
              </span>
              <span
                class="text-...
    at waitForWrapper (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:163:27)
    at Object.<anonymous> (.../src/tests/NutritionPage.test.tsx:176:20)
    at Promise.then.completed (.../fitfest/app/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../fitfest/app/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../fitfest/app/node_modules/jest-circus/build/run.js:316:40)
    at _runTest (.../fitfest/app/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at run (.../fitfest/app/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../fitfest/app/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (.../fitfest/app/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (.../fitfest/app/node_modules/jest-runner/build/testWorker.js:106:12)
NutritionPage Date Selection should display current date by default
Stack Traces | 1.03s run time
Error: Unable to find an element with the text: Friday. 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.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="min-h-screen bg-fitfest-light dark:bg-fitfest-dark transition-colors duration-200"
    >
      <div
        class="bg-white dark:bg-fitfest-dark-secondary shadow-sm border-b border-fitfest-subtle/20 dark:border-fitfest-subtle/10 transition-colors duration-200"
      >
        <div
          class="flex items-center justify-between p-4"
        >
          <div
            class="flex items-center gap-3"
          >
            <button
              class="p-2 hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary rounded-full transition-colors duration-200"
            >
              <svg
                aria-hidden="true"
                class="w-5 h-5 text-fitfest-text dark:text-fitfest-subtle"
                data-slot="icon"
                fill="none"
                stroke="currentColor"
                stroke-width="1.5"
                viewBox="0 0 24 24"
                xmlns="http://www.w3.org/2000/svg"
              >
                <path
                  d="M15.75 19.5 8.25 12l7.5-7.5"
                  stroke-linecap="round"
                  stroke-linejoin="round"
                />
              </svg>
            </button>
            <h1
              class="text-xl font-bold text-fitfest-deep dark:text-fitfest-subtle"
            >
              Food diary
            </h1>
          </div>
        </div>
        <div
          class="px-4 pb-4"
        >
          <p
            class="text-fitfest-text dark:text-fitfest-subtle text-sm"
          >
            Friday
            , 
            September 26
          </p>
        </div>
        <div
          class="px-4 pb-4"
        >
          <div
            class="flex gap-2 overflow-x-auto"
          >
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Mon
              </span>
              <span
                class="text-lg"
              >
                22
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Tue
              </span>
              <span
                class="text-lg"
              >
                23
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Wed
              </span>
              <span
                class="text-lg"
              >
                24
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Thu
              </span>
              <span
                class="text-lg"
              >
                25
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-fitfest-deep text-white dark:bg-fitfest-bright dark:text-fitfest-dark"
            >
              <span
                class="text-xs opacity-70"
              >
                Today
              </span>
              <span
                class="text-lg"
              >
                26
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Sat
              </span>
              <span
                class="text-...
    at waitForWrapper (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:163:27)
    at Object.<anonymous> (.../src/tests/NutritionPage.test.tsx:94:20)
    at Promise.then.completed (.../fitfest/app/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../fitfest/app/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../fitfest/app/node_modules/jest-circus/build/run.js:316:40)
    at runNextTicks (node:internal/process/task_queues:60:5)
    at listOnTimeout (node:internal/timers:545:9)
    at processTimers (node:internal/timers:519:7)
    at _runTest (.../fitfest/app/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at run (.../fitfest/app/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../fitfest/app/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (.../fitfest/app/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (.../fitfest/app/node_modules/jest-runner/build/testWorker.js:106:12)
should display current date by default
Stack Traces | 1.03s run time
Error: Unable to find an element with the text: Friday. 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.

Ignored nodes: comments, script, style
<body>
  <div>
    <div
      class="min-h-screen bg-fitfest-light dark:bg-fitfest-dark transition-colors duration-200"
    >
      <div
        class="bg-white dark:bg-fitfest-dark-secondary shadow-sm border-b border-fitfest-subtle/20 dark:border-fitfest-subtle/10 transition-colors duration-200"
      >
        <div
          class="flex items-center justify-between p-4"
        >
          <div
            class="flex items-center gap-3"
          >
            <button
              class="p-2 hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary rounded-full transition-colors duration-200"
            >
              <svg
                aria-hidden="true"
                class="w-5 h-5 text-fitfest-text dark:text-fitfest-subtle"
                data-slot="icon"
                fill="none"
                stroke="currentColor"
                stroke-width="1.5"
                viewBox="0 0 24 24"
                xmlns="http://www.w3.org/2000/svg"
              >
                <path
                  d="M15.75 19.5 8.25 12l7.5-7.5"
                  stroke-linecap="round"
                  stroke-linejoin="round"
                />
              </svg>
            </button>
            <h1
              class="text-xl font-bold text-fitfest-deep dark:text-fitfest-subtle"
            >
              Food diary
            </h1>
          </div>
        </div>
        <div
          class="px-4 pb-4"
        >
          <p
            class="text-fitfest-text dark:text-fitfest-subtle text-sm"
          >
            Friday
            , 
            September 26
          </p>
        </div>
        <div
          class="px-4 pb-4"
        >
          <div
            class="flex gap-2 overflow-x-auto"
          >
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Mon
              </span>
              <span
                class="text-lg"
              >
                22
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Tue
              </span>
              <span
                class="text-lg"
              >
                23
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Wed
              </span>
              <span
                class="text-lg"
              >
                24
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Thu
              </span>
              <span
                class="text-lg"
              >
                25
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-fitfest-deep text-white dark:bg-fitfest-bright dark:text-fitfest-dark"
            >
              <span
                class="text-xs opacity-70"
              >
                Today
              </span>
              <span
                class="text-lg"
              >
                26
              </span>
            </button>
            <button
              class="flex flex-col items-center justify-center min-w-[60px] h-16 rounded-lg text-sm font-medium transition-colors bg-white dark:bg-fitfest-dark-secondary text-fitfest-text dark:text-fitfest-subtle hover:bg-fitfest-light dark:hover:bg-fitfest-dark-tertiary border border-fitfest-subtle/20 dark:border-fitfest-subtle/10"
            >
              <span
                class="text-xs opacity-70"
              >
                Sat
              </span>
              <span
                class="text-...
    at waitForWrapper (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:163:27)
    at Object.<anonymous> (.../src/tests/NutritionPage.test.tsx:94:20)
    at Promise.then.completed (.../fitfest/app/node_modules/jest-circus/build/utils.js:298:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (.../fitfest/app/node_modules/jest-circus/build/utils.js:231:10)
    at _callCircusTest (.../fitfest/app/node_modules/jest-circus/build/run.js:316:40)
    at runNextTicks (node:internal/process/task_queues:60:5)
    at listOnTimeout (node:internal/timers:545:9)
    at processTimers (node:internal/timers:519:7)
    at _runTest (.../fitfest/app/node_modules/jest-circus/build/run.js:252:3)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:126:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at _runTestsForDescribeBlock (.../fitfest/app/node_modules/jest-circus/build/run.js:121:9)
    at run (.../fitfest/app/node_modules/jest-circus/build/run.js:71:3)
    at runAndTransformResultsToJestFormat (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:122:21)
    at jestAdapter (.../fitfest/app/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapter.js:79:19)
    at runTestInternal (.../fitfest/app/node_modules/jest-runner/build/runTest.js:367:16)
    at runTest (.../fitfest/app/node_modules/jest-runner/build/runTest.js:444:34)
    at Object.worker (.../fitfest/app/node_modules/jest-runner/build/testWorker.js:106:12)
MealLogForm Form Submission should submit form with correct data
Stack Traces | 1.03s run time
Error: expect(jest.fn()).toHaveBeenCalledWith(...expected)

Expected: "/api/meals", {"body": "{\"name\":\"Chicken Salad\",\"type\":\"lunch\",\"date\":{\"inverse\":false},\"calories\":\"350\",\"protein\":\"\",\"carbs\":\"\",\"fat\":\"\"}", "headers": {"Content-Type": "application/json"}, "method": "POST"}
Received
       1
          ".../api/auth/session",
          Object {
        -   "body": "{\"name\":\"Chicken Salad\",\"type\":\"lunch\",\"date\":{\"inverse\":false},\"calories\":\"350\",\"protein\":\"\",\"carbs\":\"\",\"fat\":\"\"}",
        +   "credentials": "include",
            "headers": Object {
        -     "Content-Type": "application/json",
        +     "Cache-Control": "no-cache",
            },
        -   "method": "POST",
          },
       2
          "/api/meals",
          Object {
        -   "body": "{\"name\":\"Chicken Salad\",\"type\":\"lunch\",\"date\":{\"inverse\":false},\"calories\":\"350\",\"protein\":\"\",\"carbs\":\"\",\"fat\":\"\"}",
        +   "body": "{\"name\":\"Chicken Salad\",\"type\":\"lunch\",\"date\":\"2025-09-26\",\"calories\":\"350\",\"protein\":null,\"carbs\":null,\"fat\":null}",
            "headers": Object {
              "Content-Type": "application/json",
            },
            "method": "POST",
          },

Number of calls: 2

Ignored nodes: comments, script, style
<html>
  <head />
  <body>
    <div>
      <div
        class="min-h-screen bg-gray-50 dark:bg-fitfest-dark transition-colors duration-200"
      >
        <div
          class="bg-white dark:bg-fitfest-dark-secondary shadow-sm border-b border-fitfest-subtle/20 dark:border-fitfest-subtle/10 transition-colors duration-200"
        >
          <div
            class="flex items-center justify-between p-4"
          >
            <div
              class="flex items-center gap-3"
            >
              <button
                class="p-2 hover:bg-gray-100 dark:hover:bg-fitfest-dark-tertiary rounded-full transition-colors duration-200"
              >
                <svg
                  aria-hidden="true"
                  class="w-5 h-5 text-gray-600 dark:text-fitfest-subtle"
                  data-slot="icon"
                  fill="none"
                  stroke="currentColor"
                  stroke-width="1.5"
                  viewBox="0 0 24 24"
                  xmlns="http://www.w3.org/2000/svg"
                >
                  <path
                    d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"
                    stroke-linecap="round"
                    stroke-linejoin="round"
                  />
                </svg>
              </button>
              <div
                class="flex items-center gap-2"
              >
                <span
                  class="text-2xl"
                >
                  🥗
                </span>
                <h1
                  class="text-xl font-bold text-gray-900 dark:text-fitfest-subtle"
                >
                  Log 
                  Lunch
                </h1>
              </div>
            </div>
          </div>
        </div>
        <div
          class="max-w-md mx-auto mt-8 px-4"
        >
          <form
            class="bg-white dark:bg-fitfest-dark-secondary rounded-lg shadow-sm p-6 space-y-4 transition-colors duration-200"
          >
            <div>
              <label
                class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                for="date"
              >
                Date
              </label>
              <input
                class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle transition-colors duration-200"
                id="date"
                name="date"
                required=""
                type="date"
                value="2025-09-26"
              />
            </div>
            <div>
              <label
                class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                for="name"
              >
                Meal Name
              </label>
              <input
                class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle placeholder-gray-500 dark:placeholder-fitfest-subtle/50 transition-colors duration-200"
                id="name"
                name="name"
                placeholder="e.g., Oatmeal with berries"
                required=""
                type="text"
                value="Chicken Salad"
              />
            </div>
            <div>
              <label
                class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                for="calories"
              >
                Calories
              </label>
              <input
                class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle placeholder-gray-500 dark:placeholder-fitfest-subtle/50 transition-colors duration-200"
                id="calories"
                min="0"
                name="calories"
                placeholder="e.g., 300"
                required=""
                type="number"
                value="350"
              />
            </div>
            <div
              class="grid grid-cols-3 gap-3"
            >
              <div>
                <label
                  class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                  for="protein"
                >
                  Protein (g)
                </label>
                <input
                  class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle placeholder-gray-500 dark:placeholder-fitfest-subtle/50 transition-colors duration-200"
                  id="protein"
                  min="0"
                  name="protein"
                  placeholder="0"
                  step="0.1"
                  type="number"
                  value=""
                />
              </div>
              <div>
                <label
                  class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                  for="carbs"
                >
                  Carbs (g)
                </label>
                <input
                  class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle placeholder-gray-500 dark:placeholder-fitfest-subtle/50 transition-colors duration-200"
                  id="carbs"
                  min="0"
                  name="carbs"
                  placeholder="0"
                  step="0.1"
                  type="number"
                  value=""
                />
              </div>
              <div>
                <label
                  class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                  for="fat"
                >
                  Fat (g)
                </label>
                <input
                  class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle placeholder-gray-500 dark:placeholder-fitfest-subtle/50 transition-colors duration-200"
                  id="fat"
                  min="0"
                  name="fat"
                  placeholder="0"
                  step="0.1"
                  type="number"
                  value=""
                />
              </div>
            </div>
            <div
              class="flex gap-3 pt-4"
            >
              <button
                class="flex-1 px-4 py-2 text-gray-700 dark:text-fitfest-subtle bg-gray-100 dark:bg-fitfest-dark-tertiary border border-gray-300 dark:border-fitfest-subtle/20 rounded-md hover:bg-gray-200 dark:hover:bg-fitfest-dark-tertiary/80 focus:outline-none focus:ring-2 focus:ring-gray-500 focus:border-transparent transition-colors duration-200"
                type="button"
              >
                Cancel
              </button>
              <button
                class="flex-1 px-4 py-2 text-white bg-blue-600 border border-transparent rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-colors duration-200 disabled:opacity-50 disabled:cursor-not-allowed"
                type="submit"
              >
                Save Meal
              </button>
            </div>
          </form>
        </div>
      </div>
    </div>
  </body>
</html>
    at toHaveBeenCalledWith (.../src/tests/MealLogForm.test.tsx:156:23)
    at runWithExpensiveErrorDiagnosticsDisabled (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/config.js:47:12)
    at checkCallback (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:124:77)
    at checkRealTimersCallback (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:118:16)
    at Timeout.task [as _onTimeout] (.../fitfest/app/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
    at listOnTimeout (node:internal/timers:581:17)
    at processTimers (node:internal/timers:519:7)
should submit form with correct data
Stack Traces | 1.03s run time
Error: expect(jest.fn()).toHaveBeenCalledWith(...expected)

Expected: "/api/meals", {"body": "{\"name\":\"Chicken Salad\",\"type\":\"lunch\",\"date\":{\"inverse\":false},\"calories\":\"350\",\"protein\":\"\",\"carbs\":\"\",\"fat\":\"\"}", "headers": {"Content-Type": "application/json"}, "method": "POST"}
Received
       1
          ".../api/auth/session",
          Object {
        -   "body": "{\"name\":\"Chicken Salad\",\"type\":\"lunch\",\"date\":{\"inverse\":false},\"calories\":\"350\",\"protein\":\"\",\"carbs\":\"\",\"fat\":\"\"}",
        +   "credentials": "include",
            "headers": Object {
        -     "Content-Type": "application/json",
        +     "Cache-Control": "no-cache",
            },
        -   "method": "POST",
          },
       2
          "/api/meals",
          Object {
        -   "body": "{\"name\":\"Chicken Salad\",\"type\":\"lunch\",\"date\":{\"inverse\":false},\"calories\":\"350\",\"protein\":\"\",\"carbs\":\"\",\"fat\":\"\"}",
        +   "body": "{\"name\":\"Chicken Salad\",\"type\":\"lunch\",\"date\":\"2025-09-26\",\"calories\":\"350\",\"protein\":null,\"carbs\":null,\"fat\":null}",
            "headers": Object {
              "Content-Type": "application/json",
            },
            "method": "POST",
          },

Number of calls: 2

Ignored nodes: comments, script, style
<html>
  <head />
  <body>
    <div>
      <div
        class="min-h-screen bg-gray-50 dark:bg-fitfest-dark transition-colors duration-200"
      >
        <div
          class="bg-white dark:bg-fitfest-dark-secondary shadow-sm border-b border-fitfest-subtle/20 dark:border-fitfest-subtle/10 transition-colors duration-200"
        >
          <div
            class="flex items-center justify-between p-4"
          >
            <div
              class="flex items-center gap-3"
            >
              <button
                class="p-2 hover:bg-gray-100 dark:hover:bg-fitfest-dark-tertiary rounded-full transition-colors duration-200"
              >
                <svg
                  aria-hidden="true"
                  class="w-5 h-5 text-gray-600 dark:text-fitfest-subtle"
                  data-slot="icon"
                  fill="none"
                  stroke="currentColor"
                  stroke-width="1.5"
                  viewBox="0 0 24 24"
                  xmlns="http://www.w3.org/2000/svg"
                >
                  <path
                    d="M10.5 19.5 3 12m0 0 7.5-7.5M3 12h18"
                    stroke-linecap="round"
                    stroke-linejoin="round"
                  />
                </svg>
              </button>
              <div
                class="flex items-center gap-2"
              >
                <span
                  class="text-2xl"
                >
                  🥗
                </span>
                <h1
                  class="text-xl font-bold text-gray-900 dark:text-fitfest-subtle"
                >
                  Log 
                  Lunch
                </h1>
              </div>
            </div>
          </div>
        </div>
        <div
          class="max-w-md mx-auto mt-8 px-4"
        >
          <form
            class="bg-white dark:bg-fitfest-dark-secondary rounded-lg shadow-sm p-6 space-y-4 transition-colors duration-200"
          >
            <div>
              <label
                class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                for="date"
              >
                Date
              </label>
              <input
                class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle transition-colors duration-200"
                id="date"
                name="date"
                required=""
                type="date"
                value="2025-09-26"
              />
            </div>
            <div>
              <label
                class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                for="name"
              >
                Meal Name
              </label>
              <input
                class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle placeholder-gray-500 dark:placeholder-fitfest-subtle/50 transition-colors duration-200"
                id="name"
                name="name"
                placeholder="e.g., Oatmeal with berries"
                required=""
                type="text"
                value="Chicken Salad"
              />
            </div>
            <div>
              <label
                class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                for="calories"
              >
                Calories
              </label>
              <input
                class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle placeholder-gray-500 dark:placeholder-fitfest-subtle/50 transition-colors duration-200"
                id="calories"
                min="0"
                name="calories"
                placeholder="e.g., 300"
                required=""
                type="number"
                value="350"
              />
            </div>
            <div
              class="grid grid-cols-3 gap-3"
            >
              <div>
                <label
                  class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                  for="protein"
                >
                  Protein (g)
                </label>
                <input
                  class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle placeholder-gray-500 dark:placeholder-fitfest-subtle/50 transition-colors duration-200"
                  id="protein"
                  min="0"
                  name="protein"
                  placeholder="0"
                  step="0.1"
                  type="number"
                  value=""
                />
              </div>
              <div>
                <label
                  class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                  for="carbs"
                >
                  Carbs (g)
                </label>
                <input
                  class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle placeholder-gray-500 dark:placeholder-fitfest-subtle/50 transition-colors duration-200"
                  id="carbs"
                  min="0"
                  name="carbs"
                  placeholder="0"
                  step="0.1"
                  type="number"
                  value=""
                />
              </div>
              <div>
                <label
                  class="block text-sm font-medium text-gray-700 dark:text-fitfest-subtle mb-1"
                  for="fat"
                >
                  Fat (g)
                </label>
                <input
                  class="w-full px-3 py-2 border border-gray-300 dark:border-fitfest-subtle/20 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-fitfest-dark-tertiary text-gray-900 dark:text-fitfest-subtle placeholder-gray-500 dark:placeholder-fitfest-subtle/50 transition-colors duration-200"
                  id="fat"
                  min="0"
                  name="fat"
                  placeholder="0"
                  step="0.1"
                  type="number"
                  value=""
                />
              </div>
            </div>
            <div
              class="flex gap-3 pt-4"
            >
              <button
                class="flex-1 px-4 py-2 text-gray-700 dark:text-fitfest-subtle bg-gray-100 dark:bg-fitfest-dark-tertiary border border-gray-300 dark:border-fitfest-subtle/20 rounded-md hover:bg-gray-200 dark:hover:bg-fitfest-dark-tertiary/80 focus:outline-none focus:ring-2 focus:ring-gray-500 focus:border-transparent transition-colors duration-200"
                type="button"
              >
                Cancel
              </button>
              <button
                class="flex-1 px-4 py-2 text-white bg-blue-600 border border-transparent rounded-md hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-colors duration-200 disabled:opacity-50 disabled:cursor-not-allowed"
                type="submit"
              >
                Save Meal
              </button>
            </div>
          </form>
        </div>
      </div>
    </div>
  </body>
</html>
    at toHaveBeenCalledWith (.../src/tests/MealLogForm.test.tsx:156:23)
    at runWithExpensiveErrorDiagnosticsDisabled (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/config.js:47:12)
    at checkCallback (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:124:77)
    at checkRealTimersCallback (.../fitfest/app/node_modules/@testing-library/react/node_modules/@.../dom/dist/wait-for.js:118:16)
    at Timeout.task [as _onTimeout] (.../fitfest/app/node_modules/jsdom/lib/jsdom/browser/Window.js:520:19)
    at listOnTimeout (node:internal/timers:581:17)
    at processTimers (node:internal/timers:519:7)
Sentry Test Analytics - Performance Tests should fail due to slow performance
Stack Traces | 2s run time
Error: expect(received).toBeLessThan(expected)

Expected: < 1000
Received:   2002
    at Object.toBeLessThan (.../src/tests/SentryTestAnalytics.test.tsx:261:22)
should fail due to slow performance
Stack Traces | 2s run time
Error: expect(received).toBeLessThan(expected)

Expected: < 1000
Received:   2002
    at Object.toBeLessThan (.../src/tests/SentryTestAnalytics.test.tsx:261:22)

@sfanahata
Copy link
Copy Markdown
Owner Author

@sentry review

import { getServerSession } from 'next-auth';
import { authOptions } from '@/lib/auth.config';
import { PrismaClient, AchievementType } from '@prisma/client';

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Multiple PrismaClient instances are being created throughout the codebase. In production, this can cause connection pool exhaustion. Create a singleton instance in a shared module (e.g., src/lib/prisma.ts) and import it instead of creating new instances in each route handler.
Severity: HIGH

🤖 Prompt for AI Agent

Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: app/src/app/api/achievements/route.ts#L5

Potential issue: Multiple PrismaClient instances are being created throughout the
codebase. In production, this can cause connection pool exhaustion. Create a singleton
instance in a shared module (e.g., `src/lib/prisma.ts`) and import it instead of
creating new instances in each route handler.

Did we get this right? 👍 / 👎 to inform future reviews.
Reference ID: 7293328

Comment on lines +8 to +64
// Achievement definitions with metadata
const ACHIEVEMENT_DEFINITIONS = {
[AchievementType.STREAK_3_DAYS]: {
name: 'Streak Starter',
description: 'Work out for 3 days in a row',
icon: '🔥',
color: '#ff6b35',
gradient: 'linear-gradient(135deg, #ff6b35, #f7931e)'
},
[AchievementType.STREAK_5_DAYS]: {
name: 'Consistency King',
description: 'Work out for 5 days in a row',
icon: '👑',
color: '#ffd700',
gradient: 'linear-gradient(135deg, #ffd700, #ffed4e)'
},
[AchievementType.STREAK_7_DAYS]: {
name: 'Week Warrior',
description: 'Work out for 7 days in a row',
icon: '⚔️',
color: '#8b5cf6',
gradient: 'linear-gradient(135deg, #8b5cf6, #a855f7)'
},
[AchievementType.STREAK_14_DAYS]: {
name: 'Fortnight Fighter',
description: 'Work out for 14 days in a row',
icon: '🛡️',
color: '#06b6d4',
gradient: 'linear-gradient(135deg, #06b6d4, #0891b2)'
},
[AchievementType.STREAK_30_DAYS]: {
name: 'Monthly Master',
description: 'Work out for 30 days in a row',
icon: '🏆',
color: '#10b981',
gradient: 'linear-gradient(135deg, #10b981, #059669)'
},
[AchievementType.FIRST_WORKOUT]: {
name: 'First Steps',
description: 'Complete your first workout',
icon: '🎯',
color: '#3b82f6',
gradient: 'linear-gradient(135deg, #3b82f6, #1d4ed8)'
},
[AchievementType.WORKOUT_MARATHON]: {
name: 'Marathon Master',
description: 'Complete 26 workouts',
icon: '🏃‍♂️',
color: '#ef4444',
gradient: 'linear-gradient(135deg, #ef4444, #dc2626)'
},
[AchievementType.CONSISTENCY_CHAMPION]: {
name: 'Consistency Champion',
description: 'Work out 4+ days in a week',
icon: '💪',
color: '#f59e0b',
gradient: 'linear-gradient(135deg, #f59e0b, #d97706)'
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Achievement metadata (ACHIEVEMENT_DEFINITIONS) is hardcoded in the route handler. This creates maintainability issues - the same definitions are needed in the components and services. Extract this to a shared constants file (e.g., src/lib/achievementConstants.ts) that can be imported by all modules needing these definitions.
Severity: MEDIUM

🤖 Prompt for AI Agent

Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: app/src/app/api/achievements/route.ts#L8-L64

Potential issue: Achievement metadata (ACHIEVEMENT_DEFINITIONS) is hardcoded in the
route handler. This creates maintainability issues - the same definitions are needed in
the components and services. Extract this to a shared constants file (e.g.,
`src/lib/achievementConstants.ts`) that can be imported by all modules needing these
definitions.

Did we get this right? 👍 / 👎 to inform future reviews.
Reference ID: 7293328

Comment on lines +97 to +103
console.error('Error fetching achievements:', error);
return NextResponse.json(
{ error: 'Failed to fetch achievements' },
{ status: 500 }
);
}
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The error handling in the catch block doesn't distinguish between different error types (validation errors, database errors, auth errors). Consider adding more specific error handling and logging to help with debugging. Also, ensure sensitive information (like full error objects) is not exposed to clients.
Severity: MEDIUM

🤖 Prompt for AI Agent

Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: app/src/app/api/achievements/route.ts#L97-L103

Potential issue: The error handling in the catch block doesn't distinguish between
different error types (validation errors, database errors, auth errors). Consider adding
more specific error handling and logging to help with debugging. Also, ensure sensitive
information (like full error objects) is not exposed to clients.

Did we get this right? 👍 / 👎 to inform future reviews.
Reference ID: 7293328

Comment on lines +170 to +176
}
});
}
} catch (error) {
console.error('Error creating/updating achievement:', error);
return NextResponse.json(
{ error: 'Failed to create/update achievement' },
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar error handling issue in POST method catch block. The generic 'Failed to create/update achievement' message makes it difficult to debug issues. Consider logging the specific error type and providing more context in error responses.
Severity: MEDIUM

🤖 Prompt for AI Agent

Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: app/src/app/api/achievements/route.ts#L170-L176

Potential issue: Similar error handling issue in POST method catch block. The generic
'Failed to create/update achievement' message makes it difficult to debug issues.
Consider logging the specific error type and providing more context in error responses.

Did we get this right? 👍 / 👎 to inform future reviews.
Reference ID: 7293328

@@ -0,0 +1,214 @@
import { PrismaClient, AchievementType } from '@prisma/client';

const prisma = new PrismaClient();
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PrismaClient instance should be created as a singleton to avoid connection pool exhaustion. Move this to a shared module and import it instead of creating a new instance here.
Severity: HIGH

🤖 Prompt for AI Agent

Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: app/src/lib/achievementService.ts#L3

Potential issue: PrismaClient instance should be created as a singleton to avoid
connection pool exhaustion. Move this to a shared module and import it instead of
creating a new instance here.

Did we get this right? 👍 / 👎 to inform future reviews.
Reference ID: 7293328

@@ -2,6 +2,7 @@ import { NextRequest, NextResponse } from "next/server";
import { getServerSession } from "next-auth";
import { authOptions } from "@/lib/auth.config";
import { PrismaClient, ActivityType, EffortLevel } from "@prisma/client";
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Multiple PrismaClient instances throughout the codebase create connection pool issues. Use a shared singleton instance instead of creating new instances in each route.
Severity: HIGH

🤖 Prompt for AI Agent

Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: app/src/app/api/activities/route.ts#L4

Potential issue: Multiple PrismaClient instances throughout the codebase create
connection pool issues. Use a shared singleton instance instead of creating new
instances in each route.

Did we get this right? 👍 / 👎 to inform future reviews.
Reference ID: 7293328

Comment on lines +1 to +87
import { AchievementType } from '@prisma/client';

describe('Achievement System', () => {
describe('Achievement Types', () => {
it('should have all required achievement types', () => {
expect(AchievementType.STREAK_3_DAYS).toBe('STREAK_3_DAYS');
expect(AchievementType.STREAK_5_DAYS).toBe('STREAK_5_DAYS');
expect(AchievementType.STREAK_7_DAYS).toBe('STREAK_7_DAYS');
expect(AchievementType.STREAK_14_DAYS).toBe('STREAK_14_DAYS');
expect(AchievementType.STREAK_30_DAYS).toBe('STREAK_30_DAYS');
expect(AchievementType.FIRST_WORKOUT).toBe('FIRST_WORKOUT');
expect(AchievementType.WORKOUT_MARATHON).toBe('WORKOUT_MARATHON');
expect(AchievementType.CONSISTENCY_CHAMPION).toBe('CONSISTENCY_CHAMPION');
});
});

describe('Achievement Logic', () => {
it('should calculate streak correctly for consecutive days', () => {
const today = new Date();
const yesterday = new Date(today);
yesterday.setDate(yesterday.getDate() - 1);
const twoDaysAgo = new Date(today);
twoDaysAgo.setDate(twoDaysAgo.getDate() - 2);

// Test that we can create date arrays for streak calculation
const activities = [today, yesterday, twoDaysAgo];
const uniqueDates = [...new Set(activities.map(date => date.toDateString()))];

expect(uniqueDates.length).toBe(3);
});

it('should handle broken streaks correctly', () => {
const today = new Date();
const threeDaysAgo = new Date(today);
threeDaysAgo.setDate(threeDaysAgo.getDate() - 3);
const fourDaysAgo = new Date(today);
fourDaysAgo.setDate(fourDaysAgo.getDate() - 4);

const activities = [today, threeDaysAgo, fourDaysAgo];
const uniqueDates = [...new Set(activities.map(date => date.toDateString()))];

expect(uniqueDates.length).toBe(3);
});

it('should calculate weekly consistency correctly', () => {
const oneWeekAgo = new Date();
oneWeekAgo.setDate(oneWeekAgo.getDate() - 7);

// Create activities for 4 different days in the last week
const activities = [
{ date: new Date(oneWeekAgo.getTime() + 1 * 24 * 60 * 60 * 1000) },
{ date: new Date(oneWeekAgo.getTime() + 2 * 24 * 60 * 60 * 1000) },
{ date: new Date(oneWeekAgo.getTime() + 3 * 24 * 60 * 60 * 1000) },
{ date: new Date(oneWeekAgo.getTime() + 4 * 24 * 60 * 60 * 1000) },
];

const uniqueDays = new Set(
activities.map(activity => activity.date.toDateString())
).size;

expect(uniqueDays).toBe(4);
expect(uniqueDays >= 4).toBe(true); // Should qualify for consistency achievement
});
});

describe('Achievement Definitions', () => {
it('should have proper achievement metadata structure', () => {
const mockAchievement = {
id: 'test-achievement',
name: 'Streak Starter',
description: 'Work out for 3 days in a row',
icon: '🔥',
count: 1,
color: '#ff6b35',
gradient: 'linear-gradient(135deg, #ff6b35, #f7931e)',
earnedAt: new Date()
};

expect(mockAchievement.name).toBe('Streak Starter');
expect(mockAchievement.description).toBe('Work out for 3 days in a row');
expect(mockAchievement.icon).toBe('🔥');
expect(mockAchievement.count).toBe(1);
expect(mockAchievement.color).toBe('#ff6b35');
expect(mockAchievement.gradient).toContain('linear-gradient');
});
});
});
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The test file has minimal coverage and doesn't test the actual database operations or integration with PrismaClient. The tests are mostly checking constant values. Consider adding integration tests that mock PrismaClient to test: 1) Achievement creation flow, 2) Streak calculation with real date scenarios, 3) Edge cases (timezone issues, leap years, etc.), and 4) Concurrent achievement awards.
Severity: MEDIUM

🤖 Prompt for AI Agent

Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: app/src/tests/AchievementSystem.test.tsx#L1-L87

Potential issue: The test file has minimal coverage and doesn't test the actual database
operations or integration with PrismaClient. The tests are mostly checking constant
values. Consider adding integration tests that mock PrismaClient to test: 1) Achievement
creation flow, 2) Streak calculation with real date scenarios, 3) Edge cases (timezone
issues, leap years, etc.), and 4) Concurrent achievement awards.

Did we get this right? 👍 / 👎 to inform future reviews.
Reference ID: 7293328

Comment on lines +15 to +28
});

describe('Achievement Logic', () => {
it('should calculate streak correctly for consecutive days', () => {
const today = new Date();
const yesterday = new Date(today);
yesterday.setDate(yesterday.getDate() - 1);
const twoDaysAgo = new Date(today);
twoDaysAgo.setDate(twoDaysAgo.getDate() - 2);

// Test that we can create date arrays for streak calculation
const activities = [today, yesterday, twoDaysAgo];
const uniqueDates = [...new Set(activities.map(date => date.toDateString()))];

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The streak calculation test at line 17-28 doesn't properly validate the calculation logic. It only checks that dates can be placed in an array, not that the streak calculation algorithm works correctly. Add tests with real streak scenarios (e.g., 3-day streak, broken streaks, current vs. longest streaks) and verify the AchievementService methods return expected values.
Severity: MEDIUM

🤖 Prompt for AI Agent

Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: app/src/tests/AchievementSystem.test.tsx#L15-L28

Potential issue: The streak calculation test at line 17-28 doesn't properly validate the
calculation logic. It only checks that dates can be placed in an array, not that the
streak calculation algorithm works correctly. Add tests with real streak scenarios
(e.g., 3-day streak, broken streaks, current vs. longest streaks) and verify the
AchievementService methods return expected values.

Did we get this right? 👍 / 👎 to inform future reviews.
Reference ID: 7293328

Comment on lines +133 to +139
// Increment count
const updatedAchievement = await prisma.achievement.update({
where: {
id: existingAchievement.id
},
data: {
count: existingAchievement.count + 1,
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The POST endpoint updates the earnedAt timestamp every time an achievement is re-earned. This changes the 'earned date' to the current time rather than keeping the original earned date. Consider either: 1) Not updating earnedAt on re-awards, or 2) Adding a separate lastAwardedAt field to track when it was most recently awarded. The current behavior could be confusing to users.
Severity: MEDIUM

🤖 Prompt for AI Agent

Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: app/src/app/api/achievements/route.ts#L133-L139

Potential issue: The POST endpoint updates the `earnedAt` timestamp every time an
achievement is re-earned. This changes the 'earned date' to the current time rather than
keeping the original earned date. Consider either: 1) Not updating earnedAt on
re-awards, or 2) Adding a separate `lastAwardedAt` field to track when it was most
recently awarded. The current behavior could be confusing to users.

Did we get this right? 👍 / 👎 to inform future reviews.
Reference ID: 7293328

Comment on lines +110 to +135
* Check and award consistency achievements (4+ days in a week)
*/
static async checkConsistencyAchievements(userId: string): Promise<void> {
const oneWeekAgo = new Date();
oneWeekAgo.setDate(oneWeekAgo.getDate() - 7);

// Get activities from the last week
const weeklyActivities = await prisma.activity.findMany({
where: {
userId,
date: {
gte: oneWeekAgo
}
},
select: { date: true }
});

// Count unique days with activities
const uniqueDays = new Set(
weeklyActivities.map(activity => activity.date.toDateString())
).size;

// Award consistency achievement if 4+ days
if (uniqueDays >= 4) {
await this.awardAchievement(userId, AchievementType.CONSISTENCY_CHAMPION);
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The checkConsistencyAchievements method calculates weekly consistency but only awards the achievement once per check. If called multiple times in a week when the user has 4+ activity days, it will increment the count. However, the achievement definition suggests it should only be earned once per week. Consider adding logic to prevent re-awarding within the same week or clarifying the intended behavior.
Severity: MEDIUM

🤖 Prompt for AI Agent

Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: app/src/lib/achievementService.ts#L110-L135

Potential issue: The checkConsistencyAchievements method calculates weekly consistency
but only awards the achievement once per check. If called multiple times in a week when
the user has 4+ activity days, it will increment the count. However, the achievement
definition suggests it should only be earned once per week. Consider adding logic to
prevent re-awarding within the same week or clarifying the intended behavior.

Did we get this right? 👍 / 👎 to inform future reviews.
Reference ID: 7293328

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant