1891 lines
94 KiB
Text
1891 lines
94 KiB
Text
|
||
[1m[46m RUN [49m[22m [36mv4.1.2 [39m[90mF:/Coding/MeshiTrack/packages/web[39m
|
||
|
||
node.exe : [90mstderr[2m | src/app/(dashboard)/shopping-lists/__tests__/page.test.tsx[2m >
|
||
[22m[2mShoppingListsPage[2m > [22m[2mloads and displays shopping lists
|
||
At line:1 char:1
|
||
+ & "C:\nodejs/node.exe" "C:\nodejs/node_modules/npm/bin/npx-cli.js" vi ...
|
||
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
+ CategoryInfo : NotSpecified: ([90mstderr[2m... shopping lists:String) [], RemoteException
|
||
+ FullyQualifiedErrorId : NativeCommandError
|
||
|
||
[22m[39mEach child in a list should have a unique "key" prop.
|
||
|
||
Check the render method of `ShoppingListsPage`. See https://react.dev/link/warning-keys for more information.
|
||
|
||
[32mΓ£ô[39m src/components/__tests__/ThemeProvider.test.tsx [2m([22m[2m8 tests[22m[2m)[22m[32m 102[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/__tests__/page.test.tsx [2m([22m[2m2 tests[22m[2m)[22m[32m 198[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/medicines/__tests__/page.test.tsx [2m([22m[2m3 tests[22m[2m)[22m[32m 136[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/products/__tests__/ImportDialog.test.tsx [2m([22m[2m11 tests[22m[2m)[22m[33m 353[2mms[22m[39m
|
||
[32mΓ£ô[39m src/components/__tests__/ui.test.tsx [2m([22m[2m11 tests[22m[2m)[22m[32m 284[2mms[22m[39m
|
||
[90mstderr[2m | src/app/(dashboard)/dashboard/__tests__/page.test.tsx[2m > [22m[2mDashboardPage[2m >
|
||
[22m[2mshows "good shape" message when no critical alerts
|
||
[22m[39mEach child in a list should have a unique "key" prop.
|
||
|
||
Check the render method of `DashboardPage`. See https://react.dev/link/warning-keys for more information.
|
||
|
||
[32mΓ£ô[39m src/components/__tests__/TopBar.test.tsx [2m([22m[2m4 tests[22m[2m)[22m[33m 331[2mms[22m[39m
|
||
[32mΓ£ô[39m src/components/__tests__/Sidebar.test.tsx [2m([22m[2m8 tests[22m[2m)[22m[33m 340[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/dashboard/__tests__/page.test.tsx [2m([22m[2m13 tests[22m[2m)[22m[33m 401[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/medicines/schedule/__tests__/page.test.tsx [2m([22m[2m14 tests[22m[2m)[22m[33m 388[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/shopping-lists/__tests__/page.test.tsx [2m([22m[2m6 tests[22m[2m)[22m[33m 685[2mms[22m[39m
|
||
[33m[2mΓ£ô[22m[39m toggles create list modal and submits [33m 332[2mms[22m[39m
|
||
[90mstderr[2m | src/app/(dashboard)/refills/__tests__/page.test.tsx[2m > [22m[2mRefillsPage[2m >
|
||
[22m[2mrenders Refills heading when householdId exists
|
||
[22m[39mAn update to AlertsPanel inside a test was not wrapped in act(...).
|
||
|
||
When testing, code that causes React state updates should be wrapped into act(...):
|
||
|
||
act(() => {
|
||
/* fire events that update state */
|
||
});
|
||
/* assert on the output */
|
||
|
||
This ensures that you're testing the behavior the user would see in the browser. Learn more at
|
||
https://react.dev/link/wrap-tests-with-act
|
||
An update to AlertsPanel inside a test was not wrapped in act(...).
|
||
|
||
When testing, code that causes React state updates should be wrapped into act(...):
|
||
|
||
act(() => {
|
||
/* fire events that update state */
|
||
});
|
||
/* assert on the output */
|
||
|
||
This ensures that you're testing the behavior the user would see in the browser. Learn more at
|
||
https://react.dev/link/wrap-tests-with-act
|
||
An update to RefillListsPanel inside a test was not wrapped in act(...).
|
||
|
||
When testing, code that causes React state updates should be wrapped into act(...):
|
||
|
||
act(() => {
|
||
/* fire events that update state */
|
||
});
|
||
/* assert on the output */
|
||
|
||
This ensures that you're testing the behavior the user would see in the browser. Learn more at
|
||
https://react.dev/link/wrap-tests-with-act
|
||
An update to RefillListsPanel inside a test was not wrapped in act(...).
|
||
|
||
When testing, code that causes React state updates should be wrapped into act(...):
|
||
|
||
act(() => {
|
||
/* fire events that update state */
|
||
});
|
||
/* assert on the output */
|
||
|
||
This ensures that you're testing the behavior the user would see in the browser. Learn more at
|
||
https://react.dev/link/wrap-tests-with-act
|
||
|
||
[90mstderr[2m | src/app/(dashboard)/medicine-prices/__tests__/page.test.tsx[2m > [22m[2mMedicinePricesPage[2m >
|
||
[22m[2mrenders Medicine Prices heading when householdId exists
|
||
[22m[39mAn update to MedicinePricesContent inside a test was not wrapped in act(...).
|
||
|
||
When testing, code that causes React state updates should be wrapped into act(...):
|
||
|
||
act(() => {
|
||
/* fire events that update state */
|
||
});
|
||
/* assert on the output */
|
||
|
||
This ensures that you're testing the behavior the user would see in the browser. Learn more at
|
||
https://react.dev/link/wrap-tests-with-act
|
||
An update to MedicinePricesContent inside a test was not wrapped in act(...).
|
||
|
||
When testing, code that causes React state updates should be wrapped into act(...):
|
||
|
||
act(() => {
|
||
/* fire events that update state */
|
||
});
|
||
/* assert on the output */
|
||
|
||
This ensures that you're testing the behavior the user would see in the browser. Learn more at
|
||
https://react.dev/link/wrap-tests-with-act
|
||
|
||
[32mΓ£ô[39m src/app/(dashboard)/recipes/new/__tests__/page.test.tsx [2m([22m[2m3 tests[22m[2m)[22m[32m 216[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/recipes/[id]/edit/__tests__/page.test.tsx [2m([22m[2m4 tests[22m[2m)[22m[32m 285[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/recipes/[id]/__tests__/page.test.tsx [2m([22m[2m11 tests[22m[2m)[22m[33m 556[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/recipes/__tests__/page.test.tsx [2m([22m[2m22 tests[22m[2m)[22m[33m 801[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/pantry/__tests__/page.test.tsx [2m([22m[2m15 tests[22m[2m)[22m[33m 809[2mms[22m[39m
|
||
[90mstderr[2m | src/app/(dashboard)/medicines/__tests__/ActivityTab.test.tsx[2m > [22m[2mActivityTab[2m >
|
||
[22m[2mloads more events when Load more is clicked
|
||
[22m[39mEncountered two children with the same key, `ev-1`. Keys should be unique so that components maintain their
|
||
identity across updates. Non-unique keys may cause children to be duplicated and/or omitted ΓÇö the behavior is
|
||
unsupported and could change in a future version.
|
||
|
||
[32mΓ£ô[39m src/app/(dashboard)/recipes/__tests__/RecipeEditor.test.tsx [2m([22m[2m9 tests[22m[2m)[22m[33m 891[2mms[22m[39m
|
||
[90mstderr[2m | src/app/(dashboard)/medicine-prices/__tests__/page.test.tsx[2m > [22m[2mMedicinePricesPage[2m >
|
||
[22m[2mshows Load more button in price history
|
||
[22m[39mEncountered two children with the same key, `pr-1`. Keys should be unique so that components maintain their
|
||
identity across updates. Non-unique keys may cause children to be duplicated and/or omitted ΓÇö the behavior is
|
||
unsupported and could change in a future version.
|
||
|
||
[31mΓ¥»[39m src/app/(dashboard)/shopping-lists/prices/__tests__/page.test.tsx [2m([22m[2m3 tests[22m[2m | [22m[31m3 failed[39m[2m)[22m[33m 2108[2mms[22m[39m
|
||
[31m [31m×[31m renders loading initially[39m[32m 62[2mms[22m[39m
|
||
[31m [31m×[31m loads and displays analytics[39m[33m 1022[2mms[22m[39m
|
||
[31m [31m×[31m handles fetch errors gracefully[39m[33m 1020[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/medicines/__tests__/ActivityTab.test.tsx [2m([22m[2m18 tests[22m[2m)[22m[33m 940[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/stores/__tests__/page.test.tsx [2m([22m[2m22 tests[22m[2m)[22m[33m 2353[2mms[22m[39m
|
||
[33m[2mΓ£ô[22m[39m toggles a preset tag and adds a custom tag [33m 491[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/purchases/__tests__/page.test.tsx [2m([22m[2m26 tests[22m[2m)[22m[33m 2386[2mms[22m[39m
|
||
[33m[2mΓ£ô[22m[39m adds and removes purchase items [33m 304[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/products/__tests__/page.test.tsx [2m([22m[2m11 tests[22m[2m)[22m[33m 1243[2mms[22m[39m
|
||
[33m[2mΓ£ô[22m[39m filters by search input with debounce [33m 442[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/medicines/__tests__/OrganizerTab.test.tsx [2m([22m[2m20 tests[22m[2m)[22m[33m 1354[2mms[22m[39m
|
||
[90mstderr[2m | src/app/(dashboard)/medicines/__tests__/LibraryTab.test.tsx[2m > [22m[2mLibraryTab[2m >
|
||
[22m[2mfilters medicines by search, category, and form
|
||
[22m[39mAn update to LibraryTab inside a test was not wrapped in act(...).
|
||
|
||
When testing, code that causes React state updates should be wrapped into act(...):
|
||
|
||
act(() => {
|
||
/* fire events that update state */
|
||
});
|
||
/* assert on the output */
|
||
|
||
This ensures that you're testing the behavior the user would see in the browser. Learn more at
|
||
https://react.dev/link/wrap-tests-with-act
|
||
An update to LibraryTab inside a test was not wrapped in act(...).
|
||
|
||
When testing, code that causes React state updates should be wrapped into act(...):
|
||
|
||
act(() => {
|
||
/* fire events that update state */
|
||
});
|
||
/* assert on the output */
|
||
|
||
This ensures that you're testing the behavior the user would see in the browser. Learn more at
|
||
https://react.dev/link/wrap-tests-with-act
|
||
An update to LibraryTab inside a test was not wrapped in act(...).
|
||
|
||
When testing, code that causes React state updates should be wrapped into act(...):
|
||
|
||
act(() => {
|
||
/* fire events that update state */
|
||
});
|
||
/* assert on the output */
|
||
|
||
This ensures that you're testing the behavior the user would see in the browser. Learn more at
|
||
https://react.dev/link/wrap-tests-with-act
|
||
An update to LibraryTab inside a test was not wrapped in act(...).
|
||
|
||
When testing, code that causes React state updates should be wrapped into act(...):
|
||
|
||
act(() => {
|
||
/* fire events that update state */
|
||
});
|
||
/* assert on the output */
|
||
|
||
This ensures that you're testing the behavior the user would see in the browser. Learn more at
|
||
https://react.dev/link/wrap-tests-with-act
|
||
An update to LibraryTab inside a test was not wrapped in act(...).
|
||
|
||
When testing, code that causes React state updates should be wrapped into act(...):
|
||
|
||
act(() => {
|
||
/* fire events that update state */
|
||
});
|
||
/* assert on the output */
|
||
|
||
This ensures that you're testing the behavior the user would see in the browser. Learn more at
|
||
https://react.dev/link/wrap-tests-with-act
|
||
|
||
[32mΓ£ô[39m src/app/(dashboard)/medicine-prices/__tests__/page.test.tsx [2m([22m[2m15 tests[22m[2m)[22m[33m 1433[2mms[22m[39m
|
||
[90mstderr[2m | src/app/(dashboard)/medicines/__tests__/CabinetTab.test.tsx[2m > [22m[2mCabinetTab[2m >
|
||
[22m[2mchanges quantity and unit in AddToCabinetForm
|
||
[22m[39mAn update to AddToCabinetForm inside a test was not wrapped in act(...).
|
||
|
||
When testing, code that causes React state updates should be wrapped into act(...):
|
||
|
||
act(() => {
|
||
/* fire events that update state */
|
||
});
|
||
/* assert on the output */
|
||
|
||
This ensures that you're testing the behavior the user would see in the browser. Learn more at
|
||
https://react.dev/link/wrap-tests-with-act
|
||
|
||
[32mΓ£ô[39m src/app/(dashboard)/products/__tests__/ProductModal.test.tsx [2m([22m[2m18 tests[22m[2m)[22m[33m 1767[2mms[22m[39m
|
||
[33m[2mΓ£ô[22m[39m calls onSave with correct data on valid submit [33m 342[2mms[22m[39m
|
||
[31mΓ¥»[39m src/app/(dashboard)/shopping-lists/[id]/__tests__/page.test.tsx [2m([22m[2m5 tests[22m[2m | [22m[31m4 failed[39m[2m)[22m[33m 4156[2mms[22m[39m
|
||
[32mΓ£ô[39m renders loading initially[32m 59[2mms[22m[39m
|
||
[31m [31m×[31m loads and displays the list[39m[33m 1012[2mms[22m[39m
|
||
[31m [31m×[31m toggles an item check[39m[33m 1047[2mms[22m[39m
|
||
[31m [31m×[31m adds a new item to the list[39m[33m 1010[2mms[22m[39m
|
||
[31m [31m×[31m completes the trip and syncs to pantry[39m[33m 1023[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/medicines/__tests__/LibraryTab.test.tsx [2m([22m[2m14 tests[22m[2m)[22m[33m 2143[2mms[22m[39m
|
||
[33m[2mΓ£ô[22m[39m creates medicine and refreshes list [33m 495[2mms[22m[39m
|
||
[33m[2mΓ£ô[22m[39m shows fallback error when non-Error is thrown on create medicine [33m 448[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/settings/__tests__/page.test.tsx [2m([22m[2m20 tests[22m[2m)[22m[33m 3791[2mms[22m[39m
|
||
[33m[2mΓ£ô[22m[39m creates a household on form submit [33m 303[2mms[22m[39m
|
||
[33m[2mΓ£ô[22m[39m allows editing the household name [33m 505[2mms[22m[39m
|
||
[33m[2mΓ£ô[22m[39m shows error when name update fails [33m 460[2mms[22m[39m
|
||
[33m[2mΓ£ô[22m[39m shows fallback error when non-Error thrown on name update [33m 324[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/medicines/__tests__/RegimensTab.test.tsx [2m([22m[2m32 tests[22m[2m)[22m[33m 3041[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/medicines/__tests__/CabinetTab.test.tsx [2m([22m[2m29 tests[22m[2m)[22m[33m 3127[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/refills/__tests__/page.test.tsx [2m([22m[2m26 tests[22m[2m)[22m[33m 3150[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/medicines/[id]/__tests__/page.test.tsx [2m([22m[2m34 tests[22m[2m)[22m[33m 3835[2mms[22m[39m
|
||
[33m[2mΓ£ô[22m[39m toggles Add Product form [33m 367[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/medicines/organizer/__tests__/page.test.tsx [2m([22m[2m3 tests[22m[2m)[22m[32m 103[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/medicines/activity/__tests__/page.test.tsx [2m([22m[2m3 tests[22m[2m)[22m[32m 104[2mms[22m[39m
|
||
[32mΓ£ô[39m src/lib/__tests__/useApi.test.ts [2m([22m[2m7 tests[22m[2m)[22m[32m 41[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/medicines/library/__tests__/page.test.tsx [2m([22m[2m3 tests[22m[2m)[22m[32m 97[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/medicines/regimens/__tests__/page.test.tsx [2m([22m[2m3 tests[22m[2m)[22m[32m 92[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/medicines/cabinet/__tests__/page.test.tsx [2m([22m[2m3 tests[22m[2m)[22m[32m 102[2mms[22m[39m
|
||
[90mstdout[2m | src/lib/useShoppingListSync.test.ts[2m > [22m[2museShoppingListSync[2m > [22m[2mhandles incoming item_updated messages correctly
|
||
[22m[39m🛒 Connected to shopping list real-time sync: list1
|
||
|
||
[32mΓ£ô[39m src/app/(dashboard)/__tests__/loading.test.tsx [2m([22m[2m1 test[22m[2m)[22m[32m 37[2mms[22m[39m
|
||
[90mstdout[2m | src/lib/useShoppingListSync.test.ts[2m > [22m[2museShoppingListSync[2m > [22m[2mbroadcasts toggle item messages when connected
|
||
[22m[39m🛒 Connected to shopping list real-time sync: list1
|
||
|
||
[90mstdout[2m | src/lib/useShoppingListSync.test.ts[2m > [22m[2museShoppingListSync[2m > [22m[2mhandles disconnect and reconnect backoff
|
||
[22m[39m🛒 Connected to shopping list real-time sync: list1
|
||
🔌 Sync severed: test
|
||
🔄 Attempting sync handshake reconnect (1/5)...
|
||
|
||
[32mΓ£ô[39m src/lib/useShoppingListSync.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 44[2mms[22m[39m
|
||
[32mΓ£ô[39m src/app/(dashboard)/__tests__/layout.test.tsx [2m([22m[2m1 test[22m[2m)[22m[32m 40[2mms[22m[39m
|
||
[32mΓ£ô[39m src/services/__tests__/api-client.test.ts [2m([22m[2m14 tests[22m[2m)[22m[32m 20[2mms[22m[39m
|
||
[32mΓ£ô[39m src/services/__tests__/products.test.ts [2m([22m[2m12 tests[22m[2m)[22m[32m 19[2mms[22m[39m
|
||
[32mΓ£ô[39m src/services/__tests__/organizer.test.ts [2m([22m[2m7 tests[22m[2m)[22m[32m 12[2mms[22m[39m
|
||
[32mΓ£ô[39m src/services/meal-plans.test.ts [2m([22m[2m9 tests[22m[2m)[22m[32m 12[2mms[22m[39m
|
||
[32mΓ£ô[39m src/services/__tests__/medicines.test.ts [2m([22m[2m12 tests[22m[2m)[22m[32m 16[2mms[22m[39m
|
||
[32mΓ£ô[39m src/services/__tests__/regimens.test.ts [2m([22m[2m8 tests[22m[2m)[22m[32m 12[2mms[22m[39m
|
||
[32mΓ£ô[39m src/services/__tests__/pantry.test.ts [2m([22m[2m13 tests[22m[2m)[22m[32m 12[2mms[22m[39m
|
||
[32mΓ£ô[39m src/services/__tests__/stores.test.ts [2m([22m[2m6 tests[22m[2m)[22m[32m 12[2mms[22m[39m
|
||
[32mΓ£ô[39m src/services/__tests__/cabinet-events.test.ts [2m([22m[2m7 tests[22m[2m)[22m[32m 14[2mms[22m[39m
|
||
[32mΓ£ô[39m src/services/__tests__/cabinet.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m 12[2mms[22m[39m
|
||
[32mΓ£ô[39m src/services/__tests__/purchases.test.ts [2m([22m[2m7 tests[22m[2m)[22m[32m 14[2mms[22m[39m
|
||
[32mΓ£ô[39m src/services/__tests__/refills.test.ts [2m([22m[2m9 tests[22m[2m)[22m[32m 13[2mms[22m[39m
|
||
[32mΓ£ô[39m src/services/shopping-lists.test.ts [2m([22m[2m12 tests[22m[2m)[22m[32m 8[2mms[22m[39m
|
||
[32mΓ£ô[39m src/services/nutrition-targets.test.ts [2m([22m[2m4 tests[22m[2m)[22m[32m 8[2mms[22m[39m
|
||
[32mΓ£ô[39m src/services/prices.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 6[2mms[22m[39m
|
||
[32mΓ£ô[39m src/services/__tests__/medicine-prices.test.ts [2m([22m[2m7 tests[22m[2m)[22m[32m 12[2mms[22m[39m
|
||
[32mΓ£ô[39m src/services/__tests__/recipes.test.ts [2m([22m[2m11 tests[22m[2m)[22m[32m 12[2mms[22m[39m
|
||
[32mΓ£ô[39m src/services/__tests__/households.test.ts [2m([22m[2m5 tests[22m[2m)[22m[32m 7[2mms[22m[39m
|
||
|
||
[31m⎯⎯⎯⎯⎯⎯⎯[39m[1m[41m Failed Tests 7 [49m[22m[31m⎯⎯⎯⎯⎯⎯⎯[39m
|
||
|
||
[41m[1m FAIL [22m[49m src/app/(dashboard)/shopping-lists/prices/__tests__/page.test.tsx[2m >
|
||
[22mShoppingListPricesPage[2m > [22mrenders loading initially
|
||
[31m[1mTestingLibraryElementError[22m: Unable to find an element with the text: Price Intelligence. 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
|
||
[36m<body>[31m
|
||
[36m<div>[31m
|
||
[36m<div[31m
|
||
[33mstyle[31m=[32m"padding: 40px;"[31m
|
||
[36m>[31m
|
||
[0mSynthesizing financial graphs...[0m
|
||
[36m</div>[31m
|
||
[36m</div>[31m
|
||
[36m</body>[31m[39m
|
||
[90m [2mΓ¥»[22m Object.getElementError ../../node_modules/@testing-library/dom/dist/config.js:[2m37:19[22m[39m
|
||
[90m [2mΓ¥»[22m ../../node_modules/@testing-library/dom/dist/query-helpers.js:[2m76:38[22m[39m
|
||
[90m [2mΓ¥»[22m ../../node_modules/@testing-library/dom/dist/query-helpers.js:[2m52:17[22m[39m
|
||
[90m [2mΓ¥»[22m ../../node_modules/@testing-library/dom/dist/query-helpers.js:[2m95:19[22m[39m
|
||
[36m [2mΓ¥»[22m src/app/(dashboard)/shopping-lists/prices/__tests__/page.test.tsx:[2m56:19[22m[39m
|
||
[90m 54|[39m vi.mocked(useApiModule.useApi).mockReturnValue({ householdId: null…
|
||
[90m 55|[39m [34mrender[39m([33m<[39m[33mShoppingListPricesPage[39m [33m/[39m[33m>[39m)[33m;[39m
|
||
[90m 56|[39m [34mexpect[39m(screen[33m.[39m[34mgetByText[39m([32m'Price
|
||
Intelligence'[39m))[33m.[39m[34mtoBeInTheDocument[39m()[33m;[39m
|
||
[90m |[39m [31m^[39m
|
||
[90m 57|[39m })[33m;[39m
|
||
[90m 58|[39m
|
||
|
||
[31m[2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/7]⎯[22m[39m
|
||
|
||
[41m[1m FAIL [22m[49m src/app/(dashboard)/shopping-lists/prices/__tests__/page.test.tsx[2m >
|
||
[22mShoppingListPricesPage[2m > [22mloads and displays analytics
|
||
[31m[1mTestingLibraryElementError[22m[39m: Unable to find an element with the text: $150.00. 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
|
||
[36m<body>[39m
|
||
[36m<div>[39m
|
||
[36m<h1[39m
|
||
[33maria-hidden[39m=[32m"false"[39m
|
||
[33mstyle[39m=[32m"position: absolute; width: 1px; height: 1px; padding: 0px; margin: -1px; overflow: hidden;
|
||
clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border: 0px;"[39m
|
||
[36m>[39m
|
||
[0mInflation & Spend Metrics[0m
|
||
[36m</h1>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"padding: 28px 32px 64px; max-width: 1400px; margin: 0px auto;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"margin-bottom: 24px;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1.5 rounded-[var(--r-sm)] font-medium transition-all
|
||
whitespace-nowrap border border-transparent leading-none bg-[var(--bg-elev)] text-[var(--ink)] border-[var(--border)]
|
||
hover:border-[var(--border-strong)] hover:bg-[var(--bg-inset)] text-[13px] px-3 py-[7px] "[39m
|
||
[36m>[39m
|
||
[36m<svg[39m
|
||
[33maria-hidden[39m=[32m"true"[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mfill[39m=[32m"none"[39m
|
||
[33mheight[39m=[32m"18"[39m
|
||
[33mstroke[39m=[32m"currentColor"[39m
|
||
[33mstroke-linecap[39m=[32m"round"[39m
|
||
[33mstroke-linejoin[39m=[32m"round"[39m
|
||
[33mstroke-width[39m=[32m"1.6"[39m
|
||
[33mstyle[39m=[32m"display: inline-block; flex-shrink: 0; margin-right: 6px; width: 16px;"[39m
|
||
[33mviewBox[39m=[32m"0 0 24 24"[39m
|
||
[33mwidth[39m=[32m"18"[39m
|
||
[36m>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M15 18l-6-6 6-6"[39m
|
||
[36m/>[39m
|
||
[36m</svg>[39m
|
||
[0m Back to Checklists[0m
|
||
[36m</button>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: grid; grid-template-columns: repeat(auto-fit, minmax(500px, 1fr)); gap: 28px;
|
||
margin-bottom: 32px;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mstyle[39m=[32m"background: var(--bg-elev); border: 1px solid var(--border); border-radius:
|
||
var(--r-md); overflow: hidden; padding: 24px;"[39m
|
||
[36m>[39m
|
||
[36m<h4[39m
|
||
[33mstyle[39m=[32m"font-size: 15px; font-weight: 600; margin-bottom: 20px;"[39m
|
||
[36m>[39m
|
||
[0mMonthly Spending Velocities[0m
|
||
[36m</h4>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"height: 300px;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; justify-content: center; height: 100%; color:
|
||
var(--ink-muted); font-size: 13px; border: 1px dashed var(--border); border-radius: var(--r-md);"[39m
|
||
[36m>[39m
|
||
[0mNo historical spend records found.[0m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mstyle[39m=[32m"background: var(--bg-elev); border: 1px solid var(--border); border-radius:
|
||
var(--r-md); overflow: hidden; padding: 24px;"[39m
|
||
[36m>[39m
|
||
[36m<h4[39m
|
||
[33mstyle[39m=[32m"font-size: 15px; font-weight: 600; margin-bottom: 20px;"[39m
|
||
[36m>[39m
|
||
[0mSpending Distrubution by Category[0m
|
||
[36m</h4>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"height: 300px;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; justify-content: center; height: 100%; color:
|
||
var(--ink-muted); font-size: 13px; border: 1px dashed var(--border); border-radius: var(--r-md);"[39m
|
||
[36m>[39m
|
||
[0mNo categorized allocations recorded yet.[0m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mstyle[39m=[32m"background: var(--bg-elev); border: 1px solid var(--border); border-radius: var(--r-md);
|
||
overflow: hidden; padding: 24px;"[39m
|
||
[36m>[39m
|
||
[36m<h4[39m
|
||
[33mstyle[39m=[32m"font-size: 15px; font-weight: 600; margin-bottom: 20px;"[39m
|
||
[36m>[39m
|
||
[0mAverage Complete Basket Totals per Store[0m
|
||
[36m</h4>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; justify-content: center; height: 100%; color:
|
||
var(--ink-muted); font-size: 13px; border: 1px dashed var(--border); border-radius: var(--r-md);"[39m
|
||
[36m>[39m
|
||
[0mCreate multiple shopping trips to visualize basket trends.[0m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m</body>[39m
|
||
|
||
Ignored nodes: comments, script, style
|
||
[36m<html>[39m
|
||
[36m<head />[39m
|
||
[36m<body>[39m
|
||
[36m<div>[39m
|
||
[36m<h1[39m
|
||
[33maria-hidden[39m=[32m"false"[39m
|
||
[33mstyle[39m=[32m"position: absolute; width: 1px; height: 1px; padding: 0px; margin: -1px; overflow:
|
||
hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border: 0px;"[39m
|
||
[36m>[39m
|
||
[0mInflation & Spend Metrics[0m
|
||
[36m</h1>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"padding: 28px 32px 64px; max-width: 1400px; margin: 0px auto;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"margin-bottom: 24px;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1.5 rounded-[var(--r-sm)] font-medium transition-all
|
||
whitespace-nowrap border border-transparent leading-none bg-[var(--bg-elev)] text-[var(--ink)] border-[var(--border)]
|
||
hover:border-[var(--border-strong)] hover:bg-[var(--bg-inset)] text-[13px] px-3 py-[7px] "[39m
|
||
[36m>[39m
|
||
[36m<svg[39m
|
||
[33maria-hidden[39m=[32m"true"[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mfill[39m=[32m"none"[39m
|
||
[33mheight[39m=[32m"18"[39m
|
||
[33mstroke[39m=[32m"currentColor"[39m
|
||
[33mstroke-linecap[39m=[32m"round"[39m
|
||
[33mstroke-linejoin[39m=[32m"round"[39m
|
||
[33mstroke-width[39m=[32m"1.6"[39m
|
||
[33mstyle[39m=[32m"display: inline-block; flex-shrink: 0; margin-right: 6px; width: 16px;"[39m
|
||
[33mviewBox[39m=[32m"0 0 24 24"[39m
|
||
[33mwidth[39m=[32m"18"[39m
|
||
[36m>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M15 18l-6-6 6-6"[39m
|
||
[36m/>[39m
|
||
[36m</svg>[39m
|
||
[0m Back to Checklists[0m
|
||
[36m</button>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: grid; grid-template-columns: repeat(auto-fit, minmax(500px, 1fr)); gap: 28px;
|
||
margin-bottom: 32px;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mstyle[39m=[32m"background: var(--bg-elev); border: 1px solid var(--border); border-radius:
|
||
var(--r-md); overflow: hidden; padding: 24px;"[39m
|
||
[36m>[39m
|
||
[36m<h4[39m
|
||
[33mstyle[39m=[32m"font-size: 15px; font-weight: 600; margin-bottom: 20px;"[39m
|
||
[36m>[39m
|
||
[0mMonthly Spending Velocities[0m
|
||
[36m</h4>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"height: 300px;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; justify-content: center; height: 100%;
|
||
color: var(--ink-muted); font-size: 13px; border: 1px dashed var(--border); border-radius: var(--r-md);"[39m
|
||
[36m>[39m
|
||
[0mNo historical spend records found.[0m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mstyle[39m=[32m"background: var(--bg-elev); border: 1px solid var(--border); border-radius:
|
||
var(--r-md); overflow: hidden; padding: 24px;"[39m
|
||
[36m>[39m
|
||
[36m<h4[39m
|
||
[33mstyle[39m=[32m"font-size: 15px; font-weight: 600; margin-bottom: 20px;"[39m
|
||
[36m>[39m
|
||
[0mSpending Distrubution by Category[0m
|
||
[36m</h4>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"height: 300px;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; justify-content: center; height: 100%;
|
||
color: var(--ink-muted); font-size: 13px; border: 1px dashed var(--border); border-radius: var(--r-md);"[39m
|
||
[36m>[39m
|
||
[0mNo categorized allocations recorded yet.[0m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mstyle[39m=[32m"background: var(--bg-elev); border: 1px solid var(--border); border-radius:
|
||
var(--r-md); overflow: hidden; padding: 24px;"[39m
|
||
[36m>[39m
|
||
[36m<h4[39m
|
||
[33mstyle[39m=[32m"font-size: 15px; font-weight: 600; margin-bottom: 20px;"[39m
|
||
[36m>[39m
|
||
[0mAverage Complete Basket Totals per Store[0m
|
||
[36m</h4>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; justify-content: center; height: 100%; color:
|
||
var(--ink-muted); font-size: 13px; border: 1px dashed var(--border); border-radius: var(--r-md);"[39m
|
||
[36m>[39m
|
||
[0mCreate multiple shopping trips to visualize basket trends.[0m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m</body>[39m
|
||
[36m</html>[39m
|
||
[90m [2mΓ¥»[22m Proxy.waitForWrapper ../../node_modules/@testing-library/dom/dist/wait-for.js:[2m163:27[22m[39m
|
||
[36m [2mΓ¥»[22m src/app/(dashboard)/shopping-lists/prices/__tests__/page.test.tsx:[2m61:11[22m[39m
|
||
[90m 59|[39m [34mit[39m([32m'loads and displays analytics'[39m[33m,[39m [35masync[39m () [33m=>[39m {
|
||
[90m 60|[39m [34mrender[39m([33m<[39m[33mShoppingListPricesPage[39m [33m/[39m[33m>[39m)[33m;[39m
|
||
[90m 61|[39m [35mawait[39m [34mwaitFor[39m(() [33m=>[39m {
|
||
[90m |[39m [31m^[39m
|
||
[90m 62|[39m [34mexpect[39m(screen[33m.[39m[34mgetByText[39m([32m'$150.00'[39m))[33m.[39m[34mtoB
|
||
eInTheDocument[39m()[33m;[39m
|
||
[90m 63|[39m [34mexpect[39m(screen[33m.[39m[34mgetByText[39m([32m'Costco'[39m))[33m.[39m[34mtoBe
|
||
InTheDocument[39m()[33m;[39m
|
||
|
||
[31m[2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/7]⎯[22m[39m
|
||
|
||
[41m[1m FAIL [22m[49m src/app/(dashboard)/shopping-lists/prices/__tests__/page.test.tsx[2m >
|
||
[22mShoppingListPricesPage[2m > [22mhandles fetch errors gracefully
|
||
[31m[1mTestingLibraryElementError[22m: Unable to find an element with the text: Analytics failed. 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
|
||
[36m<body>[31m
|
||
[36m<div>[31m
|
||
[36m<div[31m
|
||
[33mstyle[31m=[32m"padding: 40px; color: var(--danger);"[31m
|
||
[36m>[31m
|
||
[0mError: [0m
|
||
[0mAnalytics failed[0m
|
||
[36m</div>[31m
|
||
[36m</div>[31m
|
||
[36m</body>[31m
|
||
|
||
Ignored nodes: comments, script, style
|
||
[36m<html>[31m
|
||
[36m<head />[31m
|
||
[36m<body>[31m
|
||
[36m<div>[31m
|
||
[36m<div[31m
|
||
[33mstyle[31m=[32m"padding: 40px; color: var(--danger);"[31m
|
||
[36m>[31m
|
||
[0mError: [0m
|
||
[0mAnalytics failed[0m
|
||
[36m</div>[31m
|
||
[36m</div>[31m
|
||
[36m</body>[31m
|
||
[36m</html>[31m[39m
|
||
[90m [2mΓ¥»[22m Proxy.waitForWrapper ../../node_modules/@testing-library/dom/dist/wait-for.js:[2m163:27[22m[39m
|
||
[36m [2mΓ¥»[22m src/app/(dashboard)/shopping-lists/prices/__tests__/page.test.tsx:[2m72:11[22m[39m
|
||
[90m 70|[39m [34mrender[39m([33m<[39m[33mShoppingListPricesPage[39m [33m/[39m[33m>[39m)[33m;[39m
|
||
[90m 71|[39m
|
||
[90m 72|[39m [35mawait[39m [34mwaitFor[39m(() [33m=>[39m {
|
||
[90m |[39m [31m^[39m
|
||
[90m 73|[39m [34mexpect[39m(screen[33m.[39m[34mgetByText[39m([32m'Analytics
|
||
failed'[39m))[33m.[39m[34mtoBeInTheDocument[39m()[33m;[39m
|
||
[90m 74|[39m })[33m;[39m
|
||
|
||
[31m[2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/7]⎯[22m[39m
|
||
|
||
[41m[1m FAIL [22m[49m src/app/(dashboard)/shopping-lists/[id]/__tests__/page.test.tsx[2m >
|
||
[22mShoppingListDetailPage[2m > [22mloads and displays the list
|
||
[31m[1mTestingLibraryElementError[22m[39m: Found multiple elements with the text: Apple
|
||
|
||
Here are the matching elements:
|
||
|
||
Ignored nodes: comments, script, style
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"font-weight: 600; font-size: 14px; color: var(--ink);"[39m
|
||
[36m>[39m
|
||
[0mApple[0m
|
||
[36m</div>[39m
|
||
|
||
Ignored nodes: comments, script, style
|
||
[36m<option[39m
|
||
[33mvalue[39m=[32m"p1"[39m
|
||
[36m>[39m
|
||
[0mApple[0m
|
||
[36m</option>[39m
|
||
|
||
(If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or
|
||
`findAllByText`)).
|
||
|
||
Ignored nodes: comments, script, style
|
||
[36m<body>[39m
|
||
[36m<div>[39m
|
||
[36m<h1[39m
|
||
[33maria-hidden[39m=[32m"false"[39m
|
||
[33mstyle[39m=[32m"position: absolute; width: 1px; height: 1px; padding: 0px; margin: -1px; overflow: hidden;
|
||
clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border: 0px;"[39m
|
||
[36m>[39m
|
||
[0mTest List[0m
|
||
[36m</h1>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 16px; font-size: 13px; padding: 0px 32px;
|
||
max-width: 1400px; margin: -12px auto 12px;"[39m
|
||
[36m>[39m
|
||
[36m<span[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium
|
||
leading-relaxed bg-[var(--info-soft)] text-[var(--info)]"[39m
|
||
[36m>[39m
|
||
[0mactive[0m
|
||
[36m</span>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 6px; color: var(--ink-muted);"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"width: 8px; height: 8px; border-radius: 50%; background: var(--success, #10b981);
|
||
box-shadow: 0 0 8px var(--success);"[39m
|
||
[36m/>[39m
|
||
[0mLive Sync Channel Operational[0m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"padding: 28px 32px 64px; max-width: 1400px; margin: 0px auto;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; gap: 12px; margin-bottom: 24px; justify-content: space-between;
|
||
flex-wrap: wrap;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1.5 rounded-[var(--r-sm)] font-medium transition-all
|
||
whitespace-nowrap border border-transparent leading-none bg-[var(--bg-elev)] text-[var(--ink)] border-[var(--border)]
|
||
hover:border-[var(--border-strong)] hover:bg-[var(--bg-inset)] text-[13px] px-3 py-[7px] "[39m
|
||
[36m>[39m
|
||
[36m<svg[39m
|
||
[33maria-hidden[39m=[32m"true"[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mfill[39m=[32m"none"[39m
|
||
[33mheight[39m=[32m"18"[39m
|
||
[33mstroke[39m=[32m"currentColor"[39m
|
||
[33mstroke-linecap[39m=[32m"round"[39m
|
||
[33mstroke-linejoin[39m=[32m"round"[39m
|
||
[33mstroke-width[39m=[32m"1.6"[39m
|
||
[33mstyle[39m=[32m"display: inline-block; flex-shrink: 0; margin-right: 6px; width: 16px;"[39m
|
||
[33mviewBox[39m=[32m"0 0 24 24"[39m
|
||
[33mwidth[39m=[32m"18"[39m
|
||
[36m>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M15 18l-6-6 6-6"[39m
|
||
[36m/>[39m
|
||
[36m</svg>[39m
|
||
[0m Back to Hub[0m
|
||
[36m</button>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; gap: 12px;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1.5 rounded-[var(--r-sm)] font-medium transition-all
|
||
whitespace-nowrap border border-transparent leading-none bg-[var(--bg-elev)] text-[var(--ink)] border-[var(--border)]
|
||
hover:border-[var(--border-strong)] hover:bg-[var(--bg-inset)] text-[13px] px-3 py-[7px] "[39m
|
||
[36m>[39m
|
||
[36m<svg[39m
|
||
[33maria-hidden[39m=[32m"true"[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mfill[39m=[32m"none"[39m
|
||
[33mheight[39m=[32m"18"[39m
|
||
[33mstroke[39m=[32m"currentColor"[39m
|
||
[33mstroke-linecap[39m=[32m"round"[39m
|
||
[33mstroke-linejoin[39m=[32m"round"[39m
|
||
[33mstroke-width[39m=[32m"1.6"[39m
|
||
[33mstyle[39m=[32m"display: inline-block; flex-shrink: 0; margin-right: 6px; width: 16px;"[39m
|
||
[33mviewBox[39m=[32m"0 0 24 24"[39m
|
||
[33mwidth[39m=[32m"18"[39m
|
||
[36m>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M3 17l6-6 4 4 8-8"[39m
|
||
[36m/>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M14 7h7v7"[39m
|
||
[36m/>[39m
|
||
[36m</svg>[39m
|
||
[0m Check Lowest Store Options[0m
|
||
[36m</button>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: grid; grid-template-columns: 1fr 380px; gap: 32px; align-items: start;"[39m
|
||
[36m>[39m
|
||
[36m<div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; flex-direction: column; gap: 24px;"[39m
|
||
[36m>[39m
|
||
[36m<div>[39m
|
||
[36m<h4[39m
|
||
[33mstyle[39m=[32m"font-size: 13px; font-weight: 600; color: var(--ink-muted); text-transform:
|
||
uppercase; letter-spacing: 0.08em; margin-bottom: 12px; border-bottom: 1px solid var(--border); padding-bottom:
|
||
6px;"[39m
|
||
[36m>[39m
|
||
[0mOther / Misc[0m
|
||
[36m</h4>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; flex-direction: column; gap: 10px;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 14px; padding: 12px 16px; background:
|
||
var(--bg-elev); border: 1px solid var(--border); border-radius: var(--r-md); transition: all 0.15s; opacity: 1;
|
||
text-decoration: none;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33maria-label[39m=[32m"Toggle check for Apple"[39m
|
||
[33mstyle[39m=[32m"width: 22px; height: 22px; border-radius: 50%; border: 2px solid
|
||
var(--border-hover); background: transparent; display: flex; align-items: center; justify-content: center; cursor:
|
||
pointer; flex-shrink: 0; padding: 0px;"[39m
|
||
[36m/>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"flex: 1 1 0%; min-width: 0px;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"font-weight: 600; font-size: 14px; color: var(--ink);"[39m
|
||
[36m>[39m
|
||
[0mApple[0m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"font-size: 11px; color: var(--ink-muted); display: flex; gap: 10px;
|
||
margin-top: 2px;"[39m
|
||
[36m>[39m
|
||
[36m<span>[39m
|
||
[0mQty: [0m
|
||
[0m5[0m
|
||
[0m [0m
|
||
[0mpcs[0m
|
||
[36m</span>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<button[39m
|
||
[33mstyle[39m=[32m"border: medium; background: transparent; cursor: pointer; padding: 6px;
|
||
color: var(--ink-muted); opacity: 0.5;"[39m
|
||
[36m>[39m
|
||
...
|
||
|
||
Ignored nodes: comments, script, style
|
||
[36m<html>[39m
|
||
[36m<head />[39m
|
||
[36m<body>[39m
|
||
[36m<div>[39m
|
||
[36m<h1[39m
|
||
[33maria-hidden[39m=[32m"false"[39m
|
||
[33mstyle[39m=[32m"position: absolute; width: 1px; height: 1px; padding: 0px; margin: -1px; overflow:
|
||
hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border: 0px;"[39m
|
||
[36m>[39m
|
||
[0mTest List[0m
|
||
[36m</h1>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 16px; font-size: 13px; padding: 0px 32px;
|
||
max-width: 1400px; margin: -12px auto 12px;"[39m
|
||
[36m>[39m
|
||
[36m<span[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium
|
||
leading-relaxed bg-[var(--info-soft)] text-[var(--info)]"[39m
|
||
[36m>[39m
|
||
[0mactive[0m
|
||
[36m</span>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 6px; color: var(--ink-muted);"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"width: 8px; height: 8px; border-radius: 50%; background: var(--success, #10b981);
|
||
box-shadow: 0 0 8px var(--success);"[39m
|
||
[36m/>[39m
|
||
[0mLive Sync Channel Operational[0m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"padding: 28px 32px 64px; max-width: 1400px; margin: 0px auto;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; gap: 12px; margin-bottom: 24px; justify-content: space-between;
|
||
flex-wrap: wrap;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1.5 rounded-[var(--r-sm)] font-medium transition-all
|
||
whitespace-nowrap border border-transparent leading-none bg-[var(--bg-elev)] text-[var(--ink)] border-[var(--border)]
|
||
hover:border-[var(--border-strong)] hover:bg-[var(--bg-inset)] text-[13px] px-3 py-[7px] "[39m
|
||
[36m>[39m
|
||
[36m<svg[39m
|
||
[33maria-hidden[39m=[32m"true"[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mfill[39m=[32m"none"[39m
|
||
[33mheight[39m=[32m"18"[39m
|
||
[33mstroke[39m=[32m"currentColor"[39m
|
||
[33mstroke-linecap[39m=[32m"round"[39m
|
||
[33mstroke-linejoin[39m=[32m"round"[39m
|
||
[33mstroke-width[39m=[32m"1.6"[39m
|
||
[33mstyle[39m=[32m"display: inline-block; flex-shrink: 0; margin-right: 6px; width: 16px;"[39m
|
||
[33mviewBox[39m=[32m"0 0 24 24"[39m
|
||
[33mwidth[39m=[32m"18"[39m
|
||
[36m>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M15 18l-6-6 6-6"[39m
|
||
[36m/>[39m
|
||
[36m</svg>[39m
|
||
[0m Back to Hub[0m
|
||
[36m</button>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; gap: 12px;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1.5 rounded-[var(--r-sm)] font-medium transition-all
|
||
whitespace-nowrap border border-transparent leading-none bg-[var(--bg-elev)] text-[var(--ink)] border-[var(--border)]
|
||
hover:border-[var(--border-strong)] hover:bg-[var(--bg-inset)] text-[13px] px-3 py-[7px] "[39m
|
||
[36m>[39m
|
||
[36m<svg[39m
|
||
[33maria-hidden[39m=[32m"true"[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mfill[39m=[32m"none"[39m
|
||
[33mheight[39m=[32m"18"[39m
|
||
[33mstroke[39m=[32m"currentColor"[39m
|
||
[33mstroke-linecap[39m=[32m"round"[39m
|
||
[33mstroke-linejoin[39m=[32m"round"[39m
|
||
[33mstroke-width[39m=[32m"1.6"[39m
|
||
[33mstyle[39m=[32m"display: inline-block; flex-shrink: 0; margin-right: 6px; width: 16px;"[39m
|
||
[33mviewBox[39m=[32m"0 0 24 24"[39m
|
||
[33mwidth[39m=[32m"18"[39m
|
||
[36m>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M3 17l6-6 4 4 8-8"[39m
|
||
[36m/>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M14 7h7v7"[39m
|
||
[36m/>[39m
|
||
[36m</svg>[39m
|
||
[0m Check Lowest Store Options[0m
|
||
[36m</button>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: grid; grid-template-columns: 1fr 380px; gap: 32px; align-items: start;"[39m
|
||
[36m>[39m
|
||
[36m<div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; flex-direction: column; gap: 24px;"[39m
|
||
[36m>[39m
|
||
[36m<div>[39m
|
||
[36m<h4[39m
|
||
[33mstyle[39m=[32m"font-size: 13px; font-weight: 600; color: var(--ink-muted); text-transform:
|
||
uppercase; letter-spacing: 0.08em; margin-bottom: 12px; border-bottom: 1px solid var(--border); padding-bottom:
|
||
6px;"[39m
|
||
[36m>[39m
|
||
[0mOther / Misc[0m
|
||
[36m</h4>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; flex-direction: column; gap: 10px;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 14px; padding: 12px 16px;
|
||
background: var(--bg-elev); border: 1px solid var(--border); border-radius: var(--r-md); transition: all 0.15s;
|
||
opacity: 1; text-decoration: none;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33maria-label[39m=[32m"Toggle check for Apple"[39m
|
||
[33mstyle[39m=[32m"width: 22px; height: 22px; border-radius: 50%; border: 2px solid
|
||
var(--border-hover); background: transparent; display: flex; align-items: center; justify-content: center; cursor:
|
||
pointer; flex-shrink: 0; padding: 0px;"[39m
|
||
[36m/>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"flex: 1 1 0%; min-width: 0px;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"font-weight: 600; font-size: 14px; color: var(--ink);"[39m
|
||
[36m>[39m
|
||
[0mApple[0m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"font-size: 11px; color: var(--ink-muted); display: flex; gap: 10px;
|
||
margin-top: 2px;"[39m
|
||
[36m>[39m
|
||
[36m<span>[39m
|
||
[0mQty: [0m
|
||
[0m5[0m
|
||
[0m [0m
|
||
[0mpcs[0m
|
||
[36m</span>[39m
|
||
[36m</...
|
||
[90m [2mΓ¥»[22m Proxy.waitForWrapper ../../node_modules/@testing-library/dom/dist/wait-for.js:[2m163:27[22m[39m
|
||
[36m [2mΓ¥»[22m src/app/(dashboard)/shopping-lists/[id]/__tests__/page.test.tsx:[2m66:11[22m[39m
|
||
[90m 64|[39m [34mit[39m([32m'loads and displays the list'[39m[33m,[39m [35masync[39m () [33m=>[39m {
|
||
[90m 65|[39m [34mrender[39m([33m<[39m[33mShoppingListDetailPage[39m [33m/[39m[33m>[39m)[33m;[39m
|
||
[90m 66|[39m [35mawait[39m [34mwaitFor[39m(() [33m=>[39m {
|
||
[90m |[39m [31m^[39m
|
||
[90m 67|[39m [34mexpect[39m(screen[33m.[39m[34mgetByText[39m([32m'Test
|
||
List'[39m))[33m.[39m[34mtoBeInTheDocument[39m()[33m;[39m
|
||
[90m 68|[39m [34mexpect[39m(screen[33m.[39m[34mgetByText[39m([32m'Apple'[39m))[33m.[39m[34mtoBeI
|
||
nTheDocument[39m()[33m;[39m
|
||
|
||
[31m[2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/7]⎯[22m[39m
|
||
|
||
[41m[1m FAIL [22m[49m src/app/(dashboard)/shopping-lists/[id]/__tests__/page.test.tsx[2m >
|
||
[22mShoppingListDetailPage[2m > [22mtoggles an item check
|
||
[31m[1mTestingLibraryElementError[22m[39m: Found multiple elements with the text: Apple
|
||
|
||
Here are the matching elements:
|
||
|
||
Ignored nodes: comments, script, style
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"font-weight: 600; font-size: 14px; color: var(--ink);"[39m
|
||
[36m>[39m
|
||
[0mApple[0m
|
||
[36m</div>[39m
|
||
|
||
Ignored nodes: comments, script, style
|
||
[36m<option[39m
|
||
[33mvalue[39m=[32m"p1"[39m
|
||
[36m>[39m
|
||
[0mApple[0m
|
||
[36m</option>[39m
|
||
|
||
(If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or
|
||
`findAllByText`)).
|
||
|
||
Ignored nodes: comments, script, style
|
||
[36m<body>[39m
|
||
[36m<div>[39m
|
||
[36m<h1[39m
|
||
[33maria-hidden[39m=[32m"false"[39m
|
||
[33mstyle[39m=[32m"position: absolute; width: 1px; height: 1px; padding: 0px; margin: -1px; overflow: hidden;
|
||
clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border: 0px;"[39m
|
||
[36m>[39m
|
||
[0mTest List[0m
|
||
[36m</h1>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 16px; font-size: 13px; padding: 0px 32px;
|
||
max-width: 1400px; margin: -12px auto 12px;"[39m
|
||
[36m>[39m
|
||
[36m<span[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium
|
||
leading-relaxed bg-[var(--info-soft)] text-[var(--info)]"[39m
|
||
[36m>[39m
|
||
[0mactive[0m
|
||
[36m</span>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 6px; color: var(--ink-muted);"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"width: 8px; height: 8px; border-radius: 50%; background: var(--success, #10b981);
|
||
box-shadow: 0 0 8px var(--success);"[39m
|
||
[36m/>[39m
|
||
[0mLive Sync Channel Operational[0m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"padding: 28px 32px 64px; max-width: 1400px; margin: 0px auto;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; gap: 12px; margin-bottom: 24px; justify-content: space-between;
|
||
flex-wrap: wrap;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1.5 rounded-[var(--r-sm)] font-medium transition-all
|
||
whitespace-nowrap border border-transparent leading-none bg-[var(--bg-elev)] text-[var(--ink)] border-[var(--border)]
|
||
hover:border-[var(--border-strong)] hover:bg-[var(--bg-inset)] text-[13px] px-3 py-[7px] "[39m
|
||
[36m>[39m
|
||
[36m<svg[39m
|
||
[33maria-hidden[39m=[32m"true"[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mfill[39m=[32m"none"[39m
|
||
[33mheight[39m=[32m"18"[39m
|
||
[33mstroke[39m=[32m"currentColor"[39m
|
||
[33mstroke-linecap[39m=[32m"round"[39m
|
||
[33mstroke-linejoin[39m=[32m"round"[39m
|
||
[33mstroke-width[39m=[32m"1.6"[39m
|
||
[33mstyle[39m=[32m"display: inline-block; flex-shrink: 0; margin-right: 6px; width: 16px;"[39m
|
||
[33mviewBox[39m=[32m"0 0 24 24"[39m
|
||
[33mwidth[39m=[32m"18"[39m
|
||
[36m>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M15 18l-6-6 6-6"[39m
|
||
[36m/>[39m
|
||
[36m</svg>[39m
|
||
[0m Back to Hub[0m
|
||
[36m</button>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; gap: 12px;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1.5 rounded-[var(--r-sm)] font-medium transition-all
|
||
whitespace-nowrap border border-transparent leading-none bg-[var(--bg-elev)] text-[var(--ink)] border-[var(--border)]
|
||
hover:border-[var(--border-strong)] hover:bg-[var(--bg-inset)] text-[13px] px-3 py-[7px] "[39m
|
||
[36m>[39m
|
||
[36m<svg[39m
|
||
[33maria-hidden[39m=[32m"true"[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mfill[39m=[32m"none"[39m
|
||
[33mheight[39m=[32m"18"[39m
|
||
[33mstroke[39m=[32m"currentColor"[39m
|
||
[33mstroke-linecap[39m=[32m"round"[39m
|
||
[33mstroke-linejoin[39m=[32m"round"[39m
|
||
[33mstroke-width[39m=[32m"1.6"[39m
|
||
[33mstyle[39m=[32m"display: inline-block; flex-shrink: 0; margin-right: 6px; width: 16px;"[39m
|
||
[33mviewBox[39m=[32m"0 0 24 24"[39m
|
||
[33mwidth[39m=[32m"18"[39m
|
||
[36m>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M3 17l6-6 4 4 8-8"[39m
|
||
[36m/>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M14 7h7v7"[39m
|
||
[36m/>[39m
|
||
[36m</svg>[39m
|
||
[0m Check Lowest Store Options[0m
|
||
[36m</button>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: grid; grid-template-columns: 1fr 380px; gap: 32px; align-items: start;"[39m
|
||
[36m>[39m
|
||
[36m<div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; flex-direction: column; gap: 24px;"[39m
|
||
[36m>[39m
|
||
[36m<div>[39m
|
||
[36m<h4[39m
|
||
[33mstyle[39m=[32m"font-size: 13px; font-weight: 600; color: var(--ink-muted); text-transform:
|
||
uppercase; letter-spacing: 0.08em; margin-bottom: 12px; border-bottom: 1px solid var(--border); padding-bottom:
|
||
6px;"[39m
|
||
[36m>[39m
|
||
[0mOther / Misc[0m
|
||
[36m</h4>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; flex-direction: column; gap: 10px;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 14px; padding: 12px 16px; background:
|
||
var(--bg-elev); border: 1px solid var(--border); border-radius: var(--r-md); transition: all 0.15s; opacity: 1;
|
||
text-decoration: none;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33maria-label[39m=[32m"Toggle check for Apple"[39m
|
||
[33mstyle[39m=[32m"width: 22px; height: 22px; border-radius: 50%; border: 2px solid
|
||
var(--border-hover); background: transparent; display: flex; align-items: center; justify-content: center; cursor:
|
||
pointer; flex-shrink: 0; padding: 0px;"[39m
|
||
[36m/>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"flex: 1 1 0%; min-width: 0px;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"font-weight: 600; font-size: 14px; color: var(--ink);"[39m
|
||
[36m>[39m
|
||
[0mApple[0m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"font-size: 11px; color: var(--ink-muted); display: flex; gap: 10px;
|
||
margin-top: 2px;"[39m
|
||
[36m>[39m
|
||
[36m<span>[39m
|
||
[0mQty: [0m
|
||
[0m5[0m
|
||
[0m [0m
|
||
[0mpcs[0m
|
||
[36m</span>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<button[39m
|
||
[33mstyle[39m=[32m"border: medium; background: transparent; cursor: pointer; padding: 6px;
|
||
color: var(--ink-muted); opacity: 0.5;"[39m
|
||
[36m>[39m
|
||
...
|
||
|
||
Ignored nodes: comments, script, style
|
||
[36m<html>[39m
|
||
[36m<head />[39m
|
||
[36m<body>[39m
|
||
[36m<div>[39m
|
||
[36m<h1[39m
|
||
[33maria-hidden[39m=[32m"false"[39m
|
||
[33mstyle[39m=[32m"position: absolute; width: 1px; height: 1px; padding: 0px; margin: -1px; overflow:
|
||
hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border: 0px;"[39m
|
||
[36m>[39m
|
||
[0mTest List[0m
|
||
[36m</h1>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 16px; font-size: 13px; padding: 0px 32px;
|
||
max-width: 1400px; margin: -12px auto 12px;"[39m
|
||
[36m>[39m
|
||
[36m<span[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium
|
||
leading-relaxed bg-[var(--info-soft)] text-[var(--info)]"[39m
|
||
[36m>[39m
|
||
[0mactive[0m
|
||
[36m</span>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 6px; color: var(--ink-muted);"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"width: 8px; height: 8px; border-radius: 50%; background: var(--success, #10b981);
|
||
box-shadow: 0 0 8px var(--success);"[39m
|
||
[36m/>[39m
|
||
[0mLive Sync Channel Operational[0m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"padding: 28px 32px 64px; max-width: 1400px; margin: 0px auto;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; gap: 12px; margin-bottom: 24px; justify-content: space-between;
|
||
flex-wrap: wrap;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1.5 rounded-[var(--r-sm)] font-medium transition-all
|
||
whitespace-nowrap border border-transparent leading-none bg-[var(--bg-elev)] text-[var(--ink)] border-[var(--border)]
|
||
hover:border-[var(--border-strong)] hover:bg-[var(--bg-inset)] text-[13px] px-3 py-[7px] "[39m
|
||
[36m>[39m
|
||
[36m<svg[39m
|
||
[33maria-hidden[39m=[32m"true"[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mfill[39m=[32m"none"[39m
|
||
[33mheight[39m=[32m"18"[39m
|
||
[33mstroke[39m=[32m"currentColor"[39m
|
||
[33mstroke-linecap[39m=[32m"round"[39m
|
||
[33mstroke-linejoin[39m=[32m"round"[39m
|
||
[33mstroke-width[39m=[32m"1.6"[39m
|
||
[33mstyle[39m=[32m"display: inline-block; flex-shrink: 0; margin-right: 6px; width: 16px;"[39m
|
||
[33mviewBox[39m=[32m"0 0 24 24"[39m
|
||
[33mwidth[39m=[32m"18"[39m
|
||
[36m>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M15 18l-6-6 6-6"[39m
|
||
[36m/>[39m
|
||
[36m</svg>[39m
|
||
[0m Back to Hub[0m
|
||
[36m</button>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; gap: 12px;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1.5 rounded-[var(--r-sm)] font-medium transition-all
|
||
whitespace-nowrap border border-transparent leading-none bg-[var(--bg-elev)] text-[var(--ink)] border-[var(--border)]
|
||
hover:border-[var(--border-strong)] hover:bg-[var(--bg-inset)] text-[13px] px-3 py-[7px] "[39m
|
||
[36m>[39m
|
||
[36m<svg[39m
|
||
[33maria-hidden[39m=[32m"true"[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mfill[39m=[32m"none"[39m
|
||
[33mheight[39m=[32m"18"[39m
|
||
[33mstroke[39m=[32m"currentColor"[39m
|
||
[33mstroke-linecap[39m=[32m"round"[39m
|
||
[33mstroke-linejoin[39m=[32m"round"[39m
|
||
[33mstroke-width[39m=[32m"1.6"[39m
|
||
[33mstyle[39m=[32m"display: inline-block; flex-shrink: 0; margin-right: 6px; width: 16px;"[39m
|
||
[33mviewBox[39m=[32m"0 0 24 24"[39m
|
||
[33mwidth[39m=[32m"18"[39m
|
||
[36m>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M3 17l6-6 4 4 8-8"[39m
|
||
[36m/>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M14 7h7v7"[39m
|
||
[36m/>[39m
|
||
[36m</svg>[39m
|
||
[0m Check Lowest Store Options[0m
|
||
[36m</button>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: grid; grid-template-columns: 1fr 380px; gap: 32px; align-items: start;"[39m
|
||
[36m>[39m
|
||
[36m<div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; flex-direction: column; gap: 24px;"[39m
|
||
[36m>[39m
|
||
[36m<div>[39m
|
||
[36m<h4[39m
|
||
[33mstyle[39m=[32m"font-size: 13px; font-weight: 600; color: var(--ink-muted); text-transform:
|
||
uppercase; letter-spacing: 0.08em; margin-bottom: 12px; border-bottom: 1px solid var(--border); padding-bottom:
|
||
6px;"[39m
|
||
[36m>[39m
|
||
[0mOther / Misc[0m
|
||
[36m</h4>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; flex-direction: column; gap: 10px;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 14px; padding: 12px 16px;
|
||
background: var(--bg-elev); border: 1px solid var(--border); border-radius: var(--r-md); transition: all 0.15s;
|
||
opacity: 1; text-decoration: none;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33maria-label[39m=[32m"Toggle check for Apple"[39m
|
||
[33mstyle[39m=[32m"width: 22px; height: 22px; border-radius: 50%; border: 2px solid
|
||
var(--border-hover); background: transparent; display: flex; align-items: center; justify-content: center; cursor:
|
||
pointer; flex-shrink: 0; padding: 0px;"[39m
|
||
[36m/>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"flex: 1 1 0%; min-width: 0px;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"font-weight: 600; font-size: 14px; color: var(--ink);"[39m
|
||
[36m>[39m
|
||
[0mApple[0m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"font-size: 11px; color: var(--ink-muted); display: flex; gap: 10px;
|
||
margin-top: 2px;"[39m
|
||
[36m>[39m
|
||
[36m<span>[39m
|
||
[0mQty: [0m
|
||
[0m5[0m
|
||
[0m [0m
|
||
[0mpcs[0m
|
||
[36m</span>[39m
|
||
[36m</...
|
||
[90m [2mΓ¥»[22m Proxy.waitForWrapper ../../node_modules/@testing-library/dom/dist/wait-for.js:[2m163:27[22m[39m
|
||
[36m [2mΓ¥»[22m src/app/(dashboard)/shopping-lists/[id]/__tests__/page.test.tsx:[2m74:11[22m[39m
|
||
[90m 72|[39m [34mit[39m([32m'toggles an item check'[39m[33m,[39m [35masync[39m () [33m=>[39m {
|
||
[90m 73|[39m [34mrender[39m([33m<[39m[33mShoppingListDetailPage[39m [33m/[39m[33m>[39m)[33m;[39m
|
||
[90m 74|[39m await waitFor(() => expect(screen.getByText('Apple')).toBeInTheDoc…
|
||
[90m |[39m [31m^[39m
|
||
[90m 75|[39m
|
||
[90m 76|[39m const checkbox = screen.getByRole('button', { name: /Toggle check …
|
||
|
||
[31m[2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/7]⎯[22m[39m
|
||
|
||
[41m[1m FAIL [22m[49m src/app/(dashboard)/shopping-lists/[id]/__tests__/page.test.tsx[2m >
|
||
[22mShoppingListDetailPage[2m > [22madds a new item to the list
|
||
[31m[1mTestingLibraryElementError[22m[39m: Found multiple elements with the text: Apple
|
||
|
||
Here are the matching elements:
|
||
|
||
Ignored nodes: comments, script, style
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"font-weight: 600; font-size: 14px; color: var(--ink);"[39m
|
||
[36m>[39m
|
||
[0mApple[0m
|
||
[36m</div>[39m
|
||
|
||
Ignored nodes: comments, script, style
|
||
[36m<option[39m
|
||
[33mvalue[39m=[32m"p1"[39m
|
||
[36m>[39m
|
||
[0mApple[0m
|
||
[36m</option>[39m
|
||
|
||
(If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or
|
||
`findAllByText`)).
|
||
|
||
Ignored nodes: comments, script, style
|
||
[36m<body>[39m
|
||
[36m<div>[39m
|
||
[36m<h1[39m
|
||
[33maria-hidden[39m=[32m"false"[39m
|
||
[33mstyle[39m=[32m"position: absolute; width: 1px; height: 1px; padding: 0px; margin: -1px; overflow: hidden;
|
||
clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border: 0px;"[39m
|
||
[36m>[39m
|
||
[0mTest List[0m
|
||
[36m</h1>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 16px; font-size: 13px; padding: 0px 32px;
|
||
max-width: 1400px; margin: -12px auto 12px;"[39m
|
||
[36m>[39m
|
||
[36m<span[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium
|
||
leading-relaxed bg-[var(--info-soft)] text-[var(--info)]"[39m
|
||
[36m>[39m
|
||
[0mactive[0m
|
||
[36m</span>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 6px; color: var(--ink-muted);"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"width: 8px; height: 8px; border-radius: 50%; background: var(--success, #10b981);
|
||
box-shadow: 0 0 8px var(--success);"[39m
|
||
[36m/>[39m
|
||
[0mLive Sync Channel Operational[0m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"padding: 28px 32px 64px; max-width: 1400px; margin: 0px auto;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; gap: 12px; margin-bottom: 24px; justify-content: space-between;
|
||
flex-wrap: wrap;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1.5 rounded-[var(--r-sm)] font-medium transition-all
|
||
whitespace-nowrap border border-transparent leading-none bg-[var(--bg-elev)] text-[var(--ink)] border-[var(--border)]
|
||
hover:border-[var(--border-strong)] hover:bg-[var(--bg-inset)] text-[13px] px-3 py-[7px] "[39m
|
||
[36m>[39m
|
||
[36m<svg[39m
|
||
[33maria-hidden[39m=[32m"true"[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mfill[39m=[32m"none"[39m
|
||
[33mheight[39m=[32m"18"[39m
|
||
[33mstroke[39m=[32m"currentColor"[39m
|
||
[33mstroke-linecap[39m=[32m"round"[39m
|
||
[33mstroke-linejoin[39m=[32m"round"[39m
|
||
[33mstroke-width[39m=[32m"1.6"[39m
|
||
[33mstyle[39m=[32m"display: inline-block; flex-shrink: 0; margin-right: 6px; width: 16px;"[39m
|
||
[33mviewBox[39m=[32m"0 0 24 24"[39m
|
||
[33mwidth[39m=[32m"18"[39m
|
||
[36m>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M15 18l-6-6 6-6"[39m
|
||
[36m/>[39m
|
||
[36m</svg>[39m
|
||
[0m Back to Hub[0m
|
||
[36m</button>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; gap: 12px;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1.5 rounded-[var(--r-sm)] font-medium transition-all
|
||
whitespace-nowrap border border-transparent leading-none bg-[var(--bg-elev)] text-[var(--ink)] border-[var(--border)]
|
||
hover:border-[var(--border-strong)] hover:bg-[var(--bg-inset)] text-[13px] px-3 py-[7px] "[39m
|
||
[36m>[39m
|
||
[36m<svg[39m
|
||
[33maria-hidden[39m=[32m"true"[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mfill[39m=[32m"none"[39m
|
||
[33mheight[39m=[32m"18"[39m
|
||
[33mstroke[39m=[32m"currentColor"[39m
|
||
[33mstroke-linecap[39m=[32m"round"[39m
|
||
[33mstroke-linejoin[39m=[32m"round"[39m
|
||
[33mstroke-width[39m=[32m"1.6"[39m
|
||
[33mstyle[39m=[32m"display: inline-block; flex-shrink: 0; margin-right: 6px; width: 16px;"[39m
|
||
[33mviewBox[39m=[32m"0 0 24 24"[39m
|
||
[33mwidth[39m=[32m"18"[39m
|
||
[36m>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M3 17l6-6 4 4 8-8"[39m
|
||
[36m/>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M14 7h7v7"[39m
|
||
[36m/>[39m
|
||
[36m</svg>[39m
|
||
[0m Check Lowest Store Options[0m
|
||
[36m</button>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: grid; grid-template-columns: 1fr 380px; gap: 32px; align-items: start;"[39m
|
||
[36m>[39m
|
||
[36m<div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; flex-direction: column; gap: 24px;"[39m
|
||
[36m>[39m
|
||
[36m<div>[39m
|
||
[36m<h4[39m
|
||
[33mstyle[39m=[32m"font-size: 13px; font-weight: 600; color: var(--ink-muted); text-transform:
|
||
uppercase; letter-spacing: 0.08em; margin-bottom: 12px; border-bottom: 1px solid var(--border); padding-bottom:
|
||
6px;"[39m
|
||
[36m>[39m
|
||
[0mOther / Misc[0m
|
||
[36m</h4>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; flex-direction: column; gap: 10px;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 14px; padding: 12px 16px; background:
|
||
var(--bg-elev); border: 1px solid var(--border); border-radius: var(--r-md); transition: all 0.15s; opacity: 1;
|
||
text-decoration: none;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33maria-label[39m=[32m"Toggle check for Apple"[39m
|
||
[33mstyle[39m=[32m"width: 22px; height: 22px; border-radius: 50%; border: 2px solid
|
||
var(--border-hover); background: transparent; display: flex; align-items: center; justify-content: center; cursor:
|
||
pointer; flex-shrink: 0; padding: 0px;"[39m
|
||
[36m/>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"flex: 1 1 0%; min-width: 0px;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"font-weight: 600; font-size: 14px; color: var(--ink);"[39m
|
||
[36m>[39m
|
||
[0mApple[0m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"font-size: 11px; color: var(--ink-muted); display: flex; gap: 10px;
|
||
margin-top: 2px;"[39m
|
||
[36m>[39m
|
||
[36m<span>[39m
|
||
[0mQty: [0m
|
||
[0m5[0m
|
||
[0m [0m
|
||
[0mpcs[0m
|
||
[36m</span>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<button[39m
|
||
[33mstyle[39m=[32m"border: medium; background: transparent; cursor: pointer; padding: 6px;
|
||
color: var(--ink-muted); opacity: 0.5;"[39m
|
||
[36m>[39m
|
||
...
|
||
|
||
Ignored nodes: comments, script, style
|
||
[36m<html>[39m
|
||
[36m<head />[39m
|
||
[36m<body>[39m
|
||
[36m<div>[39m
|
||
[36m<h1[39m
|
||
[33maria-hidden[39m=[32m"false"[39m
|
||
[33mstyle[39m=[32m"position: absolute; width: 1px; height: 1px; padding: 0px; margin: -1px; overflow:
|
||
hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border: 0px;"[39m
|
||
[36m>[39m
|
||
[0mTest List[0m
|
||
[36m</h1>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 16px; font-size: 13px; padding: 0px 32px;
|
||
max-width: 1400px; margin: -12px auto 12px;"[39m
|
||
[36m>[39m
|
||
[36m<span[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium
|
||
leading-relaxed bg-[var(--info-soft)] text-[var(--info)]"[39m
|
||
[36m>[39m
|
||
[0mactive[0m
|
||
[36m</span>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 6px; color: var(--ink-muted);"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"width: 8px; height: 8px; border-radius: 50%; background: var(--success, #10b981);
|
||
box-shadow: 0 0 8px var(--success);"[39m
|
||
[36m/>[39m
|
||
[0mLive Sync Channel Operational[0m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"padding: 28px 32px 64px; max-width: 1400px; margin: 0px auto;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; gap: 12px; margin-bottom: 24px; justify-content: space-between;
|
||
flex-wrap: wrap;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1.5 rounded-[var(--r-sm)] font-medium transition-all
|
||
whitespace-nowrap border border-transparent leading-none bg-[var(--bg-elev)] text-[var(--ink)] border-[var(--border)]
|
||
hover:border-[var(--border-strong)] hover:bg-[var(--bg-inset)] text-[13px] px-3 py-[7px] "[39m
|
||
[36m>[39m
|
||
[36m<svg[39m
|
||
[33maria-hidden[39m=[32m"true"[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mfill[39m=[32m"none"[39m
|
||
[33mheight[39m=[32m"18"[39m
|
||
[33mstroke[39m=[32m"currentColor"[39m
|
||
[33mstroke-linecap[39m=[32m"round"[39m
|
||
[33mstroke-linejoin[39m=[32m"round"[39m
|
||
[33mstroke-width[39m=[32m"1.6"[39m
|
||
[33mstyle[39m=[32m"display: inline-block; flex-shrink: 0; margin-right: 6px; width: 16px;"[39m
|
||
[33mviewBox[39m=[32m"0 0 24 24"[39m
|
||
[33mwidth[39m=[32m"18"[39m
|
||
[36m>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M15 18l-6-6 6-6"[39m
|
||
[36m/>[39m
|
||
[36m</svg>[39m
|
||
[0m Back to Hub[0m
|
||
[36m</button>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; gap: 12px;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1.5 rounded-[var(--r-sm)] font-medium transition-all
|
||
whitespace-nowrap border border-transparent leading-none bg-[var(--bg-elev)] text-[var(--ink)] border-[var(--border)]
|
||
hover:border-[var(--border-strong)] hover:bg-[var(--bg-inset)] text-[13px] px-3 py-[7px] "[39m
|
||
[36m>[39m
|
||
[36m<svg[39m
|
||
[33maria-hidden[39m=[32m"true"[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mfill[39m=[32m"none"[39m
|
||
[33mheight[39m=[32m"18"[39m
|
||
[33mstroke[39m=[32m"currentColor"[39m
|
||
[33mstroke-linecap[39m=[32m"round"[39m
|
||
[33mstroke-linejoin[39m=[32m"round"[39m
|
||
[33mstroke-width[39m=[32m"1.6"[39m
|
||
[33mstyle[39m=[32m"display: inline-block; flex-shrink: 0; margin-right: 6px; width: 16px;"[39m
|
||
[33mviewBox[39m=[32m"0 0 24 24"[39m
|
||
[33mwidth[39m=[32m"18"[39m
|
||
[36m>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M3 17l6-6 4 4 8-8"[39m
|
||
[36m/>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M14 7h7v7"[39m
|
||
[36m/>[39m
|
||
[36m</svg>[39m
|
||
[0m Check Lowest Store Options[0m
|
||
[36m</button>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: grid; grid-template-columns: 1fr 380px; gap: 32px; align-items: start;"[39m
|
||
[36m>[39m
|
||
[36m<div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; flex-direction: column; gap: 24px;"[39m
|
||
[36m>[39m
|
||
[36m<div>[39m
|
||
[36m<h4[39m
|
||
[33mstyle[39m=[32m"font-size: 13px; font-weight: 600; color: var(--ink-muted); text-transform:
|
||
uppercase; letter-spacing: 0.08em; margin-bottom: 12px; border-bottom: 1px solid var(--border); padding-bottom:
|
||
6px;"[39m
|
||
[36m>[39m
|
||
[0mOther / Misc[0m
|
||
[36m</h4>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; flex-direction: column; gap: 10px;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 14px; padding: 12px 16px;
|
||
background: var(--bg-elev); border: 1px solid var(--border); border-radius: var(--r-md); transition: all 0.15s;
|
||
opacity: 1; text-decoration: none;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33maria-label[39m=[32m"Toggle check for Apple"[39m
|
||
[33mstyle[39m=[32m"width: 22px; height: 22px; border-radius: 50%; border: 2px solid
|
||
var(--border-hover); background: transparent; display: flex; align-items: center; justify-content: center; cursor:
|
||
pointer; flex-shrink: 0; padding: 0px;"[39m
|
||
[36m/>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"flex: 1 1 0%; min-width: 0px;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"font-weight: 600; font-size: 14px; color: var(--ink);"[39m
|
||
[36m>[39m
|
||
[0mApple[0m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"font-size: 11px; color: var(--ink-muted); display: flex; gap: 10px;
|
||
margin-top: 2px;"[39m
|
||
[36m>[39m
|
||
[36m<span>[39m
|
||
[0mQty: [0m
|
||
[0m5[0m
|
||
[0m [0m
|
||
[0mpcs[0m
|
||
[36m</span>[39m
|
||
[36m</...
|
||
[90m [2mΓ¥»[22m Proxy.waitForWrapper ../../node_modules/@testing-library/dom/dist/wait-for.js:[2m163:27[22m[39m
|
||
[36m [2mΓ¥»[22m src/app/(dashboard)/shopping-lists/[id]/__tests__/page.test.tsx:[2m92:11[22m[39m
|
||
[90m 90|[39m
|
||
[90m 91|[39m [34mrender[39m([33m<[39m[33mShoppingListDetailPage[39m [33m/[39m[33m>[39m)[33m;[39m
|
||
[90m 92|[39m await waitFor(() => expect(screen.getByText('Apple')).toBeInTheDoc…
|
||
[90m |[39m [31m^[39m
|
||
[90m 93|[39m
|
||
[90m 94|[39m const customInput = screen.getByPlaceholderText(/e.g., Generic Flo…
|
||
|
||
[31m[2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/7]⎯[22m[39m
|
||
|
||
[41m[1m FAIL [22m[49m src/app/(dashboard)/shopping-lists/[id]/__tests__/page.test.tsx[2m >
|
||
[22mShoppingListDetailPage[2m > [22mcompletes the trip and syncs to pantry
|
||
[31m[1mTestingLibraryElementError[22m[39m: Found multiple elements with the text: Apple
|
||
|
||
Here are the matching elements:
|
||
|
||
Ignored nodes: comments, script, style
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"font-weight: 600; font-size: 14px; color: var(--ink-muted);"[39m
|
||
[36m>[39m
|
||
[0mApple[0m
|
||
[36m</div>[39m
|
||
|
||
Ignored nodes: comments, script, style
|
||
[36m<option[39m
|
||
[33mvalue[39m=[32m"p1"[39m
|
||
[36m>[39m
|
||
[0mApple[0m
|
||
[36m</option>[39m
|
||
|
||
(If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or
|
||
`findAllByText`)).
|
||
|
||
Ignored nodes: comments, script, style
|
||
[36m<body>[39m
|
||
[36m<div>[39m
|
||
[36m<h1[39m
|
||
[33maria-hidden[39m=[32m"false"[39m
|
||
[33mstyle[39m=[32m"position: absolute; width: 1px; height: 1px; padding: 0px; margin: -1px; overflow: hidden;
|
||
clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border: 0px;"[39m
|
||
[36m>[39m
|
||
[0mTest List[0m
|
||
[36m</h1>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 16px; font-size: 13px; padding: 0px 32px;
|
||
max-width: 1400px; margin: -12px auto 12px;"[39m
|
||
[36m>[39m
|
||
[36m<span[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium
|
||
leading-relaxed bg-[var(--info-soft)] text-[var(--info)]"[39m
|
||
[36m>[39m
|
||
[0mactive[0m
|
||
[36m</span>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 6px; color: var(--ink-muted);"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"width: 8px; height: 8px; border-radius: 50%; background: var(--success, #10b981);
|
||
box-shadow: 0 0 8px var(--success);"[39m
|
||
[36m/>[39m
|
||
[0mLive Sync Channel Operational[0m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"padding: 28px 32px 64px; max-width: 1400px; margin: 0px auto;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; gap: 12px; margin-bottom: 24px; justify-content: space-between;
|
||
flex-wrap: wrap;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1.5 rounded-[var(--r-sm)] font-medium transition-all
|
||
whitespace-nowrap border border-transparent leading-none bg-[var(--bg-elev)] text-[var(--ink)] border-[var(--border)]
|
||
hover:border-[var(--border-strong)] hover:bg-[var(--bg-inset)] text-[13px] px-3 py-[7px] "[39m
|
||
[36m>[39m
|
||
[36m<svg[39m
|
||
[33maria-hidden[39m=[32m"true"[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mfill[39m=[32m"none"[39m
|
||
[33mheight[39m=[32m"18"[39m
|
||
[33mstroke[39m=[32m"currentColor"[39m
|
||
[33mstroke-linecap[39m=[32m"round"[39m
|
||
[33mstroke-linejoin[39m=[32m"round"[39m
|
||
[33mstroke-width[39m=[32m"1.6"[39m
|
||
[33mstyle[39m=[32m"display: inline-block; flex-shrink: 0; margin-right: 6px; width: 16px;"[39m
|
||
[33mviewBox[39m=[32m"0 0 24 24"[39m
|
||
[33mwidth[39m=[32m"18"[39m
|
||
[36m>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M15 18l-6-6 6-6"[39m
|
||
[36m/>[39m
|
||
[36m</svg>[39m
|
||
[0m Back to Hub[0m
|
||
[36m</button>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; gap: 12px;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1.5 rounded-[var(--r-sm)] font-medium transition-all
|
||
whitespace-nowrap border border-transparent leading-none bg-[var(--bg-elev)] text-[var(--ink)] border-[var(--border)]
|
||
hover:border-[var(--border-strong)] hover:bg-[var(--bg-inset)] text-[13px] px-3 py-[7px] "[39m
|
||
[36m>[39m
|
||
[36m<svg[39m
|
||
[33maria-hidden[39m=[32m"true"[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mfill[39m=[32m"none"[39m
|
||
[33mheight[39m=[32m"18"[39m
|
||
[33mstroke[39m=[32m"currentColor"[39m
|
||
[33mstroke-linecap[39m=[32m"round"[39m
|
||
[33mstroke-linejoin[39m=[32m"round"[39m
|
||
[33mstroke-width[39m=[32m"1.6"[39m
|
||
[33mstyle[39m=[32m"display: inline-block; flex-shrink: 0; margin-right: 6px; width: 16px;"[39m
|
||
[33mviewBox[39m=[32m"0 0 24 24"[39m
|
||
[33mwidth[39m=[32m"18"[39m
|
||
[36m>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M3 17l6-6 4 4 8-8"[39m
|
||
[36m/>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M14 7h7v7"[39m
|
||
[36m/>[39m
|
||
[36m</svg>[39m
|
||
[0m Check Lowest Store Options[0m
|
||
[36m</button>[39m
|
||
[36m<button[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1.5 rounded-[var(--r-sm)] font-medium transition-all
|
||
whitespace-nowrap border border-transparent leading-none bg-[var(--bg-elev)] text-[var(--ink)] border-[var(--border)]
|
||
hover:border-[var(--border-strong)] hover:bg-[var(--bg-inset)] text-[13px] px-3 py-[7px] "[39m
|
||
[33mstyle[39m=[32m"background: var(--success); border-color: var(--success); color: rgb(255, 255,
|
||
255);"[39m
|
||
[36m>[39m
|
||
[36m<svg[39m
|
||
[33maria-hidden[39m=[32m"true"[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mfill[39m=[32m"none"[39m
|
||
[33mheight[39m=[32m"18"[39m
|
||
[33mstroke[39m=[32m"currentColor"[39m
|
||
[33mstroke-linecap[39m=[32m"round"[39m
|
||
[33mstroke-linejoin[39m=[32m"round"[39m
|
||
[33mstroke-width[39m=[32m"1.6"[39m
|
||
[33mstyle[39m=[32m"display: inline-block; flex-shrink: 0; margin-right: 6px; width: 16px;"[39m
|
||
[33mviewBox[39m=[32m"0 0 24 24"[39m
|
||
[33mwidth[39m=[32m"18"[39m
|
||
[36m>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M3 7l9-4 9 4v10l-9 4-9-4z"[39m
|
||
[36m/>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M3 7l9 4 9-4M12 11v10"[39m
|
||
[36m/>[39m
|
||
[36m</svg>[39m
|
||
[0m Sync [0m
|
||
[0m1[0m
|
||
[0m items to Pantry[0m
|
||
[36m</button>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: grid; grid-template-columns: 1fr 380px; gap: 32px; align-items: start;"[39m
|
||
[36m>[39m
|
||
[36m<div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; flex-direction: column; gap: 24px;"[39m
|
||
[36m>[39m
|
||
[36m<div>[39m
|
||
[36m<h4[39m
|
||
[33mstyle[39m=[32m"font-size: 13px; font-weight: 600; color: var(--ink-muted); text-transform:
|
||
uppercase; letter-spacing: 0.08em; margin-bottom: 12px; border-bottom: 1px solid var(--border); padding-bottom:
|
||
6px;"[39m
|
||
[36m>[39m
|
||
[0mOther / Misc[0m
|
||
[36m</h4>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; flex-direction: column; gap: 10px;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 14px; padding: 12px 16px; background:
|
||
var(--bg-elev); border: 1px solid var(--border); border-radius: var(--r-md); transition: all 0.15s; opacity: 0.65;
|
||
text-decoration: l...
|
||
|
||
Ignored nodes: comments, script, style
|
||
[36m<html>[39m
|
||
[36m<head />[39m
|
||
[36m<body>[39m
|
||
[36m<div>[39m
|
||
[36m<h1[39m
|
||
[33maria-hidden[39m=[32m"false"[39m
|
||
[33mstyle[39m=[32m"position: absolute; width: 1px; height: 1px; padding: 0px; margin: -1px; overflow:
|
||
hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border: 0px;"[39m
|
||
[36m>[39m
|
||
[0mTest List[0m
|
||
[36m</h1>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 16px; font-size: 13px; padding: 0px 32px;
|
||
max-width: 1400px; margin: -12px auto 12px;"[39m
|
||
[36m>[39m
|
||
[36m<span[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-[11px] font-medium
|
||
leading-relaxed bg-[var(--info-soft)] text-[var(--info)]"[39m
|
||
[36m>[39m
|
||
[0mactive[0m
|
||
[36m</span>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; align-items: center; gap: 6px; color: var(--ink-muted);"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"width: 8px; height: 8px; border-radius: 50%; background: var(--success, #10b981);
|
||
box-shadow: 0 0 8px var(--success);"[39m
|
||
[36m/>[39m
|
||
[0mLive Sync Channel Operational[0m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"padding: 28px 32px 64px; max-width: 1400px; margin: 0px auto;"[39m
|
||
[36m>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; gap: 12px; margin-bottom: 24px; justify-content: space-between;
|
||
flex-wrap: wrap;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1.5 rounded-[var(--r-sm)] font-medium transition-all
|
||
whitespace-nowrap border border-transparent leading-none bg-[var(--bg-elev)] text-[var(--ink)] border-[var(--border)]
|
||
hover:border-[var(--border-strong)] hover:bg-[var(--bg-inset)] text-[13px] px-3 py-[7px] "[39m
|
||
[36m>[39m
|
||
[36m<svg[39m
|
||
[33maria-hidden[39m=[32m"true"[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mfill[39m=[32m"none"[39m
|
||
[33mheight[39m=[32m"18"[39m
|
||
[33mstroke[39m=[32m"currentColor"[39m
|
||
[33mstroke-linecap[39m=[32m"round"[39m
|
||
[33mstroke-linejoin[39m=[32m"round"[39m
|
||
[33mstroke-width[39m=[32m"1.6"[39m
|
||
[33mstyle[39m=[32m"display: inline-block; flex-shrink: 0; margin-right: 6px; width: 16px;"[39m
|
||
[33mviewBox[39m=[32m"0 0 24 24"[39m
|
||
[33mwidth[39m=[32m"18"[39m
|
||
[36m>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M15 18l-6-6 6-6"[39m
|
||
[36m/>[39m
|
||
[36m</svg>[39m
|
||
[0m Back to Hub[0m
|
||
[36m</button>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; gap: 12px;"[39m
|
||
[36m>[39m
|
||
[36m<button[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1.5 rounded-[var(--r-sm)] font-medium transition-all
|
||
whitespace-nowrap border border-transparent leading-none bg-[var(--bg-elev)] text-[var(--ink)] border-[var(--border)]
|
||
hover:border-[var(--border-strong)] hover:bg-[var(--bg-inset)] text-[13px] px-3 py-[7px] "[39m
|
||
[36m>[39m
|
||
[36m<svg[39m
|
||
[33maria-hidden[39m=[32m"true"[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mfill[39m=[32m"none"[39m
|
||
[33mheight[39m=[32m"18"[39m
|
||
[33mstroke[39m=[32m"currentColor"[39m
|
||
[33mstroke-linecap[39m=[32m"round"[39m
|
||
[33mstroke-linejoin[39m=[32m"round"[39m
|
||
[33mstroke-width[39m=[32m"1.6"[39m
|
||
[33mstyle[39m=[32m"display: inline-block; flex-shrink: 0; margin-right: 6px; width: 16px;"[39m
|
||
[33mviewBox[39m=[32m"0 0 24 24"[39m
|
||
[33mwidth[39m=[32m"18"[39m
|
||
[36m>[39m
|
||
[36m<path[39m
|
||
|
||
[2m Test Files [22m [1m[31m2 failed[39m[22m[2m | [22m[1m[32m56 passed[39m[22m[90m (58)[39m
|
||
[2m Tests [22m [1m[31m7 failed[39m[22m[2m | [22m[1m[32m617 passed[39m[22m[90m (624)[39m
|
||
[2m Start at [22m 08:48:56
|
||
[2m Duration [22m 14.73s[2m (transform 12.78s, setup 37.91s, import 31.13s, tests 44.48s, environment 281.61s)[22m
|
||
|
||
[33md[39m=[32m"M3 17l6-6 4 4 8-8"[39m
|
||
[36m/>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M14 7h7v7"[39m
|
||
[36m/>[39m
|
||
[36m</svg>[39m
|
||
[0m Check Lowest Store Options[0m
|
||
[36m</button>[39m
|
||
[36m<button[39m
|
||
[33mclass[39m=[32m"inline-flex items-center gap-1.5 rounded-[var(--r-sm)] font-medium transition-all
|
||
whitespace-nowrap border border-transparent leading-none bg-[var(--bg-elev)] text-[var(--ink)] border-[var(--border)]
|
||
hover:border-[var(--border-strong)] hover:bg-[var(--bg-inset)] text-[13px] px-3 py-[7px] "[39m
|
||
[33mstyle[39m=[32m"background: var(--success); border-color: var(--success); color: rgb(255, 255,
|
||
255);"[39m
|
||
[36m>[39m
|
||
[36m<svg[39m
|
||
[33maria-hidden[39m=[32m"true"[39m
|
||
[33mclass[39m=[32m""[39m
|
||
[33mfill[39m=[32m"none"[39m
|
||
[33mheight[39m=[32m"18"[39m
|
||
[33mstroke[39m=[32m"currentColor"[39m
|
||
[33mstroke-linecap[39m=[32m"round"[39m
|
||
[33mstroke-linejoin[39m=[32m"round"[39m
|
||
[33mstroke-width[39m=[32m"1.6"[39m
|
||
[33mstyle[39m=[32m"display: inline-block; flex-shrink: 0; margin-right: 6px; width: 16px;"[39m
|
||
[33mviewBox[39m=[32m"0 0 24 24"[39m
|
||
[33mwidth[39m=[32m"18"[39m
|
||
[36m>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M3 7l9-4 9 4v10l-9 4-9-4z"[39m
|
||
[36m/>[39m
|
||
[36m<path[39m
|
||
[33md[39m=[32m"M3 7l9 4 9-4M12 11v10"[39m
|
||
[36m/>[39m
|
||
[36m</svg>[39m
|
||
[0m Sync [0m
|
||
[0m1[0m
|
||
[0m items to Pantry[0m
|
||
[36m</button>[39m
|
||
[36m</div>[39m
|
||
[36m</div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: grid; grid-template-columns: 1fr 380px; gap: 32px; align-items: start;"[39m
|
||
[36m>[39m
|
||
[36m<div>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; flex-direction: column; gap: 24px;"[39m
|
||
[36m>[39m
|
||
[36m<div>[39m
|
||
[36m<h4[39m
|
||
[33mstyle[39m=[32m"font-size: 13px; font-weight: 600; color: var(--ink-muted); text-transform:
|
||
uppercase; letter-spacing: 0.08em; margin-bottom: 12px; border-bottom: 1px solid var(--border); padding-bottom:
|
||
6px;"[39m
|
||
[36m>[39m
|
||
[0mOther / Misc[0m
|
||
[36m</h4>[39m
|
||
[36m<div[39m
|
||
[33mstyle[39m=[32m"display: flex; flex-direction: column; gap: 10px;"[39m
|
||
[3...
|
||
[90m [2mΓ¥»[22m Proxy.waitForWrapper ../../node_modules/@testing-library/dom/dist/wait-for.js:[2m163:27[22m[39m
|
||
[36m [2mΓ¥»[22m src/app/(dashboard)/shopping-lists/[id]/__tests__/page.test.tsx:[2m124:11[22m[39m
|
||
[90m122|[39m
|
||
[90m123|[39m [34mrender[39m([33m<[39m[33mShoppingListDetailPage[39m [33m/[39m[33m>[39m)[33m;[39m
|
||
[90m124|[39m await waitFor(() => expect(screen.getByText('Apple')).toBeInTheDoc…
|
||
[90m |[39m [31m^[39m
|
||
[90m125|[39m
|
||
[90m126|[39m const syncBtn = screen.getByRole('button', { name: /Sync.*items to…
|
||
|
||
[31m[2m⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[7/7]⎯[22m[39m
|
||
|