The CJS build of Vite's Node API is deprecated. See https://vite.dev/guide/troubleshooting.html#vite-cjs-node-api-deprecated for more details. RUN v2.1.9 /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo Coverage enabled with v8 ✓ tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should return empty object if session is not paid ✓ tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should return empty object if customer details are missing ✓ tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should return empty object if user fetch fails ✓ tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should return empty object if customer creation fails ✓ tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should return empty object if user customer_id update fails × tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should log error but continue if Redis stock adjustment fails → Cannot read properties of undefined (reading 'id') × tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should log error but continue if redis.hIncrBy fails during stock adjustment → Cannot read properties of undefined (reading 'id') × tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should throw error if line_items are missing from session → expected [Function] to throw error including 'Line items are required to create an …' but got 'Missing required data to create an or…' × tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should throw error if product ID is non-numeric in line items → expected [Function] to throw error including 'Product ID missing for item: non-nume…' but got 'Invalid line item data for session: c…' × tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should throw error if product ID is "0" in line items → expected [Function] to throw error including 'Product ID missing for item: 0' but got 'Invalid line item data for session: c…' × tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should update address type to both if it already exists as billing but shipping is needed → Cannot read properties of undefined (reading 'id') ✓ tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should return empty object if shipping address type update fails × tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should throw error if price is missing in line items → expected [Function] to throw error including 'Price missing for item: 1' but got 'Invalid line item data for session: c…' ✓ tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should catch validation error for shipping address × tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should catch unexpected error for shipping address validation → Cannot read properties of undefined (reading 'id') × tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should successfully fulfill checkout with all new entities → Cannot destructure property 'rows' of '(intermediate value)' as it is undefined. × tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should throw error if quantity is missing in line items → expected [Function] to throw error including 'Quantity missing for item: 1' but got 'Cannot destructure property \'rows\' …' × tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should throw error if amount_total is missing in line items → expected [Function] to throw error including 'Amount total missing for item: 1' but got 'Cannot destructure property \'rows\' …' ✓ tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should return empty object if billing address creation fails ✓ tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should return empty object if billing address type update fails ✓ tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should return empty object if shipping address creation fails × tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should throw error if order items creation count mismatch → expected [Function] to throw error including 'Failed to create all order items' but got 'Cannot destructure property \'rows\' …' × tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should set address_type to "both" when shipping details are missing → Cannot destructure property 'rows' of '(intermediate value)' as it is undefined. × tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should not update address type if it already is "both" → Cannot destructure property 'rows' of '(intermediate value)' as it is undefined. × tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should throw error if item description is missing → expected [Function] to throw error including 'Product ID missing for item: null' but got 'Cannot destructure property \'rows\' …' × tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should rollback and throw error if transaction COMMIT fails → expected [Function] to throw error including 'Commit failed' but got 'Cannot read properties of undefined (…' × tests/unit/lib/internal/fulfillment-paths.test.ts > fulfillCheckout Error Paths > should throw error if order creation returns null → expected [Function] to throw error including 'Failed to create order' but got 'Cannot destructure property \'rows\' …' ✓ actions/settings.test.ts > Settings Actions > getSuppliers > should return suppliers and total count ✓ actions/settings.test.ts > Settings Actions > createSupplier > should create a supplier and revalidate path ✓ actions/settings.test.ts > Settings Actions > createSupplier > should handle database errors during supplier creation ✓ actions/settings.test.ts > Settings Actions > updateSupplier > should update a supplier and revalidate path ✓ actions/settings.test.ts > Settings Actions > updateSupplier > should return 404 if supplier not found during update ✓ actions/settings.test.ts > Settings Actions > updateSupplier > should handle database errors during supplier update ✓ actions/settings.test.ts > Settings Actions > updateSupplier > BEHAVIOR DOCUMENTATION: should handle omitted optional fields in updateSupplier ✓ actions/settings.test.ts > Settings Actions > updateSupplier > should return "Keine Änderungen vorgenommen" when no fields are provided (Supplier) ✓ actions/settings.test.ts > Settings Actions > updateSupplier > should return 404 when supplier not found and no fields are provided ✓ actions/settings.test.ts > Settings Actions > deleteSupplier > should delete a supplier and revalidate path ✓ actions/settings.test.ts > Settings Actions > deleteSupplier > should return 400 if supplier is associated with products during deletion ✓ actions/settings.test.ts > Settings Actions > deleteSupplier > should handle database errors during supplier deletion ✓ actions/settings.test.ts > Settings Actions > getManufacturers > should return manufacturers and total count ✓ actions/settings.test.ts > Settings Actions > createManufacturer > should create a manufacturer and revalidate path ✓ actions/settings.test.ts > Settings Actions > createManufacturer > should handle database errors during manufacturer creation ✓ actions/settings.test.ts > Settings Actions > updateManufacturer > should update a manufacturer and revalidate path ✓ actions/settings.test.ts > Settings Actions > updateManufacturer > should return 404 if manufacturer not found during update ✓ actions/settings.test.ts > Settings Actions > updateManufacturer > should handle database errors during manufacturer update ✓ actions/settings.test.ts > Settings Actions > updateManufacturer > BEHAVIOR DOCUMENTATION: should handle omitted optional fields in updateManufacturer ✓ actions/settings.test.ts > Settings Actions > updateManufacturer > should return "Keine Änderungen vorgenommen" when no fields are provided (Manufacturer) ✓ actions/settings.test.ts > Settings Actions > updateManufacturer > should return 404 when manufacturer not found and no fields are provided ✓ actions/settings.test.ts > Settings Actions > deleteManufacturer > should delete a manufacturer and revalidate path ✓ actions/settings.test.ts > Settings Actions > deleteManufacturer > should return 400 if manufacturer is associated with products during deletion ✓ actions/settings.test.ts > Settings Actions > deleteManufacturer > should handle database errors during manufacturer deletion ✓ actions/settings.test.ts > Settings Actions > getResponsiblePersons > should return responsible persons and total count ✓ actions/settings.test.ts > Settings Actions > createEuResponsiblePerson > should create an EU responsible person and revalidate path ✓ actions/settings.test.ts > Settings Actions > createEuResponsiblePerson > should return 404 if EU responsible person not found during update ✓ actions/settings.test.ts > Settings Actions > createEuResponsiblePerson > should handle database errors during EU responsible person update ✓ actions/settings.test.ts > Settings Actions > updateEuResponsiblePerson > should update an EU responsible person and revalidate path ✓ actions/settings.test.ts > Settings Actions > updateEuResponsiblePerson > should return "Keine Änderungen vorgenommen" when no fields are provided (Responsible Person) ✓ actions/settings.test.ts > Settings Actions > updateEuResponsiblePerson > should return 404 when EU responsible person not found and no fields are provided ✓ actions/settings.test.ts > Settings Actions > deleteEuResponsiblePerson > should delete an EU responsible person and revalidate path ✓ actions/settings.test.ts > Settings Actions > deleteEuResponsiblePerson > should return 400 if EU responsible person is associated with products during deletion ✓ actions/settings.test.ts > Settings Actions > getImages > should return images and total count ✓ actions/settings.test.ts > Settings Actions > General functionality > getSuppliers should work with pagination ✓ actions/settings.test.ts > Settings Actions > General functionality > getManufacturers should work with pagination ✓ actions/settings.test.ts > Settings Actions > General functionality > getResponsiblePersons should work with pagination ✓ actions/settings.test.ts > Settings Actions > General functionality > getImages should work with pagination ✓ actions/settings.test.ts > Settings Actions > General functionality > should handle errors ✓ actions/settings.test.ts > Settings Actions > General functionality > should re-throw NEXT_REDIRECT error in settings actions ✓ actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if session is not paid ✓ actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if customer email is missing ✓ actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if customer_details is missing entirely × actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if amount_total is missing → expected [Function] to throw error including 'Amount total is required' but got 'Missing required data to create an or…' × actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if line_items are missing → expected [Function] to throw error including 'Line items are required' but got 'Missing required data to create an or…' × actions/fulfill-checkout.test.ts > fulfillCheckout > should fulfill checkout for existing user and existing address → Cannot read properties of undefined (reading 'id') × actions/fulfill-checkout.test.ts > fulfillCheckout > should create new customer and update user if user has no customer_id → Cannot read properties of undefined (reading 'id') × actions/fulfill-checkout.test.ts > fulfillCheckout > should handle missing customer phone during customer creation → Cannot read properties of undefined (reading 'id') × actions/fulfill-checkout.test.ts > fulfillCheckout > should create new address if it does not exist → Cannot read properties of undefined (reading 'id') × actions/fulfill-checkout.test.ts > fulfillCheckout > should update address type if it exists but type is different → Cannot read properties of undefined (reading 'id') × actions/fulfill-checkout.test.ts > fulfillCheckout > should handle separate shipping details → Cannot read properties of undefined (reading 'id') ✓ actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if shipping address type update fails (initial check) × actions/fulfill-checkout.test.ts > fulfillCheckout > should update shipping address type if it exists but type is different → Cannot read properties of undefined (reading 'id') ✓ actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if payment_status is no_payment_required (documenting current behavior) ✓ actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if payment_status is async_payment_failed ✓ actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if billing address validation fails ✓ actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if billing street is missing ✓ actions/fulfill-checkout.test.ts > fulfillCheckout > should handle errors in getUserByEmail × actions/fulfill-checkout.test.ts > fulfillCheckout > should handle errors in createOrder and rollback → expected [Function] to throw error including 'DB Error' but got 'Cannot read properties of undefined (…' × actions/fulfill-checkout.test.ts > fulfillCheckout > should rollback if createOrderItems fails → expected [Function] to throw error including 'Item creation failed' but got 'Cannot read properties of undefined (…' ✓ actions/fulfill-checkout.test.ts > fulfillCheckout > should handle stripe.checkout.sessions.retrieve failure ✓ actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object for expired checkout sessions × actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if product description is missing (used as product_id) → expected [Function] to throw error including 'Product ID missing for item: null' but got 'Invalid line item data for session: c…' ✓ actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if createCustomer fails ✓ actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if updateUserCustomerId fails × actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if createOrder returns null → expected [Function] to throw error including 'Failed to create order' but got 'Cannot read properties of undefined (…' × actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if createOrderItems returns incorrect number of items → expected [Function] to throw error including 'Failed to create all order items' but got 'Cannot read properties of undefined (…' × actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if line item quantity is missing → expected [Function] to throw error including 'Quantity missing for item: 1' but got 'Invalid line item data for session: c…' × actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if line item amount_total is missing → expected [Function] to throw error including 'Amount total missing for item: 1' but got 'Invalid line item data for session: c…' × actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if line item price unit_amount is missing → expected [Function] to throw error including 'Price missing for item: 1' but got 'Invalid line item data for session: c…' × actions/fulfill-checkout.test.ts > fulfillCheckout > should handle empty house_number and state by converting to null → Cannot read properties of undefined (reading 'id') × actions/fulfill-checkout.test.ts > fulfillCheckout > should log unexpected error in shipping address validation but continue → Cannot read properties of undefined (reading 'id') × actions/fulfill-checkout.test.ts > fulfillCheckout > should throw error if session line items data is missing → expected [Function] to throw error including 'Line items are required' but got 'Missing required data to create an or…' ✓ actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if billing address creation fails ✓ actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if billing address type update fails ✓ actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if shipping address creation fails × actions/fulfill-checkout.test.ts > fulfillCheckout > should log Redis error but not throw → Cannot read properties of undefined (reading 'id') ✓ actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if shipping address type update fails × actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if order already exists (idempotency) → expected "spy" to be called with arguments: [ StringContaining{…}, …(1) ] Received: 1st spy call: Array [ - StringContaining "SELECT id FROM orders WHERE origin_reference = $1 FOR UPDATE", - Array [ - "cs_test_123", - ], + "BEGIN", ] 2nd spy call: Array [ - StringContaining "SELECT id FROM orders WHERE origin_reference = $1 FOR UPDATE", + "SELECT id FROM orders WHERE origin_reference = $1", Array [ "cs_test_123", ], ] 3rd spy call: Array [ - StringContaining "SELECT id FROM orders WHERE origin_reference = $1 FOR UPDATE", - Array [ - "cs_test_123", - ], + "ROLLBACK", ] Number of calls: 3 × actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if line_items.data is missing just before creating order items → expected [Function] to throw error including 'Line items are required to create ord…' but got 'Cannot read properties of undefined (…' × actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if billing_address_id is missing → expected [Function] to throw error including 'Billing address ID is required to cre…' but got 'Missing required data to create an or…' × actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if customer_id is missing after lookup → expected [Function] to throw error including 'Customer ID is required to create an …' but got 'Missing required data to create an or…' ✓ actions/fulfill-checkout.test.ts > fulfillCheckout > should throw unexpected error in billing address validation ✓ actions/fulfill-checkout.test.ts > fulfillCheckout > should throw ZodError for shipping address × actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if shipping_address_id is missing when shipping details are provided → expected [Function] to throw error including 'Shipping address ID is required to cr…' but got 'Missing required data to create an or…' stdout | actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if session is not paid Checkout Session is unpaid cs_test_123 stdout | actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if customer email is missing Missing customer details in session cs_test_123 { customerEmail: undefined, customerName: 'Test User' } stdout | actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if customer_details is missing entirely Missing customer details in session cs_test_123 { customerEmail: undefined, customerName: undefined } stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should fulfill checkout for existing user and existing address Error creating order and items, rolled back: TypeError: Cannot read properties of undefined (reading 'id') at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:263:25 at Array.map () at Module.fulfillCheckout (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:254:64) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/fulfill-checkout.test.ts:216:20 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should create new customer and update user if user has no customer_id Error creating order and items, rolled back: TypeError: Cannot read properties of undefined (reading 'id') at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:263:25 at Array.map () at Module.fulfillCheckout (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:254:64) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/fulfill-checkout.test.ts:252:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should handle missing customer phone during customer creation Error creating order and items, rolled back: TypeError: Cannot read properties of undefined (reading 'id') at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:263:25 at Array.map () at Module.fulfillCheckout (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:254:64) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/fulfill-checkout.test.ts:279:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should create new address if it does not exist Error creating order and items, rolled back: TypeError: Cannot read properties of undefined (reading 'id') at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:263:25 at Array.map () at Module.fulfillCheckout (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:254:64) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/fulfill-checkout.test.ts:295:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should update address type if it exists but type is different Error creating order and items, rolled back: TypeError: Cannot read properties of undefined (reading 'id') at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:263:25 at Array.map () at Module.fulfillCheckout (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:254:64) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/fulfill-checkout.test.ts:314:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should handle separate shipping details Error creating order and items, rolled back: TypeError: Cannot read properties of undefined (reading 'id') at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:263:25 at Array.map () at Module.fulfillCheckout (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:254:64) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/fulfill-checkout.test.ts:348:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if shipping address type update fails (initial check) Error updating shipping address type Update failed stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should update shipping address type if it exists but type is different Error creating order and items, rolled back: TypeError: Cannot read properties of undefined (reading 'id') at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:263:25 at Array.map () at Module.fulfillCheckout (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:254:64) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/fulfill-checkout.test.ts:416:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stdout | actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if payment_status is no_payment_required (documenting current behavior) Checkout Session is unpaid cs_test_123 stdout | actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if payment_status is async_payment_failed Checkout Session is unpaid cs_test_123 stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if billing address validation fails Validation error: [ { code: 'invalid_type', expected: 'string', received: 'null', path: [ 'street' ], message: 'Expected string, received null' } ] stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if billing street is missing Validation error: [ { code: 'invalid_type', expected: 'string', received: 'null', path: [ 'street' ], message: 'Expected string, received null' } ] stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should handle errors in getUserByEmail Error fetching user by email Database error stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should handle errors in createOrder and rollback Error creating order and items, rolled back: TypeError: Cannot read properties of undefined (reading 'id') at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:263:25 at Array.map () at Module.fulfillCheckout (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:254:64) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/fulfill-checkout.test.ts:498:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should rollback if createOrderItems fails Error creating order and items, rolled back: TypeError: Cannot read properties of undefined (reading 'id') at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:263:25 at Array.map () at Module.fulfillCheckout (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:254:64) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/fulfill-checkout.test.ts:513:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stdout | actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object for expired checkout sessions Checkout Session is unpaid cs_test_123 stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if product description is missing (used as product_id) Error creating order and items, rolled back: Error: Invalid line item data for session: cs_test_123 at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:257:15 at Array.map () at Module.fulfillCheckout (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:254:64) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/fulfill-checkout.test.ts:559:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if createCustomer fails Error creating customer stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if updateUserCustomerId fails Error updating customer ID for user Update failed stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if createOrder returns null Error creating order and items, rolled back: TypeError: Cannot read properties of undefined (reading 'id') at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:263:25 at Array.map () at Module.fulfillCheckout (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:254:64) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/fulfill-checkout.test.ts:597:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if createOrderItems returns incorrect number of items Error creating order and items, rolled back: TypeError: Cannot read properties of undefined (reading 'id') at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:263:25 at Array.map () at Module.fulfillCheckout (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:254:64) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/fulfill-checkout.test.ts:610:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if line item quantity is missing Error creating order and items, rolled back: Error: Invalid line item data for session: cs_test_123 at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:257:15 at Array.map () at Module.fulfillCheckout (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:254:64) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/fulfill-checkout.test.ts:628:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if line item amount_total is missing Error creating order and items, rolled back: Error: Invalid line item data for session: cs_test_123 at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:257:15 at Array.map () at Module.fulfillCheckout (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:254:64) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/fulfill-checkout.test.ts:645:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if line item price unit_amount is missing Error creating order and items, rolled back: Error: Invalid line item data for session: cs_test_123 at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:257:15 at Array.map () at Module.fulfillCheckout (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:254:64) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/fulfill-checkout.test.ts:662:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should handle empty house_number and state by converting to null Error creating order and items, rolled back: TypeError: Cannot read properties of undefined (reading 'id') at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:263:25 at Array.map () at Module.fulfillCheckout (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:254:64) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/fulfill-checkout.test.ts:687:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if billing address creation fails Error creating customer address: Creation failed stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if billing address type update fails Error updating customer address type: Update failed stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if shipping address creation fails Error creating shipping address: Creation failed stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if shipping address type update fails Error updating shipping address type Update failed stdout | actions/fulfill-checkout.test.ts > fulfillCheckout > should return empty object if order already exists (idempotency) Order already exists for session cs_test_123 stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should throw Error if line_items.data is missing just before creating order items Error creating order and items, rolled back: TypeError: Cannot read properties of undefined (reading 'id') at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:263:25 at Array.map () at Module.fulfillCheckout (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:254:64) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/fulfill-checkout.test.ts:893:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | actions/fulfill-checkout.test.ts > fulfillCheckout > should throw ZodError for shipping address Validation error for shipping address: [ { code: 'invalid_type', expected: 'string', received: 'null', path: [ 'street' ], message: 'Expected string, received null' }, { code: 'invalid_type', expected: 'string', received: 'undefined', path: [ 'house_number' ], message: 'Required' }, { code: 'invalid_type', expected: 'string', received: 'undefined', path: [ 'zip_code' ], message: 'Required' }, { code: 'invalid_type', expected: 'string', received: 'undefined', path: [ 'city' ], message: 'Required' }, { code: 'invalid_type', expected: 'string', received: 'undefined', path: [ 'country' ], message: 'Required' }, { code: 'invalid_type', expected: 'string', received: 'undefined', path: [ 'state' ], message: 'Required' } ] ✓ schemas/api.test.ts > API Schemas > LoginSchema > should validate valid login data ✓ schemas/api.test.ts > API Schemas > LoginSchema > should reject invalid email ✓ schemas/api.test.ts > API Schemas > LoginSchema > should reject empty email ✓ schemas/api.test.ts > API Schemas > LoginSchema > should reject invalid password ✓ schemas/api.test.ts > API Schemas > LoginSchema > should reject missing email ✓ schemas/api.test.ts > API Schemas > LoginSchema > should reject missing password ✓ schemas/api.test.ts > API Schemas > LoginSchema > should handle XSS attempts in email ✓ schemas/api.test.ts > API Schemas > LoginSchema > should handle SQL injection attempts in email ✓ schemas/api.test.ts > API Schemas > RegisterSchema > should validate valid registration data ✓ schemas/api.test.ts > API Schemas > RegisterSchema > should reject mismatched passwords ✓ schemas/api.test.ts > API Schemas > RegisterSchema > should reject invalid email ✓ schemas/api.test.ts > API Schemas > RegisterSchema > should reject short password ✓ schemas/api.test.ts > API Schemas > RegisterSchema > should reject empty firstName ✓ schemas/api.test.ts > API Schemas > RegisterSchema > should reject missing fields ✓ schemas/api.test.ts > API Schemas > RegisterSchema > should handle special characters in name ✓ schemas/api.test.ts > API Schemas > RegisterSchema > should handle XSS attempts in name ✓ schemas/api.test.ts > API Schemas > CheckoutSchema > should validate valid checkout data ✓ schemas/api.test.ts > API Schemas > CheckoutSchema > should reject invalid email ✓ schemas/api.test.ts > API Schemas > CheckoutSchema > should reject invalid phone number ✓ schemas/api.test.ts > API Schemas > CheckoutSchema > should reject invalid payment method ✓ schemas/api.test.ts > API Schemas > CheckoutSchema > should reject missing required fields ✓ schemas/api.test.ts > API Schemas > CheckoutSchema > should handle special characters in address fields ✓ schemas/api.test.ts > API Schemas > CheckoutSchema > should handle XSS attempts in address fields ✓ schemas/api.test.ts > API Schemas > CustomerSchema > should validate valid customer data ✓ schemas/api.test.ts > API Schemas > CustomerSchema > should reject invalid email ✓ schemas/api.test.ts > API Schemas > CustomerSchema > should reject missing required fields ✓ schemas/api.test.ts > API Schemas > CustomerSchema > should handle optional phone number ✓ schemas/api.test.ts > API Schemas > CustomerSchema > should handle special characters in name ✓ schemas/api.test.ts > API Schemas > CustomerSchema > should handle XSS attempts in name ✓ schemas/api.test.ts > API Schemas > OrderSchema > should validate valid order data ✓ schemas/api.test.ts > API Schemas > OrderSchema > should reject invalid status ✓ schemas/api.test.ts > API Schemas > OrderSchema > should reject negative total ✓ schemas/api.test.ts > API Schemas > OrderSchema > should reject missing required fields ✓ schemas/api.test.ts > API Schemas > UserSchema > should reject invalid role with custom message ✓ schemas/api.test.ts > API Schemas > ProductSchema > should validate valid product data ✓ schemas/api.test.ts > API Schemas > ProductSchema > should reject negative price ✓ schemas/api.test.ts > API Schemas > ProductSchema > should reject negative stock ✓ schemas/api.test.ts > API Schemas > ProductSchema > should reject missing required fields ✓ schemas/api.test.ts > API Schemas > ProductSchema > should handle special characters in name ✓ schemas/api.test.ts > API Schemas > ProductSchema > should handle XSS attempts in name ✓ schemas/api.test.ts > API Schemas > CartItemSchema > should validate valid cart item data ✓ schemas/api.test.ts > API Schemas > CartItemSchema > should reject empty ID ✓ schemas/api.test.ts > API Schemas > CartItemSchema > should reject negative price ✓ schemas/api.test.ts > API Schemas > CartItemSchema > should reject negative quantity ✓ schemas/api.test.ts > API Schemas > CartItemSchema > should reject zero quantity ✓ schemas/api.test.ts > API Schemas > CartItemSchema > should reject missing required fields ✓ schemas/api.test.ts > API Schemas > CartItemSchema > should handle special characters in name ✓ schemas/api.test.ts > API Schemas > CartItemSchema > should handle XSS attempts in name ✓ schemas/api.test.ts > API Schemas > Schema Error Messages > should provide meaningful error messages ✓ schemas/api.test.ts > API Schemas > Schema Error Messages > should handle multiple validation errors ✓ schemas/api.test.ts > API Schemas > UserDTOSchema > should use camelCase fields if present ✓ schemas/api.test.ts > API Schemas > UserDTOSchema > should fallback to snake_case fields if camelCase is missing ✓ schemas/api.test.ts > API Schemas > UserDTOSchema > should fallback to last_updated_at for updatedAt ✓ schemas/api.test.ts > API Schemas > UserDTOSchema > should fallback to updated_at for updatedAt if last_updated_at is missing ✓ schemas/api.test.ts > API Schemas > UserDTOSchema > should strip snake_case fields from output ✓ schemas/api.test.ts > API Schemas > UserDTOSchema > should handle null names ✓ schemas/api.test.ts > API Schemas > UserDTOSchema > should handle mixed casing ✓ schemas/api.test.ts > API Schemas > UserDTOSchema > should return original value if not an object (preprocess check) ✓ schemas/api.test.ts > API Schemas > UserDTOSchema > should prioritize camelCase over snake_case if both are present ✓ schemas/api.test.ts > API Schemas > UserDTOSchema > should fail if name fields are missing entirely ✓ schemas/api.test.ts > API Schemas > Update Schemas Refinements > UpdateCustomerSchema should fail if no fields are provided ✓ schemas/api.test.ts > API Schemas > Update Schemas Refinements > UpdateCustomerSchema should pass if at least one field is provided ✓ schemas/api.test.ts > API Schemas > Update Schemas Refinements > UpdateProductSchema should fail if no fields are provided ✓ schemas/api.test.ts > API Schemas > Update Schemas Refinements > UpdateProductSchema should pass if at least one field is provided ✓ schemas/api.test.ts > API Schemas > Update Schemas Refinements > UpdateOrderSchema should fail if no fields are provided ✓ schemas/api.test.ts > API Schemas > Update Schemas Refinements > UpdateOrderSchema should pass if at least one field is provided ✓ schemas/api.test.ts > API Schemas > Update Schemas Refinements > UpdateOrderItemSchema should fail if no fields are provided ✓ schemas/api.test.ts > API Schemas > Update Schemas Refinements > UpdateOrderItemSchema should pass if at least one field is provided ✓ schemas/api.test.ts > API Schemas > Update Schemas Refinements > UpdateCategorySchema should fail if no fields are provided ✓ schemas/api.test.ts > API Schemas > Update Schemas Refinements > UpdateCategorySchema should pass if at least one field is provided ✓ schemas/api.test.ts > API Schemas > Update Schemas Refinements > UpdateUserSchema should fail if no fields are provided ✓ schemas/api.test.ts > API Schemas > Update Schemas Refinements > UpdateUserSchema should pass if at least one field is provided ✓ schemas/api.test.ts > API Schemas > PaginationQuerySchema > should transform string page and limit to numbers ✓ schemas/api.test.ts > API Schemas > PaginationQuerySchema > should fail for invalid page numbers ✓ schemas/api.test.ts > API Schemas > PaginationQuerySchema > should fail for invalid limit numbers ✓ schemas/api.test.ts > API Schemas > PaginationQuerySchema > should handle optional search, sort and order ✓ schemas/api.test.ts > API Schemas > DTO Schemas (Coerce and Nullable) > SupplierDTOSchema > should coerce id and handle nullables ✓ schemas/api.test.ts > API Schemas > DTO Schemas (Coerce and Nullable) > SupplierDTOSchema > should handle valid dates ✓ schemas/api.test.ts > API Schemas > DTO Schemas (Coerce and Nullable) > SupplierDTOSchema > should fallback to last_updated_at and updated_at ✓ schemas/api.test.ts > API Schemas > DTO Schemas (Coerce and Nullable) > SupplierDTOSchema > should map all snake_case fields correctly ✓ schemas/api.test.ts > API Schemas > DTO Schemas (Coerce and Nullable) > BrandDTOSchema > should validate valid brand DTO ✓ schemas/api.test.ts > API Schemas > DTO Schemas (Coerce and Nullable) > BrandDTOSchema > should fail for invalid UUID in imageId ✓ schemas/api.test.ts > API Schemas > DTO Schemas (Coerce and Nullable) > BrandDTOSchema > should return original value if not an object in preprocessor ✓ schemas/api.test.ts > API Schemas > DTO Schemas (Coerce and Nullable) > TaxClassDTOSchema > should coerce percentage ✓ schemas/api.test.ts > API Schemas > DTO Schemas (Coerce and Nullable) > AttributeDTOSchema > should validate enum types ✓ schemas/api.test.ts > API Schemas > ShipmentTrackingDTOSchema > should validate valid shipment tracking DTO ✓ schemas/api.test.ts > API Schemas > ShipmentTrackingDTOSchema > should fallback to last_updated_at and updated_at ✓ schemas/api.test.ts > API Schemas > ShipmentTrackingDTOSchema > should map all snake_case fields correctly ✓ schemas/api.test.ts > API Schemas > Schema Type Safety > should maintain type safety ✓ schemas/api.test.ts > API Schemas > DTO Fallbacks and preprocessors > BrandDTOSchema should fallback to created_at and last_updated_at via withAuditFields ✓ schemas/api.test.ts > API Schemas > DTO Fallbacks and preprocessors > BrandDTOSchema should fallback to updated_at if last_updated_at is missing ✓ schemas/api.test.ts > API Schemas > DTO Fallbacks and preprocessors > AttributeDTOSchema should fallback to created_at and last_updated_at ✓ schemas/api.test.ts > API Schemas > DTO Fallbacks and preprocessors > AttributeDTOSchema should fallback to updated_at ✓ schemas/api.test.ts > API Schemas > DTO Fallbacks and preprocessors > ManufacturerDTOSchema should handle all fallbacks ✓ schemas/api.test.ts > API Schemas > DTO Fallbacks and preprocessors > ManufacturerDTOSchema should fallback to updated_at ✓ schemas/api.test.ts > API Schemas > DTO Fallbacks and preprocessors > SupplierDTOSchema should handle all fallbacks ✓ schemas/api.test.ts > API Schemas > DTO Fallbacks and preprocessors > DTO schemas should return original value if not an object in preprocessor ✓ schemas/api.test.ts > API Schemas > EuResponsiblePersonDTOSchema > should map snake_case fields correctly ✓ schemas/api.test.ts > API Schemas > Create and Update Schemas > CreateEuResponsiblePersonSchema should validate valid data ✓ schemas/api.test.ts > API Schemas > Create and Update Schemas > UpdateEuResponsiblePersonSchema should allow partial updates ✓ schemas/api.test.ts > API Schemas > Create and Update Schemas > CreateManufacturerSchema should validate valid data ✓ schemas/api.test.ts > API Schemas > Create and Update Schemas > UpdateManufacturerSchema should allow partial updates ✓ schemas/api.test.ts > API Schemas > Create and Update Schemas > CreateSupplierSchema should validate valid data ✓ schemas/api.test.ts > API Schemas > Create and Update Schemas > UpdateSupplierSchema should allow partial updates ✓ schemas/api.test.ts > API Schemas > Create and Update Schemas > CreateBrandSchema should validate valid data ✓ schemas/api.test.ts > API Schemas > Create and Update Schemas > UpdateBrandSchema should allow partial updates ✓ schemas/api.test.ts > API Schemas > Create and Update Schemas > CreateAttributeSchema should validate valid data ✓ schemas/api.test.ts > API Schemas > Create and Update Schemas > UpdateAttributeSchema should allow partial updates ✓ schemas/api.test.ts > API Schemas > Create and Update Schemas > CreateShipmentSchema should validate valid data ✓ schemas/api.test.ts > API Schemas > Create and Update Schemas > UpdateShipmentSchema should allow partial updates ✓ schemas/api.test.ts > API Schemas > Create and Update Schemas > UpdateTaxClassSchema should allow partial updates ✓ hooks/useCartStore.test.ts > useCartStore > Basic Operations > should add an item to the cart ✓ hooks/useCartStore.test.ts > useCartStore > Basic Operations > should increase quantity if item already in cart ✓ hooks/useCartStore.test.ts > useCartStore > Basic Operations > should remove an item ✓ hooks/useCartStore.test.ts > useCartStore > Basic Operations > should calculate total items and price ✓ hooks/useCartStore.test.ts > useCartStore > Edge Cases - Quantity Validation > should reject item with zero quantity ✓ hooks/useCartStore.test.ts > useCartStore > Edge Cases - Quantity Validation > should reject item with negative quantity ✓ hooks/useCartStore.test.ts > useCartStore > Edge Cases - Quantity Validation > should remove item when quantity set to 0 ✓ hooks/useCartStore.test.ts > useCartStore > Edge Cases - Quantity Validation > should remove item when quantity set to negative ✓ hooks/useCartStore.test.ts > useCartStore > Edge Cases - Quantity Validation > should handle very large quantities ✓ hooks/useCartStore.test.ts > useCartStore > Edge Cases - Quantity Validation > should handle empty cart calculations ✓ hooks/useCartStore.test.ts > useCartStore > Edge Cases - Quantity Validation > should handle multiple items with different quantities ✓ hooks/useCartStore.test.ts > useCartStore > Edge Cases - Quantity Validation > should handle decimal prices correctly ✓ hooks/useCartStore.test.ts > useCartStore > Edge Cases - Quantity Validation > should handle duplicate addToCart with different quantities and preserve other items ✓ hooks/useCartStore.test.ts > useCartStore > Edge Cases - Quantity Validation > should handle removing non-existent item gracefully ✓ hooks/useCartStore.test.ts > useCartStore > Edge Cases - Quantity Validation > should handle updating quantity of item and non-existent item correctly ✓ hooks/useCartStore.test.ts > useCartStore > Edge Cases - Quantity Validation > should reject addToCart with null item ✓ hooks/useCartStore.test.ts > useCartStore > Edge Cases - Quantity Validation > should reject updateQuantity with 0 and return ✓ hooks/useCartStore.test.ts > useCartStore > Asynchronous Operations > loadCart should fetch items and update state ✓ hooks/useCartStore.test.ts > useCartStore > Asynchronous Operations > loadCart should handle error ✓ hooks/useCartStore.test.ts > useCartStore > Asynchronous Operations > loadCart should handle exceptions ✓ hooks/useCartStore.test.ts > useCartStore > Asynchronous Operations > addToCartAsync should add item and show success toast ✓ hooks/useCartStore.test.ts > useCartStore > Asynchronous Operations > addToCartAsync should increase quantity if item already in cart and preserve others ✓ hooks/useCartStore.test.ts > useCartStore > Asynchronous Operations > addToCartAsync should reject invalid quantity ✓ hooks/useCartStore.test.ts > useCartStore > Asynchronous Operations > addToCartAsync should handle error ✓ hooks/useCartStore.test.ts > useCartStore > Asynchronous Operations > addToCartAsync should handle exceptions ✓ hooks/useCartStore.test.ts > useCartStore > Asynchronous Operations > updateQuantityAsync should update item and show success toast ✓ hooks/useCartStore.test.ts > useCartStore > Asynchronous Operations > updateQuantityAsync should remove item if quantity is 0 ✓ hooks/useCartStore.test.ts > useCartStore > Asynchronous Operations > updateQuantityAsync should handle error ✓ hooks/useCartStore.test.ts > useCartStore > Asynchronous Operations > updateQuantityAsync should handle exceptions ✓ hooks/useCartStore.test.ts > useCartStore > Asynchronous Operations > removeFromCartAsync should remove item and show success toast ✓ hooks/useCartStore.test.ts > useCartStore > Asynchronous Operations > removeFromCartAsync should handle error ✓ hooks/useCartStore.test.ts > useCartStore > Asynchronous Operations > removeFromCartAsync should handle exceptions ✓ hooks/useCartStore.test.ts > useCartStore > Asynchronous Operations > showError should show error toast ✓ hooks/useCartStore.test.ts > useCartStore > Asynchronous Operations > syncWithUser should be defined and callable ✓ hooks/useCartStore.test.ts > useCartStore > Cart State > should start with empty cart ✓ hooks/useCartStore.test.ts > useCartStore > Cart State > loadCart should handle null data ✓ hooks/useCartStore.test.ts > useCartStore > Cart State > should toggle cart open/close ✓ hooks/useCartStore.test.ts > useCartStore > Cart State > should open cart explicitly ✓ hooks/useCartStore.test.ts > useCartStore > Cart State > should close cart explicitly ✓ hooks/useCartStore.test.ts > useCartStore > Cart State > should clear all items ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > isJsonRequest > should return true for application/json content type ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > isJsonRequest > should return true for content type containing application/json ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > isJsonRequest > should return false for other content types ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > isJsonRequest > should return false when content-type header is missing ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > isJsonRequest > should handle case-insensitive content-type header (standard Map/Header behavior) ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > successResponse > should return a standardized success structure with default 200 status ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > successResponse > should handle custom status codes ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > successResponse > should validate response structure with complex data ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > successResponse > should handle empty data responses ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > successResponse > should handle array data responses ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > successResponse > should reject invalid response structures ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > errorResponse > should return a standardized error structure ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > errorResponse > should include optional details if provided ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > errorResponse > should handle complex error details ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > errorResponse > should include falsy details like 0 or empty string ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > errorResponse > should handle different HTTP error codes ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > errorResponse > should reject invalid error response structures ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Edge Cases and Error Handling > should handle undefined data gracefully ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Edge Cases and Error Handling > should handle circular references in data ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Edge Cases and Error Handling > should handle very large data responses ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Edge Cases and Error Handling > should handle special characters in messages ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Edge Cases and Error Handling > should handle Unicode characters in data ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Response Headers and Content Type > should ensure JSON content type is set by NextResponse ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Status Code Validation > should validate success status codes are in valid range ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Status Code Validation > should validate error status codes are in valid ranges ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Data Integrity Tests > should preserve data types and structure ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Data Integrity Tests > should maintain data immutability ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Mock Verification > should call NextResponse.json with correct parameters ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Mock Verification > should call NextResponse.json for errors with correct parameters ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Authentication and Authorization Response Tests > should handle authentication error responses ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Authentication and Authorization Response Tests > should handle authorization error responses ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Authentication and Authorization Response Tests > should handle session expired responses ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Rate Limiting Response Tests > should handle rate limit exceeded responses ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Rate Limiting Response Tests > should handle rate limit warning responses ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Content Type and Header Validation > should handle unsupported media type errors ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Content Type and Header Validation > should handle content too large errors ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Validation Error Response Tests > should handle detailed validation errors ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Validation Error Response Tests > should handle schema validation errors with Zod ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Database and Service Error Responses > should handle database connection errors ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Database and Service Error Responses > should handle resource not found with detailed info ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Database and Service Error Responses > should handle conflict errors ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Edge Cases and Stress Tests > should handle extremely long messages ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Edge Cases and Stress Tests > should handle deeply nested data structures ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Edge Cases and Stress Tests > should handle special JSON values ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Edge Cases and Stress Tests > should handle buffer and binary data ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Response Format Consistency > should maintain consistent response format across different operations ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Response Format Consistency > should validate response schema compliance ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Performance and Memory Tests > should handle large array responses efficiently ✓ tests/unit/lib/api-response.test.ts > API Response Helpers > Performance and Memory Tests > should not leak memory with repeated response creation stderr | actions/catalog.test.ts > Catalog Actions (Migrated) > createCategory > should return 500 on unexpected repository error { error: Error: DB Crash at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/catalog.test.ts:292:49 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) } Server Action unexpected error ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > getProducts > should return paginated products on success ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > getProductById > should return product by id ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > getProductById > should throw NotFoundError if product missing ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > getProductAttributes > should return attributes for a product ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > createProduct > should create a new product ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > updateProduct > should update an existing product ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > updateProduct > should throw 404 if product not found during update ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > deleteProduct > should delete a product ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > getAllCategories > should return all categories ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > getCategories > should return paginated categories on success ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > createCategory > should successfully create a category ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > createCategory > should return 500 on unexpected repository error ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > updateCategory > should successfully update a category with parent_id null ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > updateCategory > should successfully update a category without parent change ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > updateCategory > should successfully update a category ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > updateCategory > should handle unchanged values ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > updateCategory > should throw ValidationError for self-parenting ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > updateCategory > should throw NotFoundError if category missing ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > updateCategory > should throw NotFoundError if parent category missing ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > updateCategory > should throw ValidationError if cycle detected ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > deleteCategory > should successfully delete a category ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Attributes > should get paginated attributes ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Attributes > should get attribute by id ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Attributes > should throw 404 if attribute missing ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Attributes > should create an attribute ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Attributes > should update an attribute ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Attributes > should delete an attribute ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Options and Linking > should get attribute value options ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Options and Linking > should get category options ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Options and Linking > should get brand options ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Options and Linking > should get manufacturer options ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Options and Linking > should get supplier options ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Options and Linking > should get tax class options ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Options and Linking > should get EU person options ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Options and Linking > should get attribute options ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Options and Linking > should link attribute ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Options and Linking > should unlink attribute ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Brands > should get paginated brands ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Brands > should create a brand ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Brands > should update a brand ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Brands > should throw 404 if brand missing ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Brands > should delete a brand ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Tax Classes > should get tax classes ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Tax Classes > should create a tax class ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Tax Classes > should update tax class ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Tax Classes > should delete tax class ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Manufacturers > should create a manufacturer ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Manufacturers > should update a manufacturer ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Manufacturers > should delete a manufacturer ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Suppliers > should create a supplier ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Suppliers > should update a supplier ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > Suppliers > should delete a supplier ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > EU Responsible Persons > should create an EU person ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > EU Responsible Persons > should update an EU person ✓ actions/catalog.test.ts > Catalog Actions (Migrated) > EU Responsible Persons > should delete an EU person ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Initial State > should initialize with empty cart ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Initial State > should initialize with loading state false ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Cart Operations > should add item to cart ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Cart Operations > should update item quantity ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Cart Operations > should remove item from cart ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Cart Operations > should clear cart ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Cart Operations > should toggle cart visibility ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Cart Operations > should open cart ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Cart Operations > should close cart ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Cart Calculations > should calculate total correctly ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Cart Calculations > should calculate count correctly ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Cart Calculations > should handle empty cart calculations ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Persistence > should persist cart state ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Persistence > should clear persistence on clearCart ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Error Handling > should handle invalid item addition ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Error Handling > should handle invalid quantity update ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Error Handling > should handle removal of non-existent item ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Loading States > should set loading state during async operations ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Loading States > should handle loading state during add operation ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Toast Notifications > should show success toast on add ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Toast Notifications > should show success toast on update ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Toast Notifications > should show success toast on remove ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Toast Notifications > should show error toast on operation failure ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Async Operations > should load cart from server and update state ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Async Operations > should handle load cart error gracefully ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Async Operations > should add item to server and sync local state ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Async Operations > should handle add to cart server error ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Async Operations > should update quantity on server and sync local state ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Async Operations > should remove item from server and sync local state ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Edge Cases > should handle duplicate items correctly ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Edge Cases > should handle zero quantity ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Edge Cases > should handle negative quantity ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Edge Cases > should reject adding item with zero quantity ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Edge Cases > should reject adding item with negative quantity ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Edge Cases > should handle multiple items with different quantities ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Edge Cases > should handle very large quantities ✓ tests/components/cart/cart-provider.test.tsx > CartProvider Component > Edge Cases > should handle decimal prices correctly stderr | actions/shipment-consistency.test.ts > Shipment Consistency Invariants > updateShipment Partial Update Invariant > should NOT overwrite fields with NULL when they are missing from update data { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/shipment-consistency.test.ts:69:7 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | actions/shipment-consistency.test.ts > Shipment Consistency Invariants > Shipment-Order Status Sync Invariant > should update Order status to delivered when Shipment is Delivered { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/shipment-consistency.test.ts:123:7 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | actions/shipment-consistency.test.ts > Shipment Consistency Invariants > Shipment-Order Status Sync Invariant > should set order status to shipped (partially-fulfilled) if only some shipments are delivered { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/shipment-consistency.test.ts:166:7 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | actions/shipment-consistency.test.ts > Shipment Consistency Invariants > Shipment-Order Status Sync Invariant > should update Order status to delivered and fulfilled when ALL shipments are Delivered { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/shipment-consistency.test.ts:214:7 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | actions/shipment-consistency.test.ts > Shipment Consistency Invariants > Shipment-Order Status Sync Invariant > should set order status to shipped (partially-fulfilled) if some are shipped but none are delivered { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/shipment-consistency.test.ts:255:7 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | actions/shipment-consistency.test.ts > Shipment Consistency Invariants > Shipment-Order Status Sync Invariant > should reset order to processing when all shipments are deleted { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/shipment-consistency.test.ts:283:7 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | actions/shipment-consistency.test.ts > Shipment Consistency Invariants > Shipment-Order Status Sync Invariant > should sync order status when shipment type is changed AWAY from Original { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/shipment-consistency.test.ts:324:7 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | actions/shipment-consistency.test.ts > Shipment Consistency Invariants > Shipment-Order Status Sync Invariant > should sync BOTH old and new orders when order_id is changed on an Original shipment { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/shipment-consistency.test.ts:366:7 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error × actions/shipment-consistency.test.ts > Shipment Consistency Invariants > updateShipment Partial Update Invariant > should NOT overwrite fields with NULL when they are missing from update data → expected undefined to be defined × actions/shipment-consistency.test.ts > Shipment Consistency Invariants > Shipment-Order Status Sync Invariant > should update Order status to delivered when Shipment is Delivered → expected undefined to be defined × actions/shipment-consistency.test.ts > Shipment Consistency Invariants > Shipment-Order Status Sync Invariant > should set order status to shipped (partially-fulfilled) if only some shipments are delivered → expected undefined to be defined × actions/shipment-consistency.test.ts > Shipment Consistency Invariants > Shipment-Order Status Sync Invariant > should update Order status to delivered and fulfilled when ALL shipments are Delivered → expected undefined to be defined × actions/shipment-consistency.test.ts > Shipment Consistency Invariants > Shipment-Order Status Sync Invariant > should set order status to shipped (partially-fulfilled) if some are shipped but none are delivered → expected undefined to be defined × actions/shipment-consistency.test.ts > Shipment Consistency Invariants > Shipment-Order Status Sync Invariant > should reset order to processing when all shipments are deleted → expected undefined to be defined × actions/shipment-consistency.test.ts > Shipment Consistency Invariants > Shipment-Order Status Sync Invariant > should sync order status when shipment type is changed AWAY from Original → expected undefined to be defined × actions/shipment-consistency.test.ts > Shipment Consistency Invariants > Shipment-Order Status Sync Invariant > should sync BOTH old and new orders when order_id is changed on an Original shipment → expected [] to include '123e4567-e89b-12d3-a456-426614174001' stderr | lib/internal/orders.test.ts > lib/internal/orders > createOrder > should throw Error on validation failure (ZodError) Validation error: [ { code: 'too_small', minimum: 0, type: 'number', inclusive: false, exact: false, message: 'Number must be greater than 0', path: [ 'amount_total' ] } ] stderr | lib/internal/orders.test.ts > lib/internal/orders > createOrder > should throw Error if database query returns no rows Error creating order: Error: Failed to create order at Module.createOrder (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/orders.ts:96:13) stderr | lib/internal/orders.test.ts > lib/internal/orders > createOrderItems > should throw Error on validation failure (ZodError) Validation error: [ { code: 'too_small', minimum: 0, type: 'number', inclusive: false, exact: false, message: 'Number must be greater than 0', path: [ 0, 'order_item_quantity' ] } ] stderr | lib/internal/orders.test.ts > lib/internal/orders > createOrderItem > should throw Error on validation failure (ZodError) Validation error: [ { code: 'too_small', minimum: 0, type: 'number', inclusive: false, exact: false, message: 'Number must be greater than 0', path: [ 'order_item_quantity' ] } ] stderr | lib/internal/orders.test.ts > lib/internal/orders > createOrderItem > should throw Error if database query returns no rows Error creating order item: Error: Failed to create order item at Module.createOrderItem (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/orders.ts:178:13) stderr | tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > Empty Update Pattern > updateProduct SHOULD return existing record and NOT execute UPDATE if no fields provided { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/catalog-invariants.test.ts:80:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > Empty Update Pattern > updateTaxClass SHOULD return existing record and NOT execute UPDATE if no fields provided { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/catalog-invariants.test.ts:105:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > Empty Update Pattern > updateBrand SHOULD return existing record and NOT execute UPDATE if no fields provided { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/catalog-invariants.test.ts:128:24 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > linkAttributeToProduct Invariants > SHOULD return error if attribute value does not belong to the specified attribute { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/catalog-invariants.test.ts:163:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > linkAttributeToProduct Invariants > SHOULD return error if is_variant is true but product_group_id is null { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/catalog-invariants.test.ts:178:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > linkAttributeToProduct Invariants > SHOULD return error if product not found { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/catalog-invariants.test.ts:195:24 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > linkAttributeToProduct Invariants > SHOULD allow linking if is_variant is true and product_group_id is NOT null { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/catalog-invariants.test.ts:222:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > linkAttributeToProduct Invariants > SHOULD allow linking if is_variant is false even if product_group_id is null { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/catalog-invariants.test.ts:248:24 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > updateProduct Invariants > SHOULD return error if removing product_group_id while variant attributes exist { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/catalog-invariants.test.ts:281:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > Deletion Invariants (Foreign Key / Business Logic) > deleteProduct SHOULD return error if referenced in order_items { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/catalog-invariants.test.ts:294:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > Deletion Invariants (Foreign Key / Business Logic) > deleteTaxClass SHOULD return error if associated with products { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/catalog-invariants.test.ts:304:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > Deletion Invariants (Foreign Key / Business Logic) > deleteCategory SHOULD return error if it has sub-categories { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/catalog-invariants.test.ts:314:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > Deletion Invariants (Foreign Key / Business Logic) > deleteCategory SHOULD return error if it has products { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/catalog-invariants.test.ts:326:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > Deletion Invariants (Foreign Key / Business Logic) > deleteBrand SHOULD return error if associated with products { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/catalog-invariants.test.ts:336:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > Deletion Invariants (Foreign Key / Business Logic) > deleteAttribute SHOULD return error if linked to products { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/catalog-invariants.test.ts:346:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > updateCategory Circular Dependency Invariants > SHOULD return error if category is set as its own parent { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/catalog-invariants.test.ts:370:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > updateCategory Circular Dependency Invariants > SHOULD return error if circular dependency detected (deep) { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/catalog-invariants.test.ts:385:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > updateCategory Circular Dependency Invariants > SHOULD allow update if no cycle detected { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/catalog-invariants.test.ts:403:24 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrder > should create an order successfully ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrder > should handle origin_reference being missing or null ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrder > should sync fulfilment_status to fulfilled when order_status is delivered ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrder > should set paid_at if payment_status is succeeded and paid_at is null ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrder > should set paid_at to null if payment_status is canceled ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrder > should throw Error on validation failure (ZodError) ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrder > should throw Error if order is shipped/delivered but not paid (Invariant) ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrder > should throw Error if database query returns no rows ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrder > should throw Error on database error ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrder > should use provided custom client ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrderItems > should create multiple order items successfully ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrderItems > should return empty array if items is empty ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrderItems > should throw Error on validation failure (ZodError) ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrderItems > should throw InvariantError if any item total is incorrect ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrderItems > should throw Error on database error ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrderItems > should use provided custom client ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrderItem > should create an order item successfully ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrderItem > should throw Error on validation failure (ZodError) ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrderItem > should throw InvariantError if total does not match price * quantity ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrderItem > should throw Error if database query returns no rows ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrderItem > should throw Error on database error ✓ lib/internal/orders.test.ts > lib/internal/orders > createOrderItem > should use provided custom client ✓ lib/internal/orders.test.ts > lib/internal/orders > syncOrderStatusWithShipments > should reset to processing when no shipments exist ✓ lib/internal/orders.test.ts > lib/internal/orders > syncOrderStatusWithShipments > should promote to delivered when all shipments are delivered ✓ lib/internal/orders.test.ts > lib/internal/orders > syncOrderStatusWithShipments > should promote to shipped/partially-fulfilled when some shipments are delivered ✓ lib/internal/orders.test.ts > lib/internal/orders > syncOrderStatusWithShipments > should promote to shipped/partially-fulfilled when some shipments are shipped ✓ lib/internal/orders.test.ts > lib/internal/orders > syncOrderStatusWithShipments > should reset to processing when shipments exist but none are shipped/delivered ✓ lib/internal/orders.test.ts > lib/internal/orders > syncOrderStatusWithShipments > should handle localized "versendet" status ✓ lib/internal/orders.test.ts > lib/internal/orders > syncOrderStatusWithShipments > should only update if payment_status is succeeded for promotion × tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > Empty Update Pattern > updateProduct SHOULD return existing record and NOT execute UPDATE if no fields provided → expected "spy" to be called with arguments: [ StringMatching{…}, [ 1 ] ] Received: Number of calls: 0 × tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > Empty Update Pattern > updateTaxClass SHOULD return existing record and NOT execute UPDATE if no fields provided → expected "spy" to be called 1 times, but got 0 times × tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > Empty Update Pattern > updateBrand SHOULD return existing record and NOT execute UPDATE if no fields provided → expected "spy" to be called 1 times, but got 0 times × tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > linkAttributeToProduct Invariants > SHOULD return error if attribute value does not belong to the specified attribute → expected { success: false, …(2) } to have property "error" with value 'Attribute value does not belong to th…' × tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > linkAttributeToProduct Invariants > SHOULD return error if is_variant is true but product_group_id is null → expected { success: false, …(2) } to have property "error" with value 'A product must be part of a product g…' × tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > linkAttributeToProduct Invariants > SHOULD return error if product not found → expected { success: false, …(2) } to have property "error" with value 'Product not found' × tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > linkAttributeToProduct Invariants > SHOULD allow linking if is_variant is true and product_group_id is NOT null → expected undefined to deeply equal { id: 1, product_id: 1, …(3) } × tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > linkAttributeToProduct Invariants > SHOULD allow linking if is_variant is false even if product_group_id is null → expected undefined to deeply equal { id: 1, product_id: 1, …(3) } × tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > updateProduct Invariants > SHOULD return error if removing product_group_id while variant attributes exist → expected { success: false, …(2) } to deeply equal { …(2) } × tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > Deletion Invariants (Foreign Key / Business Logic) > deleteProduct SHOULD return error if referenced in order_items → expected { success: false, …(2) } to deeply equal { …(2) } × tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > Deletion Invariants (Foreign Key / Business Logic) > deleteTaxClass SHOULD return error if associated with products → expected { success: false, …(2) } to deeply equal { …(2) } × tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > Deletion Invariants (Foreign Key / Business Logic) > deleteCategory SHOULD return error if it has sub-categories → expected { success: false, …(2) } to deeply equal { …(2) } × tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > Deletion Invariants (Foreign Key / Business Logic) > deleteCategory SHOULD return error if it has products → expected { success: false, …(2) } to deeply equal { …(2) } × tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > Deletion Invariants (Foreign Key / Business Logic) > deleteBrand SHOULD return error if associated with products → expected { success: false, …(2) } to deeply equal { …(2) } × tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > Deletion Invariants (Foreign Key / Business Logic) > deleteAttribute SHOULD return error if linked to products → expected { success: false, …(2) } to deeply equal { …(2) } × tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > updateCategory Circular Dependency Invariants > SHOULD return error if category is set as its own parent → expected { success: false, …(2) } to deeply equal { …(2) } × tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > updateCategory Circular Dependency Invariants > SHOULD return error if circular dependency detected (deep) → expected { success: false, …(2) } to deeply equal { …(2) } × tests/regression/catalog-invariants.test.ts > Catalog Invariants - Regression Tests > updateCategory Circular Dependency Invariants > SHOULD allow update if no cycle detected → expected { success: false, …(2) } to deeply equal { data: { id: 1, …(3) }, …(1) } ✓ tests/security/xss.test.ts > Security Tests - XSS > HTML Sanitization Functions > should sanitize script tags in user input ✓ tests/security/xss.test.ts > Security Tests - XSS > HTML Sanitization Functions > should sanitize event handler attributes ✓ tests/security/xss.test.ts > Security Tests - XSS > HTML Sanitization Functions > should sanitize JavaScript protocols ✓ tests/security/xss.test.ts > Security Tests - XSS > HTML Sanitization Functions > should handle data URI with embedded scripts ✓ tests/security/xss.test.ts > Security Tests - XSS > Input Validation and Encoding > should properly encode HTML entities in user input ✓ tests/security/xss.test.ts > Security Tests - XSS > Input Validation and Encoding > should prevent XSS through CSS injection ✓ tests/security/xss.test.ts > Security Tests - XSS > Input Validation and Encoding > should sanitize dangerous HTML tags ✓ tests/security/xss.test.ts > Security Tests - XSS > Real-world XSS Attack Vectors > should block DOM-based XSS attacks ✓ tests/security/xss.test.ts > Security Tests - XSS > Real-world XSS Attack Vectors > should handle encoded XSS attempts ✓ tests/security/xss.test.ts > Security Tests - XSS > Real-world XSS Attack Vectors > should prevent XSS through form manipulation ✓ tests/security/xss.test.ts > Security Tests - XSS > Content Security Policy Bypass Attempts > should prevent CSP bypass techniques ✓ tests/security/xss.test.ts > Security Tests - XSS > Search Input Sanitization > should sanitize search queries properly ✓ tests/security/xss.test.ts > Security Tests - XSS > Search Input Sanitization > should handle special character escaping in search ✓ tests/security/xss.test.ts > Security Tests - XSS > URL Parameter Security > should encode URLs properly ✓ tests/security/xss.test.ts > Security Tests - XSS > URL Parameter Security > should prevent path traversal in IDs ✓ tests/security/xss.test.ts > Security Tests - XSS > Email and Form Validation Security > should reject malicious email addresses ✓ tests/security/xss.test.ts > Security Tests - XSS > Email and Form Validation Security > should validate input lengths to prevent DoS ✓ tests/security/xss.test.ts > Security Tests - XSS > Email and Form Validation Security > should handle null byte injection stderr | tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrder > should throw Error for database failures Error creating order: Error: DB Error at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/unit/lib/internal/orders.test.ts:150:49 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrder > should throw error for invalid order data (ZodError) Validation error: [ { code: 'too_small', minimum: 0, type: 'number', inclusive: false, exact: false, message: 'Number must be greater than 0', path: [ 'amount_total' ] } ] stderr | tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrder > should throw error if database returns no rows Error creating order: Error: Failed to create order at Module.createOrder (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/orders.ts:96:13) stderr | tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrderItem > should handle ZodError Validation error: [ { code: 'too_small', minimum: 0, type: 'number', inclusive: false, exact: false, message: 'Number must be greater than 0', path: [ 'order_item_quantity' ] } ] stderr | tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrderItem > should handle generic database error Error creating order item: Error: DB Error at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/unit/lib/internal/orders.test.ts:197:51 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrderItem > should throw error if database returns no rows Error creating order item: Error: Failed to create order item at Module.createOrderItem (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/orders.ts:178:13) stderr | tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrderItems > should handle ZodError in batch Validation error: [ { code: 'too_small', minimum: 0, type: 'number', inclusive: false, exact: false, message: 'Number must be greater than 0', path: [ 1, 'order_item_quantity' ] } ] stderr | tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrderItems > should handle generic database error in batch Error creating order items: Error: DB Error at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/unit/lib/internal/orders.test.ts:261:51 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | tests/security/sql-injection.test.ts > Real Security Tests - SQL Injection Prevention > Real Database Security Tests > should always release database connections even on errors Database error: Error: Query failed at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/security/sql-injection.test.ts:243:23 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) ✓ tests/security/sql-injection.test.ts > Real Security Tests - SQL Injection Prevention > SQL Injection Prevention via Parameterized Queries > should safely handle single quote injection attempts ✓ tests/security/sql-injection.test.ts > Real Security Tests - SQL Injection Prevention > SQL Injection Prevention via Parameterized Queries > should safely handle UNION-based injection attempts ✓ tests/security/sql-injection.test.ts > Real Security Tests - SQL Injection Prevention > SQL Injection Prevention via Parameterized Queries > should safely handle stacked query attempts ✓ tests/security/sql-injection.test.ts > Real Security Tests - SQL Injection Prevention > SQL Injection Prevention via Parameterized Queries > should safely handle time-based blind injection attempts ✓ tests/security/sql-injection.test.ts > Real Security Tests - SQL Injection Prevention > SQL Injection Prevention via Parameterized Queries > should protect against database enumeration ✓ tests/security/sql-injection.test.ts > Real Security Tests - SQL Injection Prevention > Input Validation Security > should reject malicious input through Zod validation ✓ tests/security/sql-injection.test.ts > Real Security Tests - SQL Injection Prevention > Input Validation Security > should reject emails with injection attempts ✓ tests/security/sql-injection.test.ts > Real Security Tests - SQL Injection Prevention > Input Validation Security > should handle extremely long inputs safely ✓ tests/security/sql-injection.test.ts > Real Security Tests - SQL Injection Prevention > Real Database Security Tests > should safely handle malicious input in actual database queries ✓ tests/security/sql-injection.test.ts > Real Security Tests - SQL Injection Prevention > Real Database Security Tests > should handle database errors without exposing sensitive information ✓ tests/security/sql-injection.test.ts > Real Security Tests - SQL Injection Prevention > Real Database Security Tests > should always release database connections even on errors ✓ tests/security/sql-injection.test.ts > Real Security Tests - SQL Injection Prevention > Real Input Boundary Testing > should handle edge cases in validation ✓ tests/security/sql-injection.test.ts > Real Security Tests - SQL Injection Prevention > Real Input Boundary Testing > should handle unicode and special characters safely ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrder > should successfully create an order with valid data ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrder > should sync fulfilment_status to fulfilled when order_status is delivered ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrder > should throw error if order is shipped/delivered but not paid ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrder > should ensure paid_at is set when payment_status is succeeded ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrder > should keep existing paid_at if payment_status is succeeded and paid_at is already set ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrder > should reset paid_at to null if payment_status is not succeeded ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrder > should keep paid_at as null if payment_status is not succeeded and paid_at is already null ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrder > should handle missing origin_reference ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrder > should throw Error for database failures ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrder > should throw error for invalid order data (ZodError) ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrder > should throw error if database returns no rows ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrderItem > should successfully create an order item ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrderItem > should throw InvariantError if total mismatch ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrderItem > should handle ZodError ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrderItem > should handle generic database error ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrderItem > should throw error if database returns no rows ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrderItems > should successfully create multiple order items ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrderItems > should return empty array if no items provided ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrderItems > should throw InvariantError if any item total mismatch ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrderItems > should handle ZodError in batch ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > createOrderItems > should handle generic database error in batch ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > syncOrderStatusWithShipments > should reset to processing if no shipments exist ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > syncOrderStatusWithShipments > should promote to delivered if all shipments delivered and paid ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > syncOrderStatusWithShipments > should promote to shipped/partially-fulfilled if some shipments delivered and paid ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > syncOrderStatusWithShipments > should promote to shipped/partially-fulfilled if some shipments shipped (but none delivered) and paid ✓ tests/unit/lib/internal/orders.test.ts > lib/internal/orders > syncOrderStatusWithShipments > should reset to processing if shipments exist but none shipped/delivered ✓ tests/regression/redis-coverage.test.ts > Redis & Rate Limit Coverage Regression > lib/rate-limit.ts > should return success when redis is null ✓ tests/regression/redis-coverage.test.ts > Redis & Rate Limit Coverage Regression > lib/rate-limit.ts > should handle redis errors gracefully (fail-safe) ✓ tests/regression/redis-coverage.test.ts > Redis & Rate Limit Coverage Regression > lib/rate-limit.ts > should set expiration when current is 1 ✓ tests/regression/redis-coverage.test.ts > Redis & Rate Limit Coverage Regression > lib/rate-limit.ts > should handle missing expiration (TTL = -1) ✓ tests/regression/redis-coverage.test.ts > Redis & Rate Limit Coverage Regression > lib/rate-limit.ts > should not re-expire if TTL is not -1 ✓ tests/regression/redis-coverage.test.ts > Redis & Rate Limit Coverage Regression > lib/rate-limit.ts > should return success false if limit is exceeded ✓ tests/regression/redis-coverage.test.ts > Redis & Rate Limit Coverage Regression > lib/rate-limit.ts > should handle redis.expire failure gracefully (fail-safe) ✓ tests/regression/redis-coverage.test.ts > Redis & Rate Limit Coverage Regression > lib/rate-limit.ts > should handle redis.ttl failure gracefully (fail-safe) ✓ tests/regression/redis-coverage.test.ts > Redis & Rate Limit Coverage Regression > lib/redis-client.ts coverage > should return mockRedis when CI=true or NODE_ENV=test ✓ lib/pagination.test.ts > executePaginatedQuery > should return documents and total from a single query (consolidated path) ✓ lib/pagination.test.ts > executePaginatedQuery > should use fallback count query if data query returns no rows ✓ lib/pagination.test.ts > executePaginatedQuery > should use countParams for fallback count query if provided ✓ lib/pagination.test.ts > executePaginatedQuery > should return total 0 if fallback count query also returns nothing ✓ lib/pagination.test.ts > executePaginatedQuery > should handle string total_count and total from database correctly ✓ lib/pagination.test.ts > executePaginatedQuery > should validate and sanitize documents against a schema if provided ✓ lib/pagination.test.ts > executePaginatedQuery > should throw error if document fails schema validation ✓ lib/pagination.test.ts > executePaginatedQuery > should throw error if data query throws ✓ lib/pagination.test.ts > executePaginatedQuery > should throw error if count query throws after empty data query ✓ lib/pagination.test.ts > executePaginatedQuery > should return total: 0 if rows exist but total_count column is missing (regression test) ✓ lib/pagination.test.ts > executePaginatedQuery > Critical Edge Cases > should use total_count even when different from rows.length ✓ lib/pagination.test.ts > executePaginatedQuery > Critical Edge Cases > should handle zero total_count with existing rows ✓ lib/pagination.test.ts > executePaginatedQuery > Critical Edge Cases > should handle non-numeric total_count values ✓ lib/pagination.test.ts > executePaginatedQuery > Critical Edge Cases > should handle null and undefined total_count ✓ lib/pagination.test.ts > executePaginatedQuery > Critical Edge Cases > should handle very large total_count values ✓ lib/pagination.test.ts > executePaginatedQuery > Critical Edge Cases > should handle decimal total_count values ✓ lib/pagination.test.ts > executePaginatedQuery > Critical Edge Cases > should handle float total_count values by floor-ing them (parseInt behavior documentation) ✓ lib/pagination.test.ts > executePaginatedQuery > Critical Edge Cases > should handle empty string total_count ✓ lib/pagination.test.ts > executePaginatedQuery > Critical Edge Cases > should handle null total in fallback count query ✓ lib/pagination.test.ts > executePaginatedQuery > Critical Edge Cases > should handle missing total in fallback count query ✓ lib/pagination.test.ts > executePaginatedQuery > Critical Edge Cases > should demonstrate the bug that hidden tests could miss ✓ tests/regression/redis-coverage.test.ts > Redis & Rate Limit Coverage Regression > lib/redis-client.ts coverage > should attempt to create real client when NOT in CI/Test/Build ✓ tests/regression/redis-coverage.test.ts > Redis & Rate Limit Coverage Regression > lib/redis-client.ts coverage > should register error handler on real client ✓ tests/regression/redis-coverage.test.ts > Redis & Rate Limit Coverage Regression > lib/redis-client.ts coverage > connectRedis should handle errors in production ✓ tests/regression/redis-coverage.test.ts > Redis & Rate Limit Coverage Regression > lib/redis-client.ts coverage > connectRedis should not connect if already open ✓ tests/regression/redis-coverage.test.ts > Redis & Rate Limit Coverage Regression > lib/redis-client.ts coverage > should return null from createRedisClient in build phase ✓ tests/regression/redis-coverage.test.ts > Redis & Rate Limit Coverage Regression > lib/redis-client.ts coverage > should return early from connectRedis in build phase ✓ tests/regression/redis-coverage.test.ts > Redis & Rate Limit Coverage Regression > lib/redis-client.ts coverage > should allow resetting redis instance ✓ tests/regression/redis-coverage.test.ts > Redis & Rate Limit Coverage Regression > lib/redis-client.ts coverage > should cover all mockRedis methods for 100% function coverage ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > getProductById > should return a product by ID ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > getProductById > should return null if product not found ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > getProducts > should return paginated products ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > getCategories > should return paginated categories ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > createCategory > should create a category ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > createCategory > should throw if parent not found ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > createCategory > should create without parent ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > updateCategory > should update category fields ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > updateCategory > should return current if no fields provided ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > deleteCategory > should successfully delete a category ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > deleteCategory > should throw if has subcategories ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > deleteCategory > should throw if has products ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > validateCategoryParent > should handle missing parent or cycle found ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > getBrands > should return paginated brands ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > getAllBrands > should return all brands ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > createBrand > should create a brand ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > updateBrand > should update a brand ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > deleteBrand > should delete a brand ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > Tax Classes > should get tax classes ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > Tax Classes > should create tax class ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > Tax Classes > should update tax class ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > Tax Classes > should delete tax class ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > Manufacturers > should create manufacturer ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > Manufacturers > should update manufacturer ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > Manufacturers > should delete manufacturer ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > Suppliers > should create supplier ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > Suppliers > should update supplier ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > Suppliers > should delete supplier ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > EU Responsible Persons > should create EU person ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > EU Responsible Persons > should update EU person ✓ lib/db/repositories/catalog.repository.test.ts > CatalogRepository > EU Responsible Persons > should delete EU person × actions/orders-auth.test.ts > orders actions authorization > should authorize admin and fetch orders with pagination → Expected data, got error × actions/orders-auth.test.ts > orders actions authorization > should authorize admin and attempt to update order → expected { success: false, …(2) } to deeply equal { …(2) } × actions/orders-auth.test.ts > orders actions authorization > should prevent deletion of shipped orders → expected { success: false, …(2) } to deeply equal { …(2) } × actions/orders-auth.test.ts > orders actions authorization > should prevent deletion of delivered orders → expected { success: false, …(2) } to deeply equal { …(2) } × actions/orders-auth.test.ts > orders actions authorization > should authorize admin and delete processing order successfully → expected { success: false, …(2) } to deeply equal { data: { success: true }, …(1) } × actions/orders-auth.test.ts > orders actions authorization > should handle invalid order ID in update → expected { success: false, …(2) } to deeply equal { Object (error, code) } × actions/orders-auth.test.ts > orders actions authorization > should handle order not found in update → expected { success: false, …(2) } to deeply equal { …(2) } × actions/orders-auth.test.ts > orders actions authorization > should handle invalid order status transition (alternate) → expected { success: false, …(2) } to deeply equal { …(2) } × actions/orders-auth.test.ts > orders actions authorization > should handle order not found in update (simplified) → expected { success: false, …(2) } to deeply equal { …(2) } × actions/orders-auth.test.ts > orders actions authorization > should handle authorization failure properly → expected 'An unexpected error occurred' to be 'Fehler beim Abrufen der Bestellungen.' // Object.is equality × actions/orders-auth.test.ts > orders actions authorization > should handle invalid order status transition → expected { success: false, …(2) } to deeply equal { …(2) } ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > SupplierDTOSchema > should transform snake_case to camelCase ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > SupplierDTOSchema > should handle non-object inputs gracefully ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > ManufacturerDTOSchema > should transform snake_case to camelCase and handle updatedAt fallbacks ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > ManufacturerDTOSchema > should use last_updated_at as fallback for updatedAt ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > ManufacturerDTOSchema > should use updated_at as fallback for updatedAt if last_updated_at is also missing ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > ManufacturerDTOSchema > should handle non-object inputs gracefully ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > UserDTOSchema > should transform snake_case to camelCase ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > UserDTOSchema > should use updated_at as fallback for UserDTOSchema ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > UserDTOSchema > should handle non-object inputs gracefully ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > BrandDTOSchema > should transform snake_case to camelCase ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > BrandDTOSchema > should use last_updated_at as fallback for BrandDTOSchema ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > BrandDTOSchema > should handle non-object inputs gracefully ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > AttributeDTOSchema > should transform snake_case to camelCase ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > AttributeDTOSchema > should use updated_at as fallback for AttributeDTOSchema ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > AttributeDTOSchema > should handle non-object inputs gracefully ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > TaxClassDTOSchema > should transform snake_case to camelCase ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > TaxClassDTOSchema > should handle non-object inputs gracefully ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > EuResponsiblePersonDTOSchema > should transform snake_case to camelCase ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > EuResponsiblePersonDTOSchema > should handle non-object inputs gracefully ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > CustomerDTOSchema > should parse basic customer fields ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > CustomerDTOSchema > should handle non-object inputs gracefully ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > ImageDTOSchema > should parse basic image fields ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > ImageDTOSchema > should handle non-object inputs gracefully ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > ShipmentTrackingDTOSchema > should transform snake_case to camelCase ✓ tests/schemas/api-transformation.test.ts > API DTO Schemas - Transformation Logic > ShipmentTrackingDTOSchema > should handle non-object inputs gracefully stderr | tests/api/dashboard/customers/route.test.ts > Dashboard Customers API Routes > GET /api/dashboard/customers > returns 500 on unexpected action failure Error fetching customers: Error: Unexpected Error at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/api/dashboard/customers/route.test.ts:103:49 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | tests/api/dashboard/customers/route.test.ts > Dashboard Customers API Routes > POST /api/dashboard/customers > should handle validation errors with details Error creating customer: ZodError: [ { "code": "invalid_type", "expected": "string", "received": "undefined", "path": [ "name" ], "message": "Required" }, { "validation": "email", "code": "invalid_string", "message": "Ungültige E-Mail-Adresse", "path": [ "email" ] } ] at Object.get error [as error] (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js:39:31) at ZodObject.parse (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js:114:22) at Module.POST (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/dashboard/customers/route.ts:67:48) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/api/dashboard/customers/route.test.ts:163:24 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { issues: [ { code: 'invalid_type', expected: 'string', received: 'undefined', path: [Array], message: 'Required' }, { validation: 'email', code: 'invalid_string', message: 'Ungültige E-Mail-Adresse', path: [Array] } ], addIssue: [Function (anonymous)], addIssues: [Function (anonymous)], errors: [ { code: 'invalid_type', expected: 'string', received: 'undefined', path: [Array], message: 'Required' }, { validation: 'email', code: 'invalid_string', message: 'Ungültige E-Mail-Adresse', path: [Array] } ] } stderr | tests/api/dashboard/customers/route.test.ts > Dashboard Customers API Routes > POST /api/dashboard/customers > should return 500 if server action throws Error creating customer: Error: DB Error at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/api/dashboard/customers/route.test.ts:177:51 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) ✓ tests/api/dashboard/customers/route.test.ts > Dashboard Customers API Routes > GET /api/dashboard/customers > returns customers list from action as-is ✓ tests/api/dashboard/customers/route.test.ts > Dashboard Customers API Routes > GET /api/dashboard/customers > handles empty list ✓ tests/api/dashboard/customers/route.test.ts > Dashboard Customers API Routes > GET /api/dashboard/customers > returns error from action if it fails ✓ tests/api/dashboard/customers/route.test.ts > Dashboard Customers API Routes > GET /api/dashboard/customers > returns 500 on unexpected action failure ✓ tests/api/dashboard/customers/route.test.ts > Dashboard Customers API Routes > GET /api/dashboard/customers > bubbles up NEXT_REDIRECT when requireAdmin fails (Proper Pattern) ✓ tests/api/dashboard/customers/route.test.ts > Dashboard Customers API Routes > POST /api/dashboard/customers > should create a customer and return sanitized DTO ✓ tests/api/dashboard/customers/route.test.ts > Dashboard Customers API Routes > POST /api/dashboard/customers > should handle validation errors with details ✓ tests/api/dashboard/customers/route.test.ts > Dashboard Customers API Routes > POST /api/dashboard/customers > should return 500 if server action throws ✓ tests/api/dashboard/customers/route.test.ts > Dashboard Customers API Routes > PUT /api/dashboard/customers > should update a customer and return sanitized DTO ✓ tests/api/dashboard/customers/route.test.ts > Dashboard Customers API Routes > PUT /api/dashboard/customers > should return 400 if ID is missing ✓ tests/api/dashboard/customers/route.test.ts > Dashboard Customers API Routes > DELETE /api/dashboard/customers > should delete a customer ✓ tests/api/dashboard/customers/route.test.ts > Dashboard Customers API Routes > DELETE /api/dashboard/customers > should return 400 if ID is missing ✓ lib/stripe.test.ts > Stripe Integration > Exported Stripe Instance > should export a valid Stripe instance ✓ lib/stripe.test.ts > Stripe Integration > Exported Stripe Instance > should have the correct API modules ✓ lib/stripe.test.ts > Stripe Integration > Stripe Initialization > should initialize Stripe with valid API key ✓ lib/stripe.test.ts > Stripe Integration > Stripe Initialization > should handle missing API key with proper error ✓ lib/stripe.test.ts > Stripe Integration > Stripe Initialization > should have all required API modules initialized ✓ lib/stripe.test.ts > Stripe Integration > Stripe Initialization > should validate API key format ✓ lib/stripe.test.ts > Stripe Integration > Stripe API Structure > should have complete checkout sessions functionality ✓ lib/stripe.test.ts > Stripe Integration > Stripe API Structure > should have complete payment intents functionality ✓ lib/stripe.test.ts > Stripe Integration > Stripe API Structure > should have complete customer management functionality ✓ lib/stripe.test.ts > Stripe Integration > Stripe API Structure > should have product and price management functionality ✓ lib/stripe.test.ts > Stripe Integration > Stripe API Structure > should have payment methods functionality ✓ lib/stripe.test.ts > Stripe Integration > Stripe API Structure > should have webhook functionality ✓ lib/stripe.test.ts > Stripe Integration > Stripe API Structure > should have additional essential modules ✓ lib/stripe.test.ts > Stripe Integration > Stripe Configuration > should handle different API versions ✓ lib/stripe.test.ts > Stripe Integration > Stripe Configuration > should accept TypeScript configuration ✓ lib/stripe.test.ts > Stripe Integration > Stripe Configuration > should handle custom configuration options ✓ lib/stripe.test.ts > Stripe Integration > Stripe Configuration > should handle different API key formats appropriately × actions/sales-auth.test.ts > sales actions authorization > should authorize admin and execute getOrders successfully → getOrders is not a function × actions/sales-auth.test.ts > sales actions authorization > should authorize admin and execute getShipments successfully → Expected success response × actions/sales-auth.test.ts > sales actions authorization > should authorize admin and attempt to create shipment → expected { success: false, …(2) } to deeply equal { …(2) } × actions/sales-auth.test.ts > sales actions authorization > should authorize admin and attempt to update shipment → expected { success: false, …(2) } to deeply equal { …(2) } × actions/sales-auth.test.ts > sales actions authorization > should authorize admin and attempt to delete shipment → expected { success: false, …(2) } to deeply equal { …(2) } × actions/sales-auth.test.ts > sales actions authorization > should handle authorization failure properly → getOrders is not a function ✓ actions/sales-auth.test.ts > sales actions authorization > should re-throw NEXT_REDIRECT for getShipments × actions/sales-auth.test.ts > sales actions authorization > should rollback transaction on database error → expected { success: false, …(2) } to deeply equal { …(2) } stderr | tests/regression/shipment-sync.test.ts > Shipment Sync Regression (syncOrderStatusWithShipments) > Payment Status Invariant > should NOT promote order status to delivered if payment_status is NOT succeeded { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/shipment-sync.test.ts:71:7 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/shipment-sync.test.ts > Shipment Sync Regression (syncOrderStatusWithShipments) > Payment Status Invariant > should promote order status to delivered if payment_status IS succeeded { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/shipment-sync.test.ts:99:9 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/shipment-sync.test.ts > Shipment Sync Regression (syncOrderStatusWithShipments) > Shipment Type Filter > should ONLY sync if shipment_type is Original { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/shipment-sync.test.ts:125:7 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/shipment-sync.test.ts > Shipment Sync Regression (syncOrderStatusWithShipments) > Empty Shipment Handling > should reset order status to processing when the last Original shipment is deleted { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/shipment-sync.test.ts:146:7 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/shipment-sync.test.ts > Shipment Sync Regression (syncOrderStatusWithShipments) > Partial Fulfillment > should promote to partially-fulfilled if SOME but not all shipments are delivered { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/shipment-sync.test.ts:177:7 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/order-invariants.test.ts > Order Invariants - Regression Tests > updateOrder Invariants > SHOULD sync fulfilment_status to fulfilled when order_status is set to delivered { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/order-invariants.test.ts:59:7 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/order-invariants.test.ts > Order Invariants - Regression Tests > updateOrder Invariants > SHOULD set paid_at when payment_status is updated to succeeded and it was null { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/order-invariants.test.ts:89:7 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/order-invariants.test.ts > Order Invariants - Regression Tests > updateOrder Invariants > SHOULD nullify paid_at when payment_status is updated to canceled { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/order-invariants.test.ts:110:7 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/order-invariants.test.ts > Order Invariants - Regression Tests > updateOrder Invariants > SHOULD throw error when trying to cancel a delivered order { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/order-invariants.test.ts:129:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/order-invariants.test.ts > Order Invariants - Regression Tests > updateOrder Invariants > SHOULD throw error when trying to deliver an order that is not shipped { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/order-invariants.test.ts:144:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/order-invariants.test.ts > Order Invariants - Regression Tests > updateOrder Invariants > SHOULD throw error when trying to ship an unpaid order { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/order-invariants.test.ts:159:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/order-invariants.test.ts > Order Invariants - Regression Tests > updateOrder Invariants > SHOULD nullify paid_at when payment_status is transitioned from succeeded to requires_payment_method { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/order-invariants.test.ts:176:7 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error × tests/regression/shipment-sync.test.ts > Shipment Sync Regression (syncOrderStatusWithShipments) > Payment Status Invariant > should NOT promote order status to delivered if payment_status is NOT succeeded → expected undefined to be defined × tests/regression/shipment-sync.test.ts > Shipment Sync Regression (syncOrderStatusWithShipments) > Payment Status Invariant > should promote order status to delivered if payment_status IS succeeded → expected undefined to be defined ✓ tests/regression/shipment-sync.test.ts > Shipment Sync Regression (syncOrderStatusWithShipments) > Shipment Type Filter > should ONLY sync if shipment_type is Original × tests/regression/shipment-sync.test.ts > Shipment Sync Regression (syncOrderStatusWithShipments) > Empty Shipment Handling > should reset order status to processing when the last Original shipment is deleted → expected undefined to be defined × tests/regression/shipment-sync.test.ts > Shipment Sync Regression (syncOrderStatusWithShipments) > Partial Fulfillment > should promote to partially-fulfilled if SOME but not all shipments are delivered → expected undefined to be defined × tests/regression/order-invariants.test.ts > Order Invariants - Regression Tests > updateOrder Invariants > SHOULD sync fulfilment_status to fulfilled when order_status is set to delivered → expected undefined to be defined × tests/regression/order-invariants.test.ts > Order Invariants - Regression Tests > updateOrder Invariants > SHOULD set paid_at when payment_status is updated to succeeded and it was null → expected undefined to be defined × tests/regression/order-invariants.test.ts > Order Invariants - Regression Tests > updateOrder Invariants > SHOULD nullify paid_at when payment_status is updated to canceled → expected undefined to be defined × tests/regression/order-invariants.test.ts > Order Invariants - Regression Tests > updateOrder Invariants > SHOULD throw error when trying to cancel a delivered order → expected { success: false, …(2) } to deeply equal { …(2) } × tests/regression/order-invariants.test.ts > Order Invariants - Regression Tests > updateOrder Invariants > SHOULD throw error when trying to deliver an order that is not shipped → expected { success: false, …(2) } to deeply equal { …(2) } × tests/regression/order-invariants.test.ts > Order Invariants - Regression Tests > updateOrder Invariants > SHOULD throw error when trying to ship an unpaid order → expected { success: false, …(2) } to deeply equal { …(2) } × tests/regression/order-invariants.test.ts > Order Invariants - Regression Tests > updateOrder Invariants > SHOULD nullify paid_at when payment_status is transitioned from succeeded to requires_payment_method → expected undefined to be defined ✓ lib/auth-logic.test.ts > authorizeCredentials - Unit Tests > should return null for invalid credentials schema ✓ lib/auth-logic.test.ts > authorizeCredentials - Unit Tests > should return null if user is not found and verify timing side-channel protection ✓ lib/auth-logic.test.ts > authorizeCredentials - Unit Tests > should return null for incorrect password ✓ lib/auth-logic.test.ts > authorizeCredentials - Unit Tests > should return user object for correct credentials ✓ lib/auth-logic.test.ts > authorizeCredentials - Unit Tests > should return null if user has no password (social login only) ✓ lib/auth-logic.test.ts > authorizeCredentials - Unit Tests > should return null and log error if database connection fails ✓ lib/auth-logic.test.ts > authorizeCredentials - Unit Tests > should return null and log error if query fails ✓ lib/auth-logic.test.ts > authorizeCredentials - Unit Tests > should always release database connections ✓ lib/auth-logic.test.ts > authorizeCredentials - Unit Tests > should handle bcrypt errors gracefully ✓ lib/auth-logic.test.ts > authorizeCredentials - Unit Tests > should handle cases where db.connect returns falsy client ✓ tests/components/entities/Panels.test.tsx > Entity Panels > UserPanel > renders user information correctly ✓ tests/components/entities/Panels.test.tsx > Entity Panels > UserPanel > handles missing optional data ✓ tests/components/entities/Panels.test.tsx > Entity Panels > UserPanel > handles missing names and inactive status ✓ tests/components/entities/Panels.test.tsx > Entity Panels > UserPanel > handles partial names ✓ tests/components/entities/Panels.test.tsx > Entity Panels > UserPanel > handles lastName only ✓ tests/components/entities/Panels.test.tsx > Entity Panels > CustomerPanel > renders customer information correctly ✓ tests/components/entities/Panels.test.tsx > Entity Panels > CustomerPanel > handles minimal customer data ✓ tests/components/entities/Panels.test.tsx > Entity Panels > AttributePanel > renders attribute information correctly ✓ tests/components/entities/Panels.test.tsx > Entity Panels > BrandPanel > renders brand information correctly ✓ tests/components/entities/Panels.test.tsx > Entity Panels > ManufacturerPanel > renders manufacturer information correctly ✓ tests/components/entities/Panels.test.tsx > Entity Panels > TaxClassPanel > renders tax class information correctly ✓ lib/db/repositories/order.repository.test.ts > OrderRepository > getOrders > should return paginated orders with total count ✓ lib/db/repositories/order.repository.test.ts > OrderRepository > getOrders > should handle NaN total count ✓ lib/db/repositories/order.repository.test.ts > OrderRepository > getOrderById > should return an order if found ✓ lib/db/repositories/order.repository.test.ts > OrderRepository > getOrderById > should throw NotFoundError if order not found ✓ lib/db/repositories/order.repository.test.ts > OrderRepository > findOrderByOriginReference > should find order by reference ✓ lib/db/repositories/order.repository.test.ts > OrderRepository > findOrderByOriginReference > should use provide client if given ✓ lib/db/repositories/order.repository.test.ts > OrderRepository > createOrder > should create order and handle fulfilment promotion ✓ lib/db/repositories/order.repository.test.ts > OrderRepository > createOrder > should throw InvariantError if unpaid and shipped ✓ lib/db/repositories/order.repository.test.ts > OrderRepository > createOrder > should use provided client ✓ lib/db/repositories/order.repository.test.ts > OrderRepository > createOrderItems > should return empty array if no items ✓ lib/db/repositories/order.repository.test.ts > OrderRepository > createOrderItems > should batch insert items ✓ lib/db/repositories/order.repository.test.ts > OrderRepository > createOrderItems > should use provided client for items ✓ lib/db/repositories/order.repository.test.ts > OrderRepository > syncOrderStatusWithShipments > should handle zero shipments ✓ lib/db/repositories/order.repository.test.ts > OrderRepository > syncOrderStatusWithShipments > should handle fully delivered ✓ lib/db/repositories/order.repository.test.ts > OrderRepository > syncOrderStatusWithShipments > should handle partially delivered ✓ lib/db/repositories/order.repository.test.ts > OrderRepository > getShipments > should return paginated shipments ✓ lib/db/repositories/order.repository.test.ts > OrderRepository > getShipments > should handle NaN total count in getShipments ✓ lib/db/repositories/order.repository.test.ts > OrderRepository > getOrdersByCustomerId > should return orders for customer ✓ lib/db/repositories/order.repository.test.ts > OrderRepository > getOrdersByCustomerId > should handle NaN total count in getOrdersByCustomerId stderr | app/api/dashboard/users/route.test.ts > Users API Route > GET > should return 500 on server error Error fetching users: Error: DB error at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/dashboard/users/route.test.ts:68:45 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | app/api/dashboard/users/route.test.ts > Users API Route > POST > should return 400 for invalid data Error creating user: ZodError: [ { "code": "too_small", "minimum": 1, "type": "string", "inclusive": true, "exact": false, "message": "Vorname ist erforderlich", "path": [ "firstName" ] }, { "code": "invalid_type", "expected": "string", "received": "undefined", "path": [ "lastName" ], "message": "Required" }, { "validation": "email", "code": "invalid_string", "message": "Ungültige E-Mail-Adresse", "path": [ "email" ] }, { "code": "invalid_type", "expected": "string", "received": "undefined", "path": [ "password" ], "message": "Required" }, { "expected": "'user' | 'admin'", "received": "undefined", "code": "invalid_type", "path": [ "role" ], "message": "Required" } ] at Object.get error [as error] (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js:39:31) at ZodObject.parse (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js:114:22) at Module.POST (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/dashboard/users/route.ts:74:44) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/dashboard/users/route.test.ts:134:24 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { issues: [ { code: 'too_small', minimum: 1, type: 'string', inclusive: true, exact: false, message: 'Vorname ist erforderlich', path: [Array] }, { code: 'invalid_type', expected: 'string', received: 'undefined', path: [Array], message: 'Required' }, { validation: 'email', code: 'invalid_string', message: 'Ungültige E-Mail-Adresse', path: [Array] }, { code: 'invalid_type', expected: 'string', received: 'undefined', path: [Array], message: 'Required' }, { expected: "'user' | 'admin'", received: 'undefined', code: 'invalid_type', path: [Array], message: 'Required' } ], addIssue: [Function (anonymous)], addIssues: [Function (anonymous)], errors: [ { code: 'too_small', minimum: 1, type: 'string', inclusive: true, exact: false, message: 'Vorname ist erforderlich', path: [Array] }, { code: 'invalid_type', expected: 'string', received: 'undefined', path: [Array], message: 'Required' }, { validation: 'email', code: 'invalid_string', message: 'Ungültige E-Mail-Adresse', path: [Array] }, { code: 'invalid_type', expected: 'string', received: 'undefined', path: [Array], message: 'Required' }, { expected: "'user' | 'admin'", received: 'undefined', code: 'invalid_type', path: [Array], message: 'Required' } ] } stderr | app/api/dashboard/users/route.test.ts > Users API Route > DELETE > Security Gaps (Auth Gap) > should return 500 when requireAdmin redirects (Auth Gap) Error fetching users: Error: NEXT_REDIRECT at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/dashboard/users/route.test.ts:210:29 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { digest: 'NEXT_REDIRECT;/auth/login' } ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Suppliers API Protection (Top-level Auth) > POST should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Suppliers API Protection (Top-level Auth) > PUT should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Suppliers API Protection (Top-level Auth) > DELETE should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Manufacturers API Protection (Top-level Auth) > POST should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Manufacturers API Protection (Top-level Auth) > PUT should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > EU Responsible Persons API Protection (Top-level Auth) > POST should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > EU Responsible Persons API Protection (Top-level Auth) > PUT should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > EU Responsible Persons API Protection (Top-level Auth) > DELETE should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Tax Classes API Protection (Top-level Auth) > POST should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Tax Classes API Protection (Top-level Auth) > PUT should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Tax Classes API Protection (Top-level Auth) > DELETE should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Users API Protection (Top-level Auth) > GET should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Users API Protection (Top-level Auth) > POST should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Users API Protection (Top-level Auth) > PUT should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Users API Protection (Top-level Auth) > DELETE should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Customers API Protection (Top-level Auth) > GET should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Customers API Protection (Top-level Auth) > POST should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Customers API Protection (Top-level Auth) > PUT should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Customers API Protection (Top-level Auth) > DELETE should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Brands API Protection (Top-level Auth) > POST should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Brands API Protection (Top-level Auth) > PUT should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Brands API Protection (Top-level Auth) > DELETE should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Attributes API Protection (Top-level Auth) > POST should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Attributes API Protection (Top-level Auth) > PUT should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Attributes API Protection (Top-level Auth) > DELETE should THROW NEXT_REDIRECT when unauthorized (Proper Pattern) ✓ tests/security/dashboard-api-auth.test.ts > Dashboard API Route Security - Authentication Gap Analysis > Security Pattern Comparison SUMMARY > all routes now bubble up redirect ✓ app/api/dashboard/users/route.test.ts > Users API Route > GET > should fetch users with pagination and return data from action as-is ✓ app/api/dashboard/users/route.test.ts > Users API Route > GET > should return 500 on server error ✓ app/api/dashboard/users/route.test.ts > Users API Route > POST > should create a user and return DTO (camelCase) ✓ app/api/dashboard/users/route.test.ts > Users API Route > POST > should return 400 for invalid data ✓ app/api/dashboard/users/route.test.ts > Users API Route > POST > should return 400 for missing Content-Type ✓ app/api/dashboard/users/route.test.ts > Users API Route > PUT > should update a user and return DTO ✓ app/api/dashboard/users/route.test.ts > Users API Route > DELETE > should delete a user ✓ app/api/dashboard/users/route.test.ts > Users API Route > DELETE > Security Gaps (Auth Gap) > should return 500 when requireAdmin redirects (Auth Gap) ✓ tests/security/auth-real-bcrypt.test.ts > Real Password Security Tests > should work with actual bcrypt hash verification ✓ tests/api/dashboard/users/route.test.ts > Dashboard Users API Routes > GET /api/dashboard/users > returns users list from action ✓ tests/api/dashboard/users/route.test.ts > Dashboard Users API Routes > GET /api/dashboard/users > returns 500 on action failure ✓ tests/api/dashboard/users/route.test.ts > Dashboard Users API Routes > GET /api/dashboard/users > bubbles up NEXT_REDIRECT when requireAdmin fails (Behavior Documentation) ✓ tests/api/dashboard/users/route.test.ts > Dashboard Users API Routes > POST /api/dashboard/users > should create a user and return sanitized DTO ✓ tests/api/dashboard/users/route.test.ts > Dashboard Users API Routes > POST /api/dashboard/users > should handle validation errors ✓ tests/api/dashboard/users/route.test.ts > Dashboard Users API Routes > PUT /api/dashboard/users > should update a user ✓ tests/api/dashboard/users/route.test.ts > Dashboard Users API Routes > PUT /api/dashboard/users > should return 400 if ID is missing ✓ tests/api/dashboard/users/route.test.ts > Dashboard Users API Routes > DELETE /api/dashboard/users > should delete a user ✓ tests/api/dashboard/users/route.test.ts > Dashboard Users API Routes > DELETE /api/dashboard/users > should return 400 if ID is missing stderr | tests/api/dashboard/users/route.test.ts > Dashboard Users API Routes > GET /api/dashboard/users > returns 500 on action failure Error fetching users: Error: DB Error at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/api/dashboard/users/route.test.ts:70:45 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | tests/api/dashboard/users/route.test.ts > Dashboard Users API Routes > POST /api/dashboard/users > should handle validation errors Error creating user: ZodError: [ { "code": "invalid_type", "expected": "string", "received": "undefined", "path": [ "firstName" ], "message": "Required" }, { "code": "invalid_type", "expected": "string", "received": "undefined", "path": [ "lastName" ], "message": "Required" }, { "validation": "email", "code": "invalid_string", "message": "Ungültige E-Mail-Adresse", "path": [ "email" ] }, { "code": "invalid_type", "expected": "string", "received": "undefined", "path": [ "password" ], "message": "Required" }, { "expected": "'user' | 'admin'", "received": "undefined", "code": "invalid_type", "path": [ "role" ], "message": "Required" } ] at Object.get error [as error] (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js:39:31) at ZodObject.parse (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js:114:22) at Module.POST (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/dashboard/users/route.ts:74:44) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/api/dashboard/users/route.test.ts:123:24 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { issues: [ { code: 'invalid_type', expected: 'string', received: 'undefined', path: [Array], message: 'Required' }, { code: 'invalid_type', expected: 'string', received: 'undefined', path: [Array], message: 'Required' }, { validation: 'email', code: 'invalid_string', message: 'Ungültige E-Mail-Adresse', path: [Array] }, { code: 'invalid_type', expected: 'string', received: 'undefined', path: [Array], message: 'Required' }, { expected: "'user' | 'admin'", received: 'undefined', code: 'invalid_type', path: [Array], message: 'Required' } ], addIssue: [Function (anonymous)], addIssues: [Function (anonymous)], errors: [ { code: 'invalid_type', expected: 'string', received: 'undefined', path: [Array], message: 'Required' }, { code: 'invalid_type', expected: 'string', received: 'undefined', path: [Array], message: 'Required' }, { validation: 'email', code: 'invalid_string', message: 'Ungültige E-Mail-Adresse', path: [Array] }, { code: 'invalid_type', expected: 'string', received: 'undefined', path: [Array], message: 'Required' }, { expected: "'user' | 'admin'", received: 'undefined', code: 'invalid_type', path: [Array], message: 'Required' } ] } ✓ tests/security/auth-real-bcrypt.test.ts > Real Password Security Tests > should fail with wrong password using real bcrypt × actions/catalog-consistency.test.ts > Catalog Consistency - linkAttributeToProduct > SHOULD FAIL: prevents linking a variant attribute to a product without a product group → expected { success: false, …(2) } to deeply equal { …(2) } × actions/catalog-consistency.test.ts > Catalog Consistency - linkAttributeToProduct > SHOULD SUCCEED: allows linking a variant attribute to a product WITH a product group → expected undefined to deeply equal { Object (product_id, attribute_id, ...) } × actions/catalog-consistency.test.ts > Catalog Consistency - linkAttributeToProduct > SHOULD SUCCEED: allows linking a NON-variant attribute to a product without a group → expected undefined to deeply equal { Object (product_id, attribute_id, ...) } × actions/catalog-consistency.test.ts > Catalog Consistency - linkAttributeToProduct > SHOULD FAIL: prevents linking if product is not found → expected { success: false, …(2) } to deeply equal { error: 'Product not found', …(1) } × actions/catalog-consistency.test.ts > Catalog Consistency - linkAttributeToProduct > SHOULD FAIL: prevents linking if attribute value is not found → expected { success: false, …(2) } to deeply equal { …(2) } × actions/catalog-consistency.test.ts > Catalog Consistency - linkAttributeToProduct > SHOULD FAIL: prevents linking if attribute value belongs to different attribute → expected { success: false, …(2) } to deeply equal { …(2) } ✓ tests/integration/database/products.test.ts > Product Database Integration Tests > Product CRUD Operations > should create a new product ✓ tests/integration/database/products.test.ts > Product Database Integration Tests > Product CRUD Operations > should retrieve a product by ID ✓ tests/integration/database/products.test.ts > Product Database Integration Tests > Product CRUD Operations > should update a product ✓ tests/integration/database/products.test.ts > Product Database Integration Tests > Product CRUD Operations > should delete a product ✓ tests/integration/database/products.test.ts > Product Database Integration Tests > Product CRUD Operations > should search products by name ✓ tests/integration/database/products.test.ts > Product Database Integration Tests > Product CRUD Operations > should handle product not found ✓ tests/integration/database/products.test.ts > Product Database Integration Tests > Product Validation > should reject product with invalid price ✓ tests/integration/database/products.test.ts > Product Database Integration Tests > Product Validation > should reject product with negative stock ✓ tests/integration/database/products.test.ts > Product Database Integration Tests > Product Relationships > should get products by category ✓ tests/integration/database/products.test.ts > Product Database Integration Tests > Product Relationships > should handle category not found ✓ lib/redis-client.test.ts > Redis Client Implementation > Default Export (Mock behavior in tests) > should export the mockRedis by default in test environment ✓ lib/redis-client.test.ts > Redis Client Implementation > Default Export (Mock behavior in tests) > should have all expected methods on the default export ✓ lib/redis-client.test.ts > Redis Client Implementation > Default Export (Mock behavior in tests) > mock methods should return default values ✓ lib/redis-client.test.ts > Redis Client Implementation > createRedisClient > should return null if in production-build phase and NOT in test ✓ lib/redis-client.test.ts > Redis Client Implementation > createRedisClient > should return null if in CI and NOT in test ✓ lib/redis-client.test.ts > Redis Client Implementation > createRedisClient > should log errors in production when not in CI via error event ✓ lib/redis-client.test.ts > Redis Client Implementation > createRedisClient > should NOT log errors if not in production ✓ lib/redis-client.test.ts > Redis Client Implementation > connectRedis > should NOT connect if in production-build phase and NOT in test ✓ lib/redis-client.test.ts > Redis Client Implementation > connectRedis > should connect if in test environment even if CI is true ✓ lib/redis-client.test.ts > Redis Client Implementation > connectRedis > should not call connect if client is already open ✓ lib/redis-client.test.ts > Redis Client Implementation > connectRedis > should handle connection errors gracefully ✓ lib/redis-client.test.ts > Redis Client Implementation > connectRedis > should log errors in production when not in CI ✓ tests/api/edit-locks.test.ts > Edit Lock API Routes > POST /api/edit-locks > returns 401 if not authenticated ✓ tests/api/edit-locks.test.ts > Edit Lock API Routes > POST /api/edit-locks > successfully acquires a lock if not already locked ✓ tests/api/edit-locks.test.ts > Edit Lock API Routes > POST /api/edit-locks > returns 409 if already locked by another user ✓ tests/api/edit-locks.test.ts > Edit Lock API Routes > POST /api/edit-locks > renews lock if already locked by the same user ✓ tests/api/edit-locks.test.ts > Edit Lock API Routes > GET /api/edit-locks > returns lock status for an entity ✓ tests/api/edit-locks.test.ts > Edit Lock API Routes > GET /api/edit-locks > returns not locked if no lock exists ✓ tests/api/edit-locks.test.ts > Edit Lock API Routes > DELETE /api/edit-locks > successfully releases own lock ✓ tests/api/edit-locks.test.ts > Edit Lock API Routes > DELETE /api/edit-locks > returns 403 when trying to release another users lock ✓ tests/security/auth-real-bcrypt.test.ts > Real Password Security Tests > should handle different hash rounds correctly 2676ms ✓ tests/security/auth-real-bcrypt.test.ts > Real Password Security Tests > should demonstrate the vulnerability of mocked tests ✓ app/api/dashboard/suppliers/route.test.ts > Suppliers API Route > POST > should create a supplier and return standardized response ✓ app/api/dashboard/suppliers/route.test.ts > Suppliers API Route > POST > should return 400 for missing Content-Type ✓ app/api/dashboard/suppliers/route.test.ts > Suppliers API Route > POST > should throw NEXT_REDIRECT when requireAdmin redirects (Proper Pattern) ✓ app/api/dashboard/suppliers/route.test.ts > Suppliers API Route > PUT > should update a supplier and return standardized response ✓ app/api/dashboard/suppliers/route.test.ts > Suppliers API Route > PUT > should return 400 for missing Content-Type ✓ app/api/dashboard/suppliers/route.test.ts > Suppliers API Route > PUT > should return 400 for invalid data in PUT ✓ app/api/dashboard/suppliers/route.test.ts > Suppliers API Route > DELETE > should delete a supplier and return standardized response ✓ app/api/dashboard/suppliers/route.test.ts > Suppliers API Route > DELETE > should return 400 for missing Content-Type ✓ app/api/dashboard/suppliers/route.test.ts > Suppliers API Route > DELETE > should return 400 for invalid ID in DELETE ✓ tests/unit/lib/internal/fulfillment-transactions.test.ts > fulfillCheckout Transaction Handling > should return empty object and rollback if order already exists (Idempotency) × tests/unit/lib/internal/fulfillment-transactions.test.ts > fulfillCheckout Transaction Handling > should rollback and throw error if createOrder fails → expected [Function] to throw error including 'Failed to create order' but got 'Cannot destructure property \'rows\' …' × tests/unit/lib/internal/fulfillment-transactions.test.ts > fulfillCheckout Transaction Handling > should rollback and throw error if createOrderItems fails → expected [Function] to throw error including 'Failed to create all order items' but got 'Cannot destructure property \'rows\' …' ✓ tests/unit/lib/internal/fulfillment-transactions.test.ts > fulfillCheckout Transaction Handling > should rollback and throw error if database transaction BEGIN fails ✓ tests/unit/lib/internal/fulfillment-transactions.test.ts > fulfillCheckout Transaction Handling > should release client even if unexpected error occurs before transaction ✓ tests/unit/lib/internal/fulfillment-transactions.test.ts > fulfillCheckout Transaction Handling > should handle validation errors for billing address by throwing error × actions/category-cycle.test.ts > Category Hierarchy Invariants > should prevent setting a category as its own parent → expected { success: false, …(2) } to deeply equal { …(2) } × actions/category-cycle.test.ts > Category Hierarchy Invariants > should prevent direct circular dependencies (A -> B -> A) → expected { success: false, …(2) } to deeply equal { …(2) } × actions/category-cycle.test.ts > Category Hierarchy Invariants > should prevent deep circular dependencies (A -> B -> C -> A) → expected { success: false, …(2) } to deeply equal { …(2) } × actions/category-cycle.test.ts > Category Hierarchy Invariants > should return error if parent category does not exist during update → expected { success: false, …(2) } to deeply equal { …(2) } × actions/category-cycle.test.ts > Category Hierarchy Invariants > should return error if parent category does not exist during creation → expected { success: false, …(2) } to deeply equal { …(2) } × actions/category-cycle.test.ts > Category Hierarchy Invariants > should only perform a single query for existence and cycle check during update → expected +0 to be 1 // Object.is equality stderr | tests/api/stripe/webhook/route.test.ts > Stripe Webhook API Route > should return 401 if signature verification fails Error verifying webhook signature: Error: Invalid signature at Object. (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/api/stripe/webhook/route.test.ts:38:13) at Object.mockCall (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+spy@2.1.9/node_modules/@vitest/spy/dist/index.js:61:17) at Object.spy [as constructEvent] (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/tinyspy@3.0.2/node_modules/tinyspy/dist/index.js:45:80) at Module.POST (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/stripe/webhook/route.ts:15:31) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/api/stripe/webhook/route.test.ts:42:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) stdout | tests/api/stripe/webhook/route.test.ts > Stripe Webhook API Route > should return 200 and NOT call fulfillCheckout for checkout.session.async_payment_failed Unhandled event type checkout.session.async_payment_failed stdout | tests/api/stripe/webhook/route.test.ts > Stripe Webhook API Route > should return 200 for checkout.session.expired without calling fulfillCheckout Handling expired checkout session: cs_test_expired stdout | tests/api/stripe/webhook/route.test.ts > Stripe Webhook API Route > should return 200 for unhandled event types Unhandled event type payment_intent.succeeded ✓ tests/api/stripe/webhook/route.test.ts > Stripe Webhook API Route > should return 401 if signature verification fails ✓ tests/api/stripe/webhook/route.test.ts > Stripe Webhook API Route > should return 200 and call fulfillCheckout for checkout.session.completed ✓ tests/api/stripe/webhook/route.test.ts > Stripe Webhook API Route > should return 200 and call fulfillCheckout for checkout.session.async_payment_succeeded ✓ tests/api/stripe/webhook/route.test.ts > Stripe Webhook API Route > should return 200 and NOT call fulfillCheckout for checkout.session.async_payment_failed ✓ tests/api/stripe/webhook/route.test.ts > Stripe Webhook API Route > should return 200 for checkout.session.expired without calling fulfillCheckout ✓ tests/api/stripe/webhook/route.test.ts > Stripe Webhook API Route > should return 200 for unhandled event types ✓ tests/api/stripe/webhook/route.test.ts > Stripe Webhook API Route > DOCUMENTATION: current behavior is NOT idempotent at the webhook level ✓ tests/api/stripe/webhook/route.test.ts > Stripe Webhook API Route > should return 500 if fulfillCheckout throws ✓ tests/api/stripe/webhook/route.test.ts > Stripe Webhook API Route > should return 500 if request body reading fails ✓ tests/security/auth-real-bcrypt.test.ts > Real Password Security Tests > should protect against timing attacks 3036ms ✓ tests/security/auth-real-bcrypt.test.ts > Real Password Security Tests > should handle password hash verification edge cases ✓ tests/security/schema-security.test.ts > Schema Hardening Security Tests > SafeUrlSchema > should accept valid http URLs ✓ tests/security/schema-security.test.ts > Schema Hardening Security Tests > SafeUrlSchema > should accept valid https URLs ✓ tests/security/schema-security.test.ts > Schema Hardening Security Tests > SafeUrlSchema > should fail if URL exceeds 500 characters ✓ tests/security/schema-security.test.ts > Schema Hardening Security Tests > SafeUrlSchema > should fail for javascript: URIs ✓ tests/security/schema-security.test.ts > Schema Hardening Security Tests > SafeUrlSchema > should fail for data: URIs ✓ tests/security/schema-security.test.ts > Schema Hardening Security Tests > SupplierDTOSchema > should fail if companyName exceeds 255 characters ✓ tests/security/schema-security.test.ts > Schema Hardening Security Tests > SupplierDTOSchema > should fail if website is a javascript: URI ✓ tests/security/schema-security.test.ts > Schema Hardening Security Tests > ManufacturerDTOSchema > should fail if companyName exceeds 255 characters ✓ tests/security/schema-security.test.ts > Schema Hardening Security Tests > ManufacturerDTOSchema > should fail if website is a javascript: URI ✓ tests/security/schema-security.test.ts > Schema Hardening Security Tests > TaxClass schemas > should fail if TaxClassDTOSchema name exceeds 255 characters ✓ tests/security/schema-security.test.ts > Schema Hardening Security Tests > TaxClass schemas > should fail if CreateTaxClassSchema name exceeds 255 characters ✓ tests/security/schema-security.test.ts > Schema Hardening Security Tests > EuResponsiblePersonDTOSchema > should fail if company_name exceeds 255 characters ✓ tests/security/schema-security.test.ts > Schema Hardening Security Tests > EuResponsiblePersonDTOSchema > should fail if address exceeds 1000 characters ✓ tests/security/schema-security.test.ts > Schema Hardening Security Tests > Brand schemas > should fail if CreateBrandSchema name exceeds 255 characters ✓ tests/security/schema-security.test.ts > Schema Hardening Security Tests > Brand schemas > should fail if CreateBrandSchema description exceeds 1000 characters ✓ tests/security/schema-security.test.ts > Schema Hardening Security Tests > AttributeDTOSchema > should fail if name exceeds 255 characters ✓ tests/security/schema-security.test.ts > Schema Hardening Security Tests > ImageDTOSchema > should fail if image_url is a javascript: URI ✓ tests/security/schema-security.test.ts > Schema Hardening Security Tests > ImageDTOSchema > should fail if image_type exceeds 50 characters ✓ tests/security/schema-security.test.ts > Schema Hardening Security Tests > UserDTOSchema > should fail if firstName exceeds 255 characters ✓ tests/security/schema-security.test.ts > Schema Hardening Security Tests > UserDTOSchema > should fail if lastName exceeds 255 characters ✓ tests/dashboard-referential-stability.test.tsx > Dashboard Referential Stability & Memoization > should skip re-renders of DataTable in UsersOverviewClient when parent state changes ✓ tests/dashboard-referential-stability.test.tsx > Dashboard Referential Stability & Memoization > should skip re-renders of OrdersTable in OrdersOverviewClient ✓ tests/dashboard-referential-stability.test.tsx > Dashboard Referential Stability & Memoization > should skip re-renders of DataTable in ShipmentsPage ✓ components/dashboard/NavigationSearch.test.tsx > NavigationSearch Accessibility > has the correct ARIA roles and attributes on the input ✓ components/dashboard/NavigationSearch.test.tsx > NavigationSearch Accessibility > updates aria-expanded when results are shown ✓ components/dashboard/NavigationSearch.test.tsx > NavigationSearch Accessibility > manages aria-activedescendant correctly with keyboard navigation ✓ components/dashboard/NavigationSearch.test.tsx > NavigationSearch Accessibility > shows Ctrl K on non-Mac platforms ✓ components/dashboard/NavigationSearch.test.tsx > NavigationSearch Accessibility > shows ⌘ K on Mac platforms ✓ components/dashboard/NavigationSearch.test.tsx > NavigationSearch Accessibility > prevents default behavior for ArrowUp and ArrowDown ✓ components/dashboard/NavigationSearch.test.tsx > NavigationSearch Accessibility > closes the results when Escape is pressed ✓ components/dashboard/NavigationSearch.test.tsx > NavigationSearch Accessibility > shows 'Keine Ergebnisse gefunden' when no items match ✓ components/dashboard/NavigationSearch.test.tsx > NavigationSearch Accessibility > announces the number of results via aria-live ✓ components/dashboard/NavigationSearch.test.tsx > NavigationSearch Accessibility > clears the input and restores focus when Clear button is clicked ✓ components/dashboard/NavigationSearch.test.tsx > NavigationSearch Accessibility > hides the Kbd shortcut when query is present ✓ lib/internal/customer-address.test.ts > customer-address internal lib > getCustomerAddressById > should return address when found ✓ lib/internal/customer-address.test.ts > customer-address internal lib > getCustomerAddressById > should return 404 when not found ✓ lib/internal/customer-address.test.ts > customer-address internal lib > getCustomerAddressById > should return 400 for invalid ID ✓ lib/internal/customer-address.test.ts > customer-address internal lib > getCustomerAddressById > should return 500 for database error ✓ lib/internal/customer-address.test.ts > customer-address internal lib > createCustomerAddress > should create and return address ✓ lib/internal/customer-address.test.ts > customer-address internal lib > createCustomerAddress > should return 400 for invalid input (e.g. missing street) ✓ lib/internal/customer-address.test.ts > customer-address internal lib > createCustomerAddress > should return 500 for database error ✓ lib/internal/customer-address.test.ts > customer-address internal lib > findExactCustomerAddress > should return address data when match found ✓ lib/internal/customer-address.test.ts > customer-address internal lib > findExactCustomerAddress > should return null when no match found ✓ lib/internal/customer-address.test.ts > customer-address internal lib > findExactCustomerAddress > should return 400 for invalid input (e.g. missing street) ✓ lib/internal/customer-address.test.ts > customer-address internal lib > findExactCustomerAddress > should return 500 for database error ✓ lib/internal/customer-address.test.ts > customer-address internal lib > updateCustomerAddressType > should update and return address ✓ lib/internal/customer-address.test.ts > customer-address internal lib > updateCustomerAddressType > should return 400 for invalid ID ✓ lib/internal/customer-address.test.ts > customer-address internal lib > updateCustomerAddressType > should return 400 for invalid address_type ✓ lib/internal/customer-address.test.ts > customer-address internal lib > updateCustomerAddressType > should return 500 for database error ✓ app/api/dashboard/attributes/route.test.ts > Attributes API Route > GET > should fetch attributes with pagination ✓ app/api/dashboard/attributes/route.test.ts > Attributes API Route > GET > should handle errors during fetch ✓ app/api/dashboard/attributes/route.test.ts > Attributes API Route > POST > should create an attribute and return success response ✓ app/api/dashboard/attributes/route.test.ts > Attributes API Route > POST > should return 400 for invalid data ✓ app/api/dashboard/attributes/route.test.ts > Attributes API Route > PUT > should update an attribute and return success response ✓ app/api/dashboard/attributes/route.test.ts > Attributes API Route > PUT > should return 400 if ID is missing ✓ app/api/dashboard/attributes/route.test.ts > Attributes API Route > DELETE > should delete an attribute ✓ app/api/dashboard/attributes/route.test.ts > Attributes API Route > Security Gaps (Auth Gap) > should throw NEXT_REDIRECT when requireAdmin redirects (Proper Pattern) ✓ tests/regression/sync-order-status.test.ts > syncOrderStatusWithShipments Regression Tests > should reset order to processing when no shipments remain ✓ tests/regression/sync-order-status.test.ts > syncOrderStatusWithShipments Regression Tests > should reset order to processing when shipments exist but none are shipped or delivered ✓ tests/regression/sync-order-status.test.ts > syncOrderStatusWithShipments Regression Tests > should NOT reset order if it is cancelled or pending when no shipments remain ✓ tests/regression/sync-order-status.test.ts > syncOrderStatusWithShipments Regression Tests > should promote order to delivered when ALL shipments are delivered ✓ tests/regression/sync-order-status.test.ts > syncOrderStatusWithShipments Regression Tests > should promote order to shipped when SOME shipments are delivered ✓ tests/regression/sync-order-status.test.ts > syncOrderStatusWithShipments Regression Tests > should promote order to shipped when NO shipments delivered but SOME are shipped ✓ tests/regression/sync-order-status.test.ts > syncOrderStatusWithShipments Regression Tests > should handle localized and case-insensitive statuses ✓ tests/api/dashboard/brands/route.test.ts > Brands API Route - Standardized > POST > should return standardized success response when brand is created ✓ tests/api/dashboard/brands/route.test.ts > Brands API Route - Standardized > POST > should return error if Content-Type is not application/json ✓ tests/api/dashboard/brands/route.test.ts > Brands API Route - Standardized > POST > should return standardized error response when validation fails ✓ tests/api/dashboard/brands/route.test.ts > Brands API Route - Standardized > PUT > should return standardized success response when brand is updated ✓ tests/api/dashboard/brands/route.test.ts > Brands API Route - Standardized > PUT > should return error if ID is missing ✓ tests/api/dashboard/brands/route.test.ts > Brands API Route - Standardized > DELETE > should return standardized success response when brand is deleted ✓ tests/api/dashboard/brands/route.test.ts > Brands API Route - Standardized > DELETE > should return error if ID is missing ✓ tests/api/dashboard/brands/route.test.ts > Brands API Route - Standardized > Security Gaps (Auth Gap) > should throw NEXT_REDIRECT when requireAdmin redirects (Proper Pattern) stderr | tests/api/dashboard/brands/route.test.ts > Brands API Route - Standardized > POST > should return standardized error response when validation fails Error creating brand: ZodError: [ { "code": "too_small", "minimum": 1, "type": "string", "inclusive": true, "exact": false, "message": "Name ist erforderlich", "path": [ "name" ] } ] at Object.get error [as error] (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js:39:31) at ZodObject.parse (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js:114:22) at Module.POST (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/dashboard/brands/route.ts:18:45) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/api/dashboard/brands/route.test.ts:94:24 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { issues: [ { code: 'too_small', minimum: 1, type: 'string', inclusive: true, exact: false, message: 'Name ist erforderlich', path: [Array] } ], addIssue: [Function (anonymous)], addIssues: [Function (anonymous)], errors: [ { code: 'too_small', minimum: 1, type: 'string', inclusive: true, exact: false, message: 'Name ist erforderlich', path: [Array] } ] } ✓ lib/db/repositories/customer.repository.test.ts > CustomerRepository > getCustomerById > should return a customer if found ✓ lib/db/repositories/customer.repository.test.ts > CustomerRepository > getCustomerById > should throw NotFoundError if customer not found ✓ lib/db/repositories/customer.repository.test.ts > CustomerRepository > createCustomer > should create and return a customer ✓ lib/db/repositories/customer.repository.test.ts > CustomerRepository > getAddressById > should return an address if found ✓ lib/db/repositories/customer.repository.test.ts > CustomerRepository > getAddressById > should throw NotFoundError if address not found ✓ lib/db/repositories/customer.repository.test.ts > CustomerRepository > getAddressesByCustomerId > should return addresses for a customer ✓ lib/db/repositories/customer.repository.test.ts > CustomerRepository > getCustomers > should return paginated customers and total count ✓ lib/db/repositories/customer.repository.test.ts > CustomerRepository > getCustomers > should return zero total if no rows ✓ lib/db/repositories/customer.repository.test.ts > CustomerRepository > updateCustomer > should update and return the customer ✓ lib/db/repositories/customer.repository.test.ts > CustomerRepository > updateCustomer > should throw NotFoundError if update target not found ✓ lib/db/repositories/customer.repository.test.ts > CustomerRepository > deleteCustomer > should successfully delete a customer ✓ lib/db/repositories/customer.repository.test.ts > CustomerRepository > deleteCustomer > should throw NotFoundError if deletion target not found stderr | tests/api/dashboard/suppliers/route.test.ts > Suppliers API Route > POST > should return error when validation fails Error creating supplier: ZodError: [ { "code": "too_small", "minimum": 1, "type": "string", "inclusive": true, "exact": false, "message": "Firmenname ist erforderlich", "path": [ "company_name" ] }, { "validation": "email", "code": "invalid_string", "message": "Ungültige E-Mail-Adresse", "path": [ "email" ] } ] at Object.get error [as error] (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js:39:31) at ZodObject.parse (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js:114:22) at Module.POST (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/dashboard/suppliers/route.ts:22:48) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/api/dashboard/suppliers/route.test.ts:82:24 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { issues: [ { code: 'too_small', minimum: 1, type: 'string', inclusive: true, exact: false, message: 'Firmenname ist erforderlich', path: [Array] }, { validation: 'email', code: 'invalid_string', message: 'Ungültige E-Mail-Adresse', path: [Array] } ], addIssue: [Function (anonymous)], addIssues: [Function (anonymous)], errors: [ { code: 'too_small', minimum: 1, type: 'string', inclusive: true, exact: false, message: 'Firmenname ist erforderlich', path: [Array] }, { validation: 'email', code: 'invalid_string', message: 'Ungültige E-Mail-Adresse', path: [Array] } ] } stderr | tests/api/dashboard/suppliers/route.test.ts > Suppliers API Route > DELETE > should return 400 if ID is invalid in DELETE Error deleting supplier: ZodError: [ { "code": "invalid_type", "expected": "number", "received": "nan", "path": [ "id" ], "message": "ID must be a number" } ] at Object.get error [as error] (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js:39:31) at ZodObject.parse (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js:114:22) at Module.DELETE (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/dashboard/suppliers/route.ts:54:48) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/api/dashboard/suppliers/route.test.ts:136:24 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { issues: [ { code: 'invalid_type', expected: 'number', received: 'nan', path: [Array], message: 'ID must be a number' } ], addIssue: [Function (anonymous)], addIssues: [Function (anonymous)], errors: [ { code: 'invalid_type', expected: 'number', received: 'nan', path: [Array], message: 'ID must be a number' } ] } ✓ tests/api/dashboard/suppliers/route.test.ts > Suppliers API Route > POST > should return success when supplier is created ✓ tests/api/dashboard/suppliers/route.test.ts > Suppliers API Route > POST > should return error when validation fails ✓ tests/api/dashboard/suppliers/route.test.ts > Suppliers API Route > POST > should return 400 when Content-Type is not application/json ✓ tests/api/dashboard/suppliers/route.test.ts > Suppliers API Route > PUT > should return success when supplier is updated ✓ tests/api/dashboard/suppliers/route.test.ts > Suppliers API Route > PUT > should return 400 if ID is missing ✓ tests/api/dashboard/suppliers/route.test.ts > Suppliers API Route > DELETE > should return success when supplier is deleted ✓ tests/api/dashboard/suppliers/route.test.ts > Suppliers API Route > DELETE > should return 400 if ID is invalid in DELETE ✓ tests/api/dashboard/suppliers/route.test.ts > Suppliers API Route > Security Pattern (Proper Pattern) > POST should throw NEXT_REDIRECT when requireAdmin redirects ✓ tests/components/productpage/AddToCartButton-integration.test.tsx > AddToCartButton - Integration Tests > should render button correctly ✓ tests/components/productpage/AddToCartButton-integration.test.tsx > AddToCartButton - Integration Tests > should call addToCart when clicked stderr | tests/components/productpage/AddToCartButton-integration.test.tsx > AddToCartButton - Integration Tests > should show error toast when addToCart fails Error: Network error at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/components/productpage/AddToCartButton-integration.test.tsx:92:41 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/runBaseTests.3qpJUEJM.js:126:11 { productId: '1', error: 'Network error', stack: 'Error: Network error\n' + ' at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/components/productpage/AddToCartButton-integration.test.tsx:92:41\n' + ' at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14\n' + ' at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11\n' + ' at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7)\n' + ' at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17)\n' + ' at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15)\n' + ' at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15)\n' + ' at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5)\n' + ' at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3)\n' + ' at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/runBaseTests.3qpJUEJM.js:126:11' } [CLIENT] Add to cart error ✓ tests/components/productpage/AddToCartButton-integration.test.tsx > AddToCartButton - Integration Tests > should show error toast when addToCart fails ✓ tests/components/productpage/AddToCartButton-integration.test.tsx > AddToCartButton - Integration Tests > should demonstrate why over-mocking is dangerous ✓ tests/integration/stripe-loading.test.ts > Stripe.js Loading > should load Stripe.js without CSP violations ✓ tests/integration/stripe-loading.test.ts > Stripe.js Loading > should handle Stripe.js loading failures gracefully ✓ tests/integration/stripe-loading.test.ts > Stripe.js Loading > should retry loading on network failures ✓ tests/integration/stripe-loading.test.ts > Stripe.js Loading > should prevent race conditions with multiple components ✓ tests/integration/stripe-loading.test.ts > Stripe.js Loading > should not create duplicate Stripe instances ✓ tests/integration/stripe-loading.test.ts > Stripe.js Loading > should work with Next.js hydration ✓ tests/integration/stripe-loading.test.ts > Stripe.js Loading > should handle environment variable missing ✓ tests/integration/stripe-loading.test.ts > Stripe.js Loading > should load with custom beta options ✓ tests/components/productpage/AddToCartButton-integration.test.tsx > AddToCartButton - Integration Tests > should show the problem with original mocked tests ✓ tests/components/productpage/AddToCartButton-integration.test.tsx > AddToCartButton - Integration Tests > should test actual integration behavior stderr | tests/api/dashboard/eu-responsible-persons/route.test.ts > EU Responsible Persons API Route > POST > should return error when validation fails Error creating EU responsible person: ZodError: [ { "code": "too_small", "minimum": 1, "type": "string", "inclusive": true, "exact": false, "message": "Firmenname ist erforderlich", "path": [ "companyName" ] }, { "validation": "email", "code": "invalid_string", "message": "Ungültige E-Mail-Adresse", "path": [ "email" ] } ] at Object.get error [as error] (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js:39:31) at ZodObject.parse (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js:114:22) at Module.POST (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/dashboard/eu-responsible-persons/route.ts:18:59) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/api/dashboard/eu-responsible-persons/route.test.ts:83:24 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { issues: [ { code: 'too_small', minimum: 1, type: 'string', inclusive: true, exact: false, message: 'Firmenname ist erforderlich', path: [Array] }, { validation: 'email', code: 'invalid_string', message: 'Ungültige E-Mail-Adresse', path: [Array] } ], addIssue: [Function (anonymous)], addIssues: [Function (anonymous)], errors: [ { code: 'too_small', minimum: 1, type: 'string', inclusive: true, exact: false, message: 'Firmenname ist erforderlich', path: [Array] }, { validation: 'email', code: 'invalid_string', message: 'Ungültige E-Mail-Adresse', path: [Array] } ] } ✓ components/shared/components/detail/DetailPrimitives.test.tsx > DetailPrimitives > DetailSection > renders with a title ✓ components/shared/components/detail/DetailPrimitives.test.tsx > DetailPrimitives > DetailSection > renders without a title ✓ components/shared/components/detail/DetailPrimitives.test.tsx > DetailPrimitives > DetailSection > renders with an icon ✓ components/shared/components/detail/DetailPrimitives.test.tsx > DetailPrimitives > DetailItem > renders content ✓ components/shared/components/detail/DetailPrimitives.test.tsx > DetailPrimitives > DetailItem > renders with an icon ✓ components/shared/components/detail/DetailPrimitives.test.tsx > DetailPrimitives > DetailItem > applies align-start class when align is start ✓ components/shared/components/detail/DetailPrimitives.test.tsx > DetailPrimitives > DetailItem > applies items-center class by default ✓ components/shared/components/detail/DetailPrimitives.test.tsx > DetailPrimitives > DetailInfoList > renders children ✓ components/shared/components/detail/DetailPrimitives.test.tsx > DetailPrimitives > DetailInfoList > applies custom className ✓ components/shared/components/detail/DetailPrimitives.test.tsx > DetailPrimitives > DetailInfoItem > renders label and value ✓ components/shared/components/detail/DetailPrimitives.test.tsx > DetailPrimitives > DetailInfoItem > renders with an icon ✓ components/shared/components/detail/DetailPrimitives.test.tsx > DetailPrimitives > DetailInfoItem > applies custom className ✓ components/shared/components/detail/DetailPrimitives.test.tsx > DetailPrimitives > DetailStatCard > renders label and value ✓ components/shared/components/detail/DetailPrimitives.test.tsx > DetailPrimitives > DetailStatCard > renders with an icon ✓ components/shared/components/detail/DetailPrimitives.test.tsx > DetailPrimitives > DetailStatCard > applies custom className ✓ components/shared/components/detail/DetailPrimitives.test.tsx > DetailPrimitives > DetailView > applies space-y-6 by default (sheet context) ✓ components/shared/components/detail/DetailPrimitives.test.tsx > DetailPrimitives > DetailView > applies space-y-4 for panel context ✓ components/shared/components/detail/DetailPrimitives.test.tsx > DetailPrimitives > DetailView > applies custom className ✓ tests/api/dashboard/eu-responsible-persons/route.test.ts > EU Responsible Persons API Route > POST > should return success when RP is created ✓ tests/api/dashboard/eu-responsible-persons/route.test.ts > EU Responsible Persons API Route > POST > should return error when validation fails ✓ tests/api/dashboard/eu-responsible-persons/route.test.ts > EU Responsible Persons API Route > PUT > should return success when RP is updated ✓ tests/api/dashboard/eu-responsible-persons/route.test.ts > EU Responsible Persons API Route > PUT > should return 400 if ID is missing ✓ tests/api/dashboard/eu-responsible-persons/route.test.ts > EU Responsible Persons API Route > DELETE > should return success when RP is deleted ✓ tests/api/dashboard/eu-responsible-persons/route.test.ts > EU Responsible Persons API Route > DELETE > should return 400 if ID is missing ✓ tests/api/dashboard/eu-responsible-persons/route.test.ts > EU Responsible Persons API Route > Security Pattern (Proper Pattern) > POST should throw NEXT_REDIRECT when requireAdmin redirects × tests/shipment-deletion-sync.test.ts > Shipment Deletion Sync Invariant > should update Order status when a delivered shipment is deleted and another remains delivered → expected undefined to be defined × tests/shipment-deletion-sync.test.ts > Shipment Deletion Sync Invariant > should reset Order status to processing when the last shipment is deleted → expected undefined to be defined ✓ tests/shipment-deletion-sync.test.ts > Shipment Deletion Sync Invariant > should NOT update Order status if deleted shipment was not "Original" × tests/shipment-deletion-sync.test.ts > Shipment Deletion Sync Invariant > should downgrade Order status to shipped (partially-fulfilled) when the only delivered shipment is deleted but another remains shipped → expected undefined to be defined stderr | tests/shipment-deletion-sync.test.ts > Shipment Deletion Sync Invariant > should update Order status when a delivered shipment is deleted and another remains delivered { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/shipment-deletion-sync.test.ts:54:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/shipment-deletion-sync.test.ts > Shipment Deletion Sync Invariant > should reset Order status to processing when the last shipment is deleted { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/shipment-deletion-sync.test.ts:83:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/shipment-deletion-sync.test.ts > Shipment Deletion Sync Invariant > should NOT update Order status if deleted shipment was not "Original" { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/shipment-deletion-sync.test.ts:109:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/shipment-deletion-sync.test.ts > Shipment Deletion Sync Invariant > should downgrade Order status to shipped (partially-fulfilled) when the only delivered shipment is deleted but another remains shipped { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/shipment-deletion-sync.test.ts:136:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error ✓ app/api/dashboard/tax-classes/route.test.ts > Tax Classes API Route > POST > should create a tax class and return success response ✓ app/api/dashboard/tax-classes/route.test.ts > Tax Classes API Route > POST > should return 400 for invalid data ✓ app/api/dashboard/tax-classes/route.test.ts > Tax Classes API Route > PUT > should update a tax class and return success response ✓ app/api/dashboard/tax-classes/route.test.ts > Tax Classes API Route > PUT > should return 400 if ID is missing ✓ app/api/dashboard/tax-classes/route.test.ts > Tax Classes API Route > DELETE > should delete a tax class and return success response ✓ app/api/dashboard/tax-classes/route.test.ts > Tax Classes API Route > DELETE > should return 400 if ID is missing ✓ app/api/dashboard/tax-classes/route.test.ts > Tax Classes API Route > Security Pattern (Proper Pattern) > should throw NEXT_REDIRECT when requireAdmin redirects ✓ components/shared/components/detail/EntityDetailActions.test.tsx > EntityDetailActions > renders inline actions by default ✓ components/shared/components/detail/EntityDetailActions.test.tsx > EntityDetailActions > renders additional actions ✓ components/shared/components/detail/EntityDetailActions.test.tsx > EntityDetailActions > calls onClick when action button is clicked ✓ components/shared/components/detail/EntityDetailActions.test.tsx > EntityDetailActions > renders as dropdown when variant is 'dropdown' and has enough actions ✓ components/shared/components/detail/EntityDetailActions.test.tsx > EntityDetailActions > filters out null actions ✓ components/shared/components/detail/EntityDetailActions.test.tsx > EntityDetailActions > renders destructive button for delete action ✓ components/shared/components/detail/EntityDetailActions.test.tsx > EntityDetailActions > renders inline when variant is 'dropdown' but actions are <= 2 ✓ components/shared/components/detail/EntityDetailActions.test.tsx > EntityDetailActions > renders additional actions with icons in inline variant ✓ components/shared/components/detail/EntityDetailActions.test.tsx > EntityDetailActions > renders action with href but no icon ✓ components/shared/components/detail/EntityDetailActions.test.tsx > EntityDetailActions > renders dropdown and handles clicks when variant is 'dropdown' ✓ tests/components/ui/quantity-input.test.tsx > QuantityInput > renders with default value ✓ tests/components/ui/quantity-input.test.tsx > QuantityInput > calls onValueChange when increase button is clicked ✓ tests/components/ui/quantity-input.test.tsx > QuantityInput > calls onValueChange when decrease button is clicked ✓ tests/components/ui/quantity-input.test.tsx > QuantityInput > disables decrease button when at min value ✓ tests/components/ui/quantity-input.test.tsx > QuantityInput > disables increase button when at max value ✓ tests/components/ui/quantity-input.test.tsx > QuantityInput > respects min boundary ✓ tests/components/ui/quantity-input.test.tsx > QuantityInput > respects max boundary ✓ tests/components/ui/quantity-input.test.tsx > QuantityInput > shows dynamic options based on max value ✓ tests/components/ui/quantity-input.test.tsx > QuantityInput > includes current value beyond 10 in options when within max ✓ tests/components/ui/quantity-input.test.tsx > QuantityInput > announces quantity changes via aria-live ✓ tests/components/ui/quantity-input.test.tsx > QuantityInput > has aria-hidden icons ✓ tests/components/ui/quantity-input.test.tsx > QuantityInput > includes correct localized Tooltip labels for accessibility ✓ tests/api/chat/messages.test.ts > Chat Message API Routes > POST /api/chat/messages > returns 401 if not authenticated ✓ tests/api/chat/messages.test.ts > Chat Message API Routes > POST /api/chat/messages > stores message in DB and publishes to Redis ✓ tests/api/chat/messages.test.ts > Chat Message API Routes > GET /api/chat/messages > returns 401 if not authenticated ✓ tests/api/chat/messages.test.ts > Chat Message API Routes > GET /api/chat/messages > returns recent messages from DB ✓ tests/api/chat/messages.test.ts > Chat Message API Routes > GET /api/chat/messages > searches messages globally across all rooms stderr | tests/api/dashboard/manufacturers/route.test.ts > Manufacturers API Route > POST > should return error when validation fails Error creating manufacturer: ZodError: [ { "code": "too_small", "minimum": 1, "type": "string", "inclusive": true, "exact": false, "message": "Firmenname ist erforderlich", "path": [ "companyName" ] }, { "validation": "email", "code": "invalid_string", "message": "Ungültige E-Mail-Adresse", "path": [ "email" ] } ] at Object.get error [as error] (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js:39:31) at ZodObject.parse (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js:114:22) at Module.POST (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/dashboard/manufacturers/route.ts:18:52) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/api/dashboard/manufacturers/route.test.ts:85:24 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { issues: [ { code: 'too_small', minimum: 1, type: 'string', inclusive: true, exact: false, message: 'Firmenname ist erforderlich', path: [Array] }, { validation: 'email', code: 'invalid_string', message: 'Ungültige E-Mail-Adresse', path: [Array] } ], addIssue: [Function (anonymous)], addIssues: [Function (anonymous)], errors: [ { code: 'too_small', minimum: 1, type: 'string', inclusive: true, exact: false, message: 'Firmenname ist erforderlich', path: [Array] }, { validation: 'email', code: 'invalid_string', message: 'Ungültige E-Mail-Adresse', path: [Array] } ] } ✓ tests/api/dashboard/manufacturers/route.test.ts > Manufacturers API Route > POST > should return success when manufacturer is created ✓ tests/api/dashboard/manufacturers/route.test.ts > Manufacturers API Route > POST > should return 400 when Content-Type is not application/json ✓ tests/api/dashboard/manufacturers/route.test.ts > Manufacturers API Route > POST > should return error when validation fails ✓ tests/api/dashboard/manufacturers/route.test.ts > Manufacturers API Route > PUT > should return success when manufacturer is updated ✓ tests/api/dashboard/manufacturers/route.test.ts > Manufacturers API Route > PUT > should return 400 when Content-Type is not application/json on PUT ✓ tests/api/dashboard/manufacturers/route.test.ts > Manufacturers API Route > PUT > should return 400 if ID is missing ✓ tests/api/dashboard/manufacturers/route.test.ts > Manufacturers API Route > DELETE > BEHAVIOR DOCUMENTATION: should NOT have DELETE method implemented ✓ tests/api/dashboard/manufacturers/route.test.ts > Manufacturers API Route > Security Pattern (Proper Pattern) > POST should throw NEXT_REDIRECT when requireAdmin redirects ✓ lib/internal/user.test.ts > user internal lib > getUserByEmailInternal > should return user when found and valid ✓ lib/internal/user.test.ts > user internal lib > getUserByEmailInternal > should return 404 when user not found ✓ lib/internal/user.test.ts > user internal lib > getUserByEmailInternal > should return 400 for invalid email input ✓ lib/internal/user.test.ts > user internal lib > getUserByEmailInternal > should return 400 if database returns data that fails SafeUserSchema validation ✓ lib/internal/user.test.ts > user internal lib > getUserByEmailInternal > should return 500 for generic database error ✓ lib/internal/user.test.ts > user internal lib > updateUserCustomerIdInternal > should update customer id successfully ✓ lib/internal/user.test.ts > user internal lib > updateUserCustomerIdInternal > should return 404 if user not found during update ✓ lib/internal/user.test.ts > user internal lib > updateUserCustomerIdInternal > should return 400 for invalid userId ✓ lib/internal/user.test.ts > user internal lib > updateUserCustomerIdInternal > should return 400 for invalid customerId (not a UUID) ✓ lib/internal/user.test.ts > user internal lib > updateUserCustomerIdInternal > should return 500 for generic database error stderr | actions/order-items.test.ts > orderItems actions > should throw error for negative price Validation error: [ { code: 'too_small', minimum: 0, type: 'number', inclusive: false, exact: false, message: 'Number must be greater than 0', path: [ 'order_item_price' ] } ] stderr | actions/order-items.test.ts > orderItems actions > should throw error for zero quantity Validation error: [ { code: 'too_small', minimum: 0, type: 'number', inclusive: false, exact: false, message: 'Number must be greater than 0', path: [ 'order_item_quantity' ] } ] stderr | actions/order-items.test.ts > orderItems actions > should throw error for zero price Validation error: [ { code: 'too_small', minimum: 0, type: 'number', inclusive: false, exact: false, message: 'Number must be greater than 0', path: [ 'order_item_price' ] } ] stderr | actions/order-items.test.ts > orderItems actions > should throw error for zero total Validation error: [ { code: 'too_small', minimum: 0, type: 'number', inclusive: false, exact: false, message: 'Number must be greater than 0', path: [ 'order_item_total' ] } ] stderr | actions/order-items.test.ts > orderItems actions > should throw error for invalid order_id (not a UUID) Validation error: [ { validation: 'uuid', code: 'invalid_string', message: 'Invalid uuid', path: [ 'order_id' ] } ] stderr | actions/order-items.test.ts > orderItems actions > should handle database errors Error creating order item: Error: DB error at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/order-items.test.ts:70:47 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/runBaseTests.3qpJUEJM.js:126:11 stderr | actions/order-items.test.ts > orderItems actions > should throw error if database returns no rows Error creating order item: Error: Failed to create order item at Module.createOrderItem (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/orders.ts:178:13) stderr | actions/order-items.test.ts > orderItems actions > Boundary Conditions (Schema Constraints) > should throw error if price exceeds maximum (100,000,000) Validation error: [ { code: 'too_big', maximum: 99999999.99, type: 'number', inclusive: true, exact: false, message: 'Number must be less than or equal to 99999999.99', path: [ 'order_item_price' ] } ] stderr | actions/order-items.test.ts > orderItems actions > Boundary Conditions (Schema Constraints) > should throw error if total exceeds maximum (100,000,000) Validation error: [ { code: 'too_big', maximum: 99999999.99, type: 'number', inclusive: true, exact: false, message: 'Number must be less than or equal to 99999999.99', path: [ 'order_item_total' ] } ] ✓ actions/order-items.test.ts > orderItems actions > should create an order item ✓ actions/order-items.test.ts > orderItems actions > should throw error for negative price ✓ actions/order-items.test.ts > orderItems actions > should throw error for zero quantity ✓ actions/order-items.test.ts > orderItems actions > should throw error for zero price ✓ actions/order-items.test.ts > orderItems actions > should throw error for zero total ✓ actions/order-items.test.ts > orderItems actions > should throw error for invalid order_id (not a UUID) ✓ actions/order-items.test.ts > orderItems actions > should handle database errors ✓ actions/order-items.test.ts > orderItems actions > should throw error if database returns no rows ✓ actions/order-items.test.ts > orderItems actions > Boundary Conditions (Schema Constraints) > should allow maximum valid price (99,999,999.99) ✓ actions/order-items.test.ts > orderItems actions > Boundary Conditions (Schema Constraints) > should throw error if price exceeds maximum (100,000,000) ✓ actions/order-items.test.ts > orderItems actions > Boundary Conditions (Schema Constraints) > should allow maximum valid total (99,999,999.99) ✓ actions/order-items.test.ts > orderItems actions > Boundary Conditions (Schema Constraints) > should throw error if total exceeds maximum (100,000,000) × actions/register.test.ts > register action > should return error if validation fails → expected { success: false, …(2) } to deeply equal { …(2) } × actions/register.test.ts > register action > should successfully register a new user → expected "spy" to be called with arguments: [ StringContaining{…}, …(1) ] Received: Number of calls: 0 × actions/register.test.ts > register action > should return error if email is already used (23505 conflict) → expected { success: false, …(2) } to deeply equal { …(2) } × actions/register.test.ts > register action > should return error for generic database failure → expected { success: false, …(2) } to deeply equal { …(2) } × actions/register.test.ts > register action > should return 429 when rate limit is exceeded → expected { success: false, …(2) } to deeply equal { …(2) } × actions/register.test.ts > register action > should return 500 when database insert returns no rows → expected { success: false, …(2) } to deeply equal { …(2) } × actions/register.test.ts > register action > should use "unknown" IP when x-forwarded-for header is missing → expected "spy" to be called with arguments: [ 'register:unknown', 3, 3600 ] Received: 1st spy call: Array [ - "register:unknown", + "action:anonymous", 3, 3600, ] Number of calls: 1 ✓ actions/register.test.ts > register action > should return 500 for 23505 error with different constraint stderr | actions/register.test.ts > register action > should successfully register a new user { error: TypeError: Cannot read properties of undefined (reading 'rows') at UserRepository.query (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:16:21) at UserRepository.queryOne (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:27:18), sql: '\n' + ' INSERT INTO users (firstname, lastname, email, password, name, role, customer_id)\n' + ' VALUES ($1, $2, $3, $4, $5, $6, $7)\n' + ' RETURNING *\n' + ' ', params: [ 'John', 'Doe', 'test@example.com', 'hashedPassword', 'John Doe', 'user', null ] } Database query execution failed { error: TypeError: Cannot read properties of undefined (reading 'rows') at UserRepository.query (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:16:21) at UserRepository.queryOne (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:27:18) } Server Action unexpected error stderr | actions/register.test.ts > register action > should return error if email is already used (23505 conflict) { error: TypeError: Cannot read properties of undefined (reading 'rows') at UserRepository.query (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:16:21) at UserRepository.queryOne (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:27:18), sql: '\n' + ' INSERT INTO users (firstname, lastname, email, password, name, role, customer_id)\n' + ' VALUES ($1, $2, $3, $4, $5, $6, $7)\n' + ' RETURNING *\n' + ' ', params: [ 'John', 'Doe', 'test@example.com', 'hashedPassword', 'John Doe', 'user', null ] } Database query execution failed { error: TypeError: Cannot read properties of undefined (reading 'rows') at UserRepository.query (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:16:21) at UserRepository.queryOne (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:27:18) } Server Action unexpected error stderr | actions/register.test.ts > register action > should return error for generic database failure { error: TypeError: Cannot read properties of undefined (reading 'rows') at UserRepository.query (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:16:21) at UserRepository.queryOne (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:27:18), sql: '\n' + ' INSERT INTO users (firstname, lastname, email, password, name, role, customer_id)\n' + ' VALUES ($1, $2, $3, $4, $5, $6, $7)\n' + ' RETURNING *\n' + ' ', params: [ 'John', 'Doe', 'test@example.com', 'hashedPassword', 'John Doe', 'user', null ] } Database query execution failed { error: TypeError: Cannot read properties of undefined (reading 'rows') at UserRepository.query (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:16:21) at UserRepository.queryOne (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:27:18) } Server Action unexpected error stderr | actions/register.test.ts > register action > should return 500 when database insert returns no rows { error: TypeError: Cannot read properties of undefined (reading 'rows') at UserRepository.query (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:16:21) at UserRepository.queryOne (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:27:18), sql: '\n' + ' INSERT INTO users (firstname, lastname, email, password, name, role, customer_id)\n' + ' VALUES ($1, $2, $3, $4, $5, $6, $7)\n' + ' RETURNING *\n' + ' ', params: [ 'John', 'Doe', 'test@example.com', 'hashedPassword', 'John Doe', 'user', null ] } Database query execution failed { error: TypeError: Cannot read properties of undefined (reading 'rows') at UserRepository.query (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:16:21) at UserRepository.queryOne (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:27:18) } Server Action unexpected error stderr | actions/register.test.ts > register action > should use "unknown" IP when x-forwarded-for header is missing { error: TypeError: Cannot read properties of undefined (reading 'rows') at UserRepository.query (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:16:21) at UserRepository.queryOne (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:27:18), sql: '\n' + ' INSERT INTO users (firstname, lastname, email, password, name, role, customer_id)\n' + ' VALUES ($1, $2, $3, $4, $5, $6, $7)\n' + ' RETURNING *\n' + ' ', params: [ 'John', 'Doe', 'test@example.com', null, 'John Doe', 'user', null ] } Database query execution failed { error: TypeError: Cannot read properties of undefined (reading 'rows') at UserRepository.query (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:16:21) at UserRepository.queryOne (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:27:18) } Server Action unexpected error stderr | actions/register.test.ts > register action > should return 500 for 23505 error with different constraint { error: TypeError: Cannot read properties of undefined (reading 'rows') at UserRepository.query (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:16:21) at UserRepository.queryOne (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:27:18), sql: '\n' + ' INSERT INTO users (firstname, lastname, email, password, name, role, customer_id)\n' + ' VALUES ($1, $2, $3, $4, $5, $6, $7)\n' + ' RETURNING *\n' + ' ', params: [ 'John', 'Doe', 'test@example.com', 'hashedPassword', 'John Doe', 'user', null ] } Database query execution failed { error: TypeError: Cannot read properties of undefined (reading 'rows') at UserRepository.query (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:16:21) at UserRepository.queryOne (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.ts:27:18) } Server Action unexpected error ✓ actions/catalog-auth.test.ts > Catalog Actions Authorization (FIXED) > should require admin for getProducts ✓ actions/catalog-auth.test.ts > Catalog Actions Authorization (FIXED) > should require admin for all protected catalog actions ✓ actions/catalog-auth.test.ts > Catalog Actions Authorization (FIXED) > Input Validation with clean output > should validate input for getAttributeValueOptions ✓ actions/catalog-auth.test.ts > Catalog Actions Authorization (FIXED) > Input Validation with clean output > should validate input for getProductById ✓ actions/catalog-auth.test.ts > Catalog Actions Authorization (FIXED) > Input Validation with clean output > should validate input for getProductAttributes ✓ actions/catalog-auth.test.ts > Catalog Actions Authorization (FIXED) > Input Validation with clean output > should validate input for getBrandById ✓ actions/catalog-auth.test.ts > Catalog Actions Authorization (FIXED) > Input Validation with clean output > should validate input for updateProduct ✓ actions/catalog-auth.test.ts > Catalog Actions Authorization (FIXED) > Input Validation with clean output > should validate input for deleteProduct ✓ actions/catalog-auth.test.ts > Catalog Actions Authorization (FIXED) > Input Validation with clean output > should validate input for updateCategory ✓ actions/catalog-auth.test.ts > Catalog Actions Authorization (FIXED) > Input Validation with clean output > should validate input for deleteCategory ✓ tests/app/dashboard/team/chat/page.test.tsx > TeamChatPage > renders the chat page correctly ✓ tests/app/dashboard/team/chat/page.test.tsx > TeamChatPage > shows group name input when multiple users are selected and creates a group ✓ tests/app/dashboard/team/chat/page.test.tsx > TeamChatPage > toggles sidebar on mobile stderr | tests/app/dashboard/team/chat/page.test.tsx > TeamChatPage > shows group name input when multiple users are selected and creates a group Warning: An update to TeamChatPage 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://reactjs.org/link/wrap-tests-with-act at TeamChatPage (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/(private)/dashboard/team/chat/page.tsx:46:67) Warning: An update to TeamChatPage 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://reactjs.org/link/wrap-tests-with-act at TeamChatPage (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/(private)/dashboard/team/chat/page.tsx:46:67) Warning: An update to TeamChatPage 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://reactjs.org/link/wrap-tests-with-act at TeamChatPage (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/(private)/dashboard/team/chat/page.tsx:46:67) Warning: An update to ScrollArea 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://reactjs.org/link/wrap-tests-with-act at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@radix-ui+react-scroll-area@1.2.10_@types+react-dom@18.3.7_@types+react@18.3.27__@types_5bcbc5a51cd2460e88b2b8df9637afcd/node_modules/@radix-ui/react-scroll-area/dist/index.mjs:32:7 at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/components/ui/scroll-area.tsx:8:56 at div at div at TeamChatPage (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/(private)/dashboard/team/chat/page.tsx:46:67) Warning: An update to ScrollArea 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://reactjs.org/link/wrap-tests-with-act at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@radix-ui+react-scroll-area@1.2.10_@types+react-dom@18.3.7_@types+react@18.3.27__@types_5bcbc5a51cd2460e88b2b8df9637afcd/node_modules/@radix-ui/react-scroll-area/dist/index.mjs:32:7 at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/components/ui/scroll-area.tsx:8:56 at div at div at div at TeamChatPage (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/(private)/dashboard/team/chat/page.tsx:46:67) Warning: An update to ScrollArea 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://reactjs.org/link/wrap-tests-with-act at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@radix-ui+react-scroll-area@1.2.10_@types+react-dom@18.3.7_@types+react@18.3.27__@types_5bcbc5a51cd2460e88b2b8df9637afcd/node_modules/@radix-ui/react-scroll-area/dist/index.mjs:32:7 at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/components/ui/scroll-area.tsx:8:56 at div at div at div at TeamChatPage (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/(private)/dashboard/team/chat/page.tsx:46:67) Warning: An update to ScrollArea 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://reactjs.org/link/wrap-tests-with-act at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@radix-ui+react-scroll-area@1.2.10_@types+react-dom@18.3.7_@types+react@18.3.27__@types_5bcbc5a51cd2460e88b2b8df9637afcd/node_modules/@radix-ui/react-scroll-area/dist/index.mjs:32:7 at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/components/ui/scroll-area.tsx:8:56 at div at div at div at TeamChatPage (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/(private)/dashboard/team/chat/page.tsx:46:67) Warning: An update to ScrollArea 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://reactjs.org/link/wrap-tests-with-act at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@radix-ui+react-scroll-area@1.2.10_@types+react-dom@18.3.7_@types+react@18.3.27__@types_5bcbc5a51cd2460e88b2b8df9637afcd/node_modules/@radix-ui/react-scroll-area/dist/index.mjs:32:7 at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/components/ui/scroll-area.tsx:8:56 at div at div at TeamChatPage (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/(private)/dashboard/team/chat/page.tsx:46:67) ✓ app/api/dashboard/brands/route.test.ts > Brands API Route > POST > should create a brand and return standardized response ✓ app/api/dashboard/brands/route.test.ts > Brands API Route > POST > should return 400 for invalid data ✓ app/api/dashboard/brands/route.test.ts > Brands API Route > PUT > should update a brand and return standardized response ✓ app/api/dashboard/brands/route.test.ts > Brands API Route > PUT > should return 400 if ID is missing ✓ app/api/dashboard/brands/route.test.ts > Brands API Route > DELETE > should delete a brand and return standardized response ✓ app/api/dashboard/brands/route.test.ts > Brands API Route > Security Gaps > should throw NEXT_REDIRECT when unauthorized (Top-level Auth) stderr | app/api/stripe/webhook/route.test.ts > Stripe Webhook Route > should return 401 on signature verification failure Error verifying webhook signature: Error: Invalid signature at Object. (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/stripe/webhook/route.test.ts:51:13) at Object.mockCall (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+spy@2.1.9/node_modules/@vitest/spy/dist/index.js:61:17) at Object.spy [as constructEvent] (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/tinyspy@3.0.2/node_modules/tinyspy/dist/index.js:45:80) at Module.POST (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/stripe/webhook/route.ts:15:31) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/stripe/webhook/route.test.ts:62:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) stdout | app/api/stripe/webhook/route.test.ts > Stripe Webhook Route > should handle checkout.session.expired event Handling expired checkout session: session_expired_123 stderr | app/api/stripe/webhook/route.test.ts > Stripe Webhook Route > should return 401 if stripe-signature header is missing Error verifying webhook signature: Error: No signature at Object. (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/stripe/webhook/route.test.ts:121:13) at Object.mockCall (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+spy@2.1.9/node_modules/@vitest/spy/dist/index.js:61:17) at Object.spy [as constructEvent] (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/tinyspy@3.0.2/node_modules/tinyspy/dist/index.js:45:80) at Module.POST (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/stripe/webhook/route.ts:15:31) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/stripe/webhook/route.test.ts:129:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) stdout | app/api/stripe/webhook/route.test.ts > Stripe Webhook Route > should return 200 for unhandled event types Unhandled event type payment_intent.succeeded stderr | app/api/stripe/webhook/route.test.ts > Stripe Webhook Route > should return 500 if fulfillCheckout fails Error fulfilling checkout: Error: Fulfillment error at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/stripe/webhook/route.test.ts:171:50 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/runBaseTests.3qpJUEJM.js:126:11 ✓ app/api/stripe/webhook/route.test.ts > Stripe Webhook Route > should process checkout.session.completed event ✓ app/api/stripe/webhook/route.test.ts > Stripe Webhook Route > should return 401 on signature verification failure ✓ app/api/stripe/webhook/route.test.ts > Stripe Webhook Route > should handle checkout.session.expired event ✓ app/api/stripe/webhook/route.test.ts > Stripe Webhook Route > should process checkout.session.async_payment_succeeded event ✓ app/api/stripe/webhook/route.test.ts > Stripe Webhook Route > should return 401 if stripe-signature header is missing ✓ app/api/stripe/webhook/route.test.ts > Stripe Webhook Route > should return 200 for unhandled event types ✓ app/api/stripe/webhook/route.test.ts > Stripe Webhook Route > should return 500 if fulfillCheckout fails stderr | tests/api/dashboard/attributes/route.test.ts > Attributes API Route - Standardized > POST returns validation error for missing fields Error creating attribute: ZodError: [ { "code": "too_small", "minimum": 1, "type": "string", "inclusive": true, "exact": false, "message": "Name ist erforderlich", "path": [ "name" ] }, { "expected": "'text' | 'number' | 'boolean' | 'select'", "received": "undefined", "code": "invalid_type", "path": [ "type" ], "message": "Required" } ] at Object.get error [as error] (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js:39:31) at ZodObject.parse (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js:114:22) at Module.POST (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/dashboard/attributes/route.ts:54:49) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/api/dashboard/attributes/route.test.ts:81:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) { issues: [ { code: 'too_small', minimum: 1, type: 'string', inclusive: true, exact: false, message: 'Name ist erforderlich', path: [Array] }, { expected: "'text' | 'number' | 'boolean' | 'select'", received: 'undefined', code: 'invalid_type', path: [Array], message: 'Required' } ], addIssue: [Function (anonymous)], addIssues: [Function (anonymous)], errors: [ { code: 'too_small', minimum: 1, type: 'string', inclusive: true, exact: false, message: 'Name ist erforderlich', path: [Array] }, { expected: "'text' | 'number' | 'boolean' | 'select'", received: 'undefined', code: 'invalid_type', path: [Array], message: 'Required' } ] } ✓ tests/api/dashboard/attributes/route.test.ts > Attributes API Route - Standardized > POST creates an attribute and returns standardized response ✓ tests/api/dashboard/attributes/route.test.ts > Attributes API Route - Standardized > POST returns validation error for missing fields ✓ tests/api/dashboard/attributes/route.test.ts > Attributes API Route - Standardized > PUT updates an attribute and returns standardized response ✓ tests/api/dashboard/attributes/route.test.ts > Attributes API Route - Standardized > DELETE deletes an attribute and returns standardized response ✓ tests/api/dashboard/attributes/route.test.ts > Attributes API Route - Standardized > Security Gaps (Auth Gap) > POST should throw NEXT_REDIRECT when requireAdmin redirects (Proper Pattern) ✓ lib/actions.test.ts > createServerAction > should successfully execute an action with valid input × lib/actions.test.ts > createServerAction > should fail if input validation fails → expected undefined to be defined × lib/actions.test.ts > createServerAction > should fail if authentication is required but missing → expected 500 to be 401 // Object.is equality × lib/actions.test.ts > createServerAction > should fail if admin role is required but user is not admin → expected 500 to be 403 // Object.is equality ✓ lib/actions.test.ts > createServerAction > should handle known AppErrors ✓ lib/actions.test.ts > createServerAction > should fail if rate limit is exceeded ✓ lib/actions.test.ts > createServerAction > should use 'anonymous' identifier for rate limiting when user is missing ✓ lib/actions.test.ts > createServerAction > should handle unexpected errors by logging and returning 500 stderr | lib/actions.test.ts > createServerAction > should fail if authentication is required but missing { error: Error: [vitest] No "requireAuth" export is defined on the "./auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:41:46) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.test.ts:70:20 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) { codeFrame: 'vi.mock(import("./auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | lib/actions.test.ts > createServerAction > should fail if admin role is required but user is not admin { error: Error: [vitest] No "requireAdmin" export is defined on the "./auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:39:46) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.test.ts:87:20 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) { codeFrame: 'vi.mock(import("./auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | lib/actions.test.ts > createServerAction > should handle unexpected errors by logging and returning 500 { error: Error: Unexpected at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.test.ts:146:44 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/runBaseTests.3qpJUEJM.js:126:11 } Server Action unexpected error stderr | tests/security/idor.test.ts > Security: IDOR and Missing RBAC > should allow a user to fetch their own orders { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/security/idor.test.ts:50:26 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/security/idor.test.ts > Security: IDOR and Missing RBAC > should NOT allow a user to fetch another user's orders { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/security/idor.test.ts:66:26 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/security/idor.test.ts > Security: IDOR and Missing RBAC > should allow an admin to fetch any user's orders { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/security/idor.test.ts:86:26 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/security/idor.test.ts > Security: IDOR and Missing RBAC > should NOT allow unauthenticated users to fetch any orders { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/security/idor.test.ts:94:26 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/security/idor.test.ts > Security: IDOR and Missing RBAC > getCustomers RBAC > should NOT allow a regular user to fetch customer list { error: Error: Unauthorized at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/security/idor.test.ts:103:49 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) } Server Action unexpected error stderr | tests/security/idor.test.ts > Security: IDOR and Missing RBAC > getCustomers RBAC > should allow an admin to fetch customer list { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/security/idor.test.ts:114:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/security/idor.test.ts > Security: IDOR and Missing RBAC > getCustomersAddressesByCustomerId IDOR > should NOT allow a user to fetch another user's addresses { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/security/idor.test.ts:128:28 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/security/idor.test.ts > Security: IDOR and Missing RBAC > getCustomersAddressesByCustomerId IDOR > should allow a user to fetch their own addresses { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/security/idor.test.ts:146:28 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error × tests/security/idor.test.ts > Security: IDOR and Missing RBAC > should allow a user to fetch their own orders → expected { success: false, …(2) } to not have property "error" × tests/security/idor.test.ts > Security: IDOR and Missing RBAC > should NOT allow a user to fetch another user's orders → expected { success: false, …(2) } to have property "error" with value 'Nicht autorisiert.' × tests/security/idor.test.ts > Security: IDOR and Missing RBAC > should allow an admin to fetch any user's orders → expected { success: false, …(2) } to not have property "error" × tests/security/idor.test.ts > Security: IDOR and Missing RBAC > should NOT allow unauthenticated users to fetch any orders → expected { success: false, …(2) } to have property "error" with value 'Nicht authentifiziert.' × tests/security/idor.test.ts > Security: IDOR and Missing RBAC > getCustomers RBAC > should NOT allow a regular user to fetch customer list → expected { success: false, …(2) } to have property "error" with value 'Nicht autorisiert.' × tests/security/idor.test.ts > Security: IDOR and Missing RBAC > getCustomers RBAC > should allow an admin to fetch customer list → Cannot convert undefined or null to object × tests/security/idor.test.ts > Security: IDOR and Missing RBAC > getCustomersAddressesByCustomerId IDOR > should NOT allow a user to fetch another user's addresses → expected { success: false, …(2) } to have property "error" with value 'Nicht autorisiert.' × tests/security/idor.test.ts > Security: IDOR and Missing RBAC > getCustomersAddressesByCustomerId IDOR > should allow a user to fetch their own addresses → expected { success: false, …(2) } to not have property "error" ✓ lib/cart.test.ts > cart library > getCartItems should return empty data by default ✓ lib/cart.test.ts > cart library > addToCart should return the added item ✓ lib/cart.test.ts > cart library > updateCartItem should return success and updated data ✓ lib/cart.test.ts > cart library > removeFromCart should return true ✓ lib/cart.test.ts > cart library > error handling > getCartItems should return error when timeout fails ✓ lib/cart.test.ts > cart library > error handling > getCartItems should return default error when non-Error is thrown ✓ lib/cart.test.ts > cart library > error handling > addToCart should return error when timeout fails ✓ lib/cart.test.ts > cart library > error handling > addToCart should return default error when non-Error is thrown ✓ lib/cart.test.ts > cart library > error handling > updateCartItem should return error when timeout fails ✓ lib/cart.test.ts > cart library > error handling > updateCartItem should return default error when non-Error is thrown ✓ lib/cart.test.ts > cart library > error handling > removeFromCart should return error when timeout fails ✓ lib/cart.test.ts > cart library > error handling > removeFromCart should return default error when non-Error is thrown ✓ components/shared/components/detail/EntityDetailHeader.test.tsx > EntityDetailHeader > renders correctly in sheet context ✓ components/shared/components/detail/EntityDetailHeader.test.tsx > EntityDetailHeader > renders correctly in panel context ✓ components/shared/components/detail/EntityDetailHeader.test.tsx > EntityDetailHeader > renders avatar with src ✓ components/shared/components/detail/EntityDetailHeader.test.tsx > EntityDetailHeader > renders avatar with src and default alt ✓ components/shared/components/detail/EntityDetailHeader.test.tsx > EntityDetailHeader > renders avatar with initials ✓ components/shared/components/detail/EntityDetailHeader.test.tsx > EntityDetailHeader > renders avatar with fallback node ✓ components/shared/components/detail/EntityDetailHeader.test.tsx > EntityDetailHeader > renders default avatar initials from title when avatar prop is provided but empty ✓ components/shared/components/detail/EntityDetailHeader.test.tsx > EntityDetailHeader > renders edit and delete actions ✓ components/shared/components/detail/EntityDetailHeader.test.tsx > EntityDetailHeader > renders custom actions ✓ components/shared/components/detail/EntityDetailHeader.test.tsx > EntityDetailHeader > renders mixed actions correctly stderr | tests/unit/lib/internal/user.test.ts > user internal utilities > getUserByEmailInternal > should return 400 error for invalid email input Validation error: [ { validation: 'email', code: 'invalid_string', message: 'Invalid email', path: [ 'email' ] } ] stderr | tests/unit/lib/internal/user.test.ts > user internal utilities > getUserByEmailInternal > should return 500 error when database query fails Error fetching user by email: Error: DB error at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/unit/lib/internal/user.test.ts:71:49 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) stderr | tests/unit/lib/internal/user.test.ts > user internal utilities > updateUserCustomerIdInternal > should return 400 for invalid UUID input for customerId Validation error: [ { validation: 'uuid', code: 'invalid_string', message: 'Invalid uuid', path: [ 'id' ] } ] stderr | tests/unit/lib/internal/user.test.ts > user internal utilities > updateUserCustomerIdInternal > should return 500 when database update fails Error updating user customer ID: Error: DB update error at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/unit/lib/internal/user.test.ts:141:49 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) ✓ tests/unit/lib/internal/user.test.ts > user internal utilities > getUserByEmailInternal > should return user data when user is found ✓ tests/unit/lib/internal/user.test.ts > user internal utilities > getUserByEmailInternal > should return 404 error when user is not found ✓ tests/unit/lib/internal/user.test.ts > user internal utilities > getUserByEmailInternal > should return 400 error for invalid email input ✓ tests/unit/lib/internal/user.test.ts > user internal utilities > getUserByEmailInternal > should return 500 error when database query fails ✓ tests/unit/lib/internal/user.test.ts > user internal utilities > updateUserCustomerIdInternal > should update user customer ID and return updated user ✓ tests/unit/lib/internal/user.test.ts > user internal utilities > updateUserCustomerIdInternal > should return 404 when user update fails (no row returned) ✓ tests/unit/lib/internal/user.test.ts > user internal utilities > updateUserCustomerIdInternal > should return 400 for invalid UUID input for customerId ✓ tests/unit/lib/internal/user.test.ts > user internal utilities > updateUserCustomerIdInternal > should return 500 when database update fails ✓ actions/auth.test.ts > Auth Actions (Migrated) > login > should successfully call signIn ✓ actions/auth.test.ts > Auth Actions (Migrated) > login > should handle CredentialsSignin error ✓ actions/auth.test.ts > Auth Actions (Migrated) > login > should handle generic AuthError ✓ lib/errors.test.ts > Application Error Classes > AppError (Base) > should create an instance with correct properties ✓ lib/errors.test.ts > Application Error Classes > AppError (Base) > should default to status code 500 ✓ lib/errors.test.ts > Application Error Classes > UnauthorizedError > should have status code 401 ✓ lib/errors.test.ts > Application Error Classes > UnauthorizedError > should have a default message ✓ lib/errors.test.ts > Application Error Classes > ForbiddenError > should have status code 403 ✓ lib/errors.test.ts > Application Error Classes > ForbiddenError > should have a default message ✓ lib/errors.test.ts > Application Error Classes > NotFoundError > should have status code 404 ✓ lib/errors.test.ts > Application Error Classes > NotFoundError > should have a default message ✓ lib/errors.test.ts > Application Error Classes > ValidationError > should have status code 400 ✓ lib/errors.test.ts > Application Error Classes > ValidationError > should include validation errors if provided ✓ lib/errors.test.ts > Application Error Classes > ValidationError > should have a default message ✓ lib/errors.test.ts > Application Error Classes > RateLimitError > should have status code 429 ✓ lib/errors.test.ts > Application Error Classes > RateLimitError > should have a default message ✓ lib/errors.test.ts > Application Error Classes > ConflictError > should have status code 409 ✓ lib/errors.test.ts > Application Error Classes > ConflictError > should have a default message ✓ lib/errors.test.ts > Application Error Classes > InternalServerError > should have status code 500 ✓ lib/errors.test.ts > Application Error Classes > InternalServerError > should have a default message ✓ lib/errors.test.ts > Application Error Classes > InvariantError > should maintain current behavior ✓ actions/auth.test.ts > Auth Actions (Migrated) > register > should create a user and then return success ✓ tests/components/dashboard/catalog/ProductAttributesManager.test.tsx > ProductAttributesManager > renders correctly and loads data ✓ actions/auth.test.ts > Auth Actions (Migrated) > register > should handle ConflictError (duplicate email) ✓ tests/components/dashboard/catalog/ProductAttributesManager.test.tsx > ProductAttributesManager > provides stable options references to UniversalCombobox ✓ tests/components/dashboard/catalog/ProductAttributesManager.test.tsx > ProductAttributesManager > has correct aria-label on delete button ✓ actions/auth.test.ts > Auth Actions (Migrated) > register > should handle unexpected database failures ✓ tests/components/dashboard/catalog/ProductAttributesManager.test.tsx > ProductAttributesManager > shows loading spinner during deletion ✓ tests/integration/stripe.test.ts > Stripe Integration > Configuration > should have valid Stripe configuration ✓ tests/integration/stripe.test.ts > Stripe Integration > Checkout Session Creation > should create valid checkout session data ✓ tests/integration/stripe.test.ts > Stripe Integration > Price Manipulation Prevention > should use server-side prices over client prices ✓ tests/integration/stripe.test.ts > Stripe Integration > Cart Validation > should validate cart items ✓ tests/integration/stripe.test.ts > Stripe Integration > Express Checkout Amount > should calculate correct dynamic amount ✓ tests/integration/stripe.test.ts > Stripe Integration > Error Response Format > should return proper error responses stderr | actions/user.test.ts > User Actions (Migrated) > getUsers > should return paginated users { error: Error: [vitest] No "requireAdmin" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:39:46) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/user.test.ts:43:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | actions/user.test.ts > User Actions (Migrated) > createUser > should successfully create a user { error: Error: [vitest] No "requireAdmin" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:39:46) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/user.test.ts:57:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | actions/user.test.ts > User Actions (Migrated) > createUser > should fail if password is missing { error: Error: [vitest] No "requireAdmin" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:39:46) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/user.test.ts:69:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | actions/user.test.ts > User Actions (Migrated) > updateUser > should successfully update a user { error: Error: [vitest] No "requireAdmin" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:39:46) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/user.test.ts:88:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | actions/user.test.ts > User Actions (Migrated) > updateUser > should fail if user not found { error: Error: [vitest] No "requireAdmin" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:39:46) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/user.test.ts:98:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | actions/user.test.ts > User Actions (Migrated) > deleteUser > should successfully delete a user { error: Error: [vitest] No "requireAdmin" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:39:46) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/user.test.ts:106:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | actions/user.test.ts > User Actions (Migrated) > getUserByEmail > should return user by email { error: Error: [vitest] No "requireAdmin" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:39:46) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/user.test.ts:115:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | actions/user.test.ts > User Actions (Migrated) > getUserByEmail > should 404 if user not found { error: Error: [vitest] No "requireAdmin" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:39:46) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/user.test.ts:121:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | actions/user.test.ts > User Actions (Migrated) > updateUserCustomerId > should successfully update customer id { error: Error: [vitest] No "requireAdmin" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:39:46) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/user.test.ts:130:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error × actions/user.test.ts > User Actions (Migrated) > getUsers > should return paginated users → expected false to be true // Object.is equality × actions/user.test.ts > User Actions (Migrated) > createUser > should successfully create a user → expected false to be true // Object.is equality × actions/user.test.ts > User Actions (Migrated) > createUser > should fail if password is missing → expected 'An unexpected error occurred' to contain 'Passwort' × actions/user.test.ts > User Actions (Migrated) > updateUser > should successfully update a user → expected false to be true // Object.is equality × actions/user.test.ts > User Actions (Migrated) > updateUser > should fail if user not found → expected 500 to be 404 // Object.is equality × actions/user.test.ts > User Actions (Migrated) > deleteUser > should successfully delete a user → expected false to be true // Object.is equality × actions/user.test.ts > User Actions (Migrated) > getUserByEmail > should return user by email → expected false to be true // Object.is equality × actions/user.test.ts > User Actions (Migrated) > getUserByEmail > should 404 if user not found → expected 500 to be 404 // Object.is equality × actions/user.test.ts > User Actions (Migrated) > updateUserCustomerId > should successfully update customer id → expected false to be true // Object.is equality ✓ lib/db/repositories/user.repository.test.ts > UserRepository > getUserById > should return a user by ID ✓ lib/db/repositories/user.repository.test.ts > UserRepository > getUserByEmail > should return a user by email ✓ lib/db/repositories/user.repository.test.ts > UserRepository > createUser > should insert a new user and return it ✓ lib/db/repositories/user.repository.test.ts > UserRepository > getUsers > should return paginated users ✓ lib/db/repositories/user.repository.test.ts > UserRepository > updateUser > should update user fields and return the updated user ✓ lib/db/repositories/user.repository.test.ts > UserRepository > updateUser > should return user by id if no fields are provided ✓ lib/db/repositories/user.repository.test.ts > UserRepository > deleteUser > should delete a user ✓ lib/db/repositories/user.repository.test.ts > UserRepository > updateUserCustomerId > should update customer_id using updateUser ✓ components/ui/StatusBadge.test.tsx > StatusBadge > renders the children ✓ components/ui/StatusBadge.test.tsx > StatusBadge > renders a dot when dotClassName is provided ✓ components/ui/StatusBadge.test.tsx > StatusBadge > applies custom className to the badge ✓ components/ui/StatusBadge.test.tsx > StatusBadge > Status Variants > renders correctly for status: success ✓ components/ui/StatusBadge.test.tsx > StatusBadge > Status Variants > renders correctly for status: warning ✓ components/ui/StatusBadge.test.tsx > StatusBadge > Status Variants > renders correctly for status: error ✓ components/ui/StatusBadge.test.tsx > StatusBadge > Status Variants > renders correctly for status: info ✓ components/ui/StatusBadge.test.tsx > StatusBadge > Status Variants > renders correctly for status: default ✓ components/ui/StatusBadge.test.tsx > StatusBadge > renders with both status and custom dotClassName ✓ components/ui/StatusBadge.test.tsx > StatusBadge > does not render a dot when no status or dotClassName is provided ✓ components/ui/StatusBadge.test.tsx > MappedStatusBadge > renders correctly for a mapped value ✓ components/ui/StatusBadge.test.tsx > MappedStatusBadge > renders correctly for another mapped value ✓ components/ui/StatusBadge.test.tsx > MappedStatusBadge > uses status as label for unmapped values ✓ components/ui/StatusBadge.test.tsx > MappedStatusBadge > uses fallbackLabel for empty status ✓ components/ui/StatusBadge.test.tsx > MappedStatusBadge > uses default fallbackLabel if none provided ✓ components/productpage/ProductPageGallery.test.tsx > ProductPageGallery > renders the main image (first image by default) ✓ components/productpage/ProductPageGallery.test.tsx > ProductPageGallery > renders thumbnails with correct aria-labels ✓ components/productpage/ProductPageGallery.test.tsx > ProductPageGallery > updates main image on thumbnail click ✓ components/productpage/ProductPageGallery.test.tsx > ProductPageGallery > updates main image on thumbnail hover (onMouseEnter) ✓ components/productpage/ProductPageGallery.test.tsx > ProductPageGallery > updates main image on thumbnail focus ✓ components/productpage/ProductPageGallery.test.tsx > ProductPageGallery > uses carousel layout when there are more than 5 images ✓ components/productpage/ProductPageGallery.test.tsx > ProductPageGallery > uses static list layout when there are 5 or fewer images ✓ components/productpage/ProductPageGallery.test.tsx > ProductPageGallery > applies active ring class to the selected thumbnail stderr | tests/api/dashboard/tax-classes/route.test.ts > Tax Classes API Route > POST > should return standardized 400 for invalid input Error creating tax class: ZodError: [ { "code": "too_big", "maximum": 100, "type": "number", "inclusive": true, "exact": false, "message": "Prozentsatz muss zwischen 0 und 100 liegen", "path": [ "percentage" ] }, { "code": "too_small", "minimum": 1, "type": "string", "inclusive": true, "exact": false, "message": "Name ist erforderlich", "path": [ "name" ] } ] at Object.get error [as error] (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js:39:31) at ZodObject.parse (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/zod@3.25.76/node_modules/zod/v3/types.js:114:22) at Module.POST (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/app/api/dashboard/tax-classes/route.ts:18:48) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/api/dashboard/tax-classes/route.test.ts:61:24 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { issues: [ { code: 'too_big', maximum: 100, type: 'number', inclusive: true, exact: false, message: 'Prozentsatz muss zwischen 0 und 100 liegen', path: [Array] }, { code: 'too_small', minimum: 1, type: 'string', inclusive: true, exact: false, message: 'Name ist erforderlich', path: [Array] } ], addIssue: [Function (anonymous)], addIssues: [Function (anonymous)], errors: [ { code: 'too_big', maximum: 100, type: 'number', inclusive: true, exact: false, message: 'Prozentsatz muss zwischen 0 und 100 liegen', path: [Array] }, { code: 'too_small', minimum: 1, type: 'string', inclusive: true, exact: false, message: 'Name ist erforderlich', path: [Array] } ] } ✓ tests/api/dashboard/tax-classes/route.test.ts > Tax Classes API Route > POST > should create a tax class and return standardized success response ✓ tests/api/dashboard/tax-classes/route.test.ts > Tax Classes API Route > POST > should return standardized 400 for invalid input ✓ tests/api/dashboard/tax-classes/route.test.ts > Tax Classes API Route > PUT > should update a tax class and return standardized success response ✓ tests/api/dashboard/tax-classes/route.test.ts > Tax Classes API Route > DELETE > should delete a tax class and return standardized success response ✓ tests/api/dashboard/tax-classes/route.test.ts > Tax Classes API Route > Security Pattern (Proper Pattern) > should throw NEXT_REDIRECT when requireAdmin redirects ✓ tests/consistency/settings-deletion-integrity.test.ts > Settings Deletion Referential Integrity Invariants > deleteSupplier > should prevent deleting a supplier that is referenced by products ✓ tests/consistency/settings-deletion-integrity.test.ts > Settings Deletion Referential Integrity Invariants > deleteSupplier > should allow deleting a supplier that is NOT referenced by products ✓ tests/consistency/settings-deletion-integrity.test.ts > Settings Deletion Referential Integrity Invariants > deleteManufacturer > should prevent deleting a manufacturer that is referenced by products ✓ tests/consistency/settings-deletion-integrity.test.ts > Settings Deletion Referential Integrity Invariants > deleteManufacturer > should allow deleting a manufacturer that is NOT referenced by products ✓ tests/consistency/settings-deletion-integrity.test.ts > Settings Deletion Referential Integrity Invariants > deleteEuResponsiblePerson > should prevent deleting an EU responsible person that is referenced by products ✓ tests/consistency/settings-deletion-integrity.test.ts > Settings Deletion Referential Integrity Invariants > deleteEuResponsiblePerson > should allow deleting an EU responsible person that is NOT referenced by products stderr | tests/consistency/fulfillment-idempotency.test.ts > fulfillCheckout Idempotency > enforces idempotent behavior Error creating order and items, rolled back: TypeError: Cannot read properties of undefined (reading 'id') at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:263:25 at Array.map () at Module.fulfillCheckout (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/internal/fulfillment.ts:254:64) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/consistency/fulfillment-idempotency.test.ts:136:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) × tests/consistency/fulfillment-idempotency.test.ts > fulfillCheckout Idempotency > enforces idempotent behavior → Cannot read properties of undefined (reading 'id') ✓ tests/components/dashboard/Chat.test.tsx > ChatWidget > renders correctly when not minimized ✓ tests/components/dashboard/Chat.test.tsx > ChatWidget > renders messages correctly ✓ actions/customer.test.ts > customer actions (singular) > getCustomerById > should return a customer when found ✓ actions/customer.test.ts > customer actions (singular) > getCustomerById > should throw error when customer not found ✓ actions/customer.test.ts > customer actions (singular) > getCustomerById > should throw validation error for invalid UUID ✓ actions/customer.test.ts > customer actions (singular) > getCustomerById > should handle generic database errors ✓ actions/customer.test.ts > customer actions (singular) > createCustomer > should create and return a new customer ✓ actions/customer.test.ts > customer actions (singular) > createCustomer > should throw validation error for invalid email ✓ actions/customer.test.ts > customer actions (singular) > createCustomer > should handle generic database errors during creation ✓ actions/customer.test.ts > customer actions (singular) > createCustomer > BEHAVIOR DOCUMENTATION: should succeed without admin authentication (Security Divergence) ✓ tests/components/dashboard/Chat.test.tsx > ChatWidget > calls sendMessage when input is submitted ✓ tests/components/dashboard/Chat.test.tsx > ChatWidget > does not render content when minimized × tests/consistency/catalog-deletion-integrity.test.ts > Catalog Deletion Referential Integrity Invariants > deleteProduct > should prevent deleting a product that is referenced in an order → expected { success: false, …(2) } to deeply equal { …(2) } × tests/consistency/catalog-deletion-integrity.test.ts > Catalog Deletion Referential Integrity Invariants > deleteProduct > should allow deleting a product that is NOT referenced in an order → expected { success: false, …(2) } to deeply equal { data: { success: true }, …(1) } × tests/consistency/catalog-deletion-integrity.test.ts > Catalog Deletion Referential Integrity Invariants > deleteCategory > should prevent deleting a category that has sub-categories → expected { success: false, …(2) } to deeply equal { …(2) } × tests/consistency/catalog-deletion-integrity.test.ts > Catalog Deletion Referential Integrity Invariants > deleteCategory > should prevent deleting a category that has products → expected { success: false, …(2) } to deeply equal { …(2) } × tests/consistency/catalog-deletion-integrity.test.ts > Catalog Deletion Referential Integrity Invariants > deleteBrand > should prevent deleting a brand that has products → expected { success: false, …(2) } to deeply equal { …(2) } × tests/consistency/catalog-deletion-integrity.test.ts > Catalog Deletion Referential Integrity Invariants > deleteTaxClass > should prevent deleting a tax class that has products → expected { success: false, …(2) } to deeply equal { …(2) } × tests/consistency/catalog-deletion-integrity.test.ts > Catalog Deletion Referential Integrity Invariants > deleteAttribute > should prevent deleting an attribute that is linked to products → expected { success: false, …(2) } to deeply equal { …(2) } stderr | tests/consistency/catalog-deletion-integrity.test.ts > Catalog Deletion Referential Integrity Invariants > deleteProduct > should prevent deleting a product that is referenced in an order { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/consistency/catalog-deletion-integrity.test.ts:35:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/consistency/catalog-deletion-integrity.test.ts > Catalog Deletion Referential Integrity Invariants > deleteProduct > should allow deleting a product that is NOT referenced in an order { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/consistency/catalog-deletion-integrity.test.ts:49:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/consistency/catalog-deletion-integrity.test.ts > Catalog Deletion Referential Integrity Invariants > deleteCategory > should prevent deleting a category that has sub-categories { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/consistency/catalog-deletion-integrity.test.ts:60:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/consistency/catalog-deletion-integrity.test.ts > Catalog Deletion Referential Integrity Invariants > deleteCategory > should prevent deleting a category that has products { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/consistency/catalog-deletion-integrity.test.ts:73:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/consistency/catalog-deletion-integrity.test.ts > Catalog Deletion Referential Integrity Invariants > deleteBrand > should prevent deleting a brand that has products { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/consistency/catalog-deletion-integrity.test.ts:86:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/consistency/catalog-deletion-integrity.test.ts > Catalog Deletion Referential Integrity Invariants > deleteTaxClass > should prevent deleting a tax class that has products { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/consistency/catalog-deletion-integrity.test.ts:99:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/consistency/catalog-deletion-integrity.test.ts > Catalog Deletion Referential Integrity Invariants > deleteAttribute > should prevent deleting an attribute that is linked to products { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/consistency/catalog-deletion-integrity.test.ts:112:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error ✓ tests/regression/actions-redirect.test.ts > Actions Redirect Regression > updateAttribute should re-throw NEXT_REDIRECT from requireAdmin ✓ tests/regression/actions-redirect.test.ts > Actions Redirect Regression > updateOrder should re-throw NEXT_REDIRECT from requireAdmin ✓ tests/regression/actions-redirect.test.ts > Actions Redirect Regression > createAttribute should re-throw NEXT_REDIRECT from requireAdmin ✓ tests/regression/actions-redirect.test.ts > Actions Redirect Regression > deleteAttribute should re-throw NEXT_REDIRECT from requireAdmin ✓ tests/regression/actions-redirect.test.ts > Actions Redirect Regression > updateUser should re-throw NEXT_REDIRECT from requireAdmin ✓ tests/regression/actions-redirect.test.ts > Actions Redirect Regression > getUsers should re-throw NEXT_REDIRECT from requireAdmin ✓ tests/regression/actions-redirect.test.ts > Actions Redirect Regression > deleteCustomer should re-throw NEXT_REDIRECT from requireAdmin ✓ tests/regression/actions-redirect.test.ts > Actions Redirect Regression > getCustomers should re-throw NEXT_REDIRECT from requireAdmin × tests/regression/actions-redirect.test.ts > Actions Redirect Regression > getOrders should re-throw NEXT_REDIRECT from requireAdmin → getOrders is not a function ✓ tests/regression/actions-redirect.test.ts > Actions Redirect Regression > getShipments should re-throw NEXT_REDIRECT from requireAdmin ✓ app/api/dashboard/manufacturers/route.test.ts > Manufacturers API Route > POST > should create a manufacturer and return DTO with timestamps ✓ app/api/dashboard/manufacturers/route.test.ts > Manufacturers API Route > POST > should return 400 for invalid data ✓ app/api/dashboard/manufacturers/route.test.ts > Manufacturers API Route > POST > should return 400 for missing Content-Type ✓ app/api/dashboard/manufacturers/route.test.ts > Manufacturers API Route > PUT > should update a manufacturer and return DTO × tests/regression/customer-invariants.test.ts > Customer Invariants - Regression Tests > createCustomer Invariants > SHOULD return 400 if email already exists (Unique Constraint) → expected { success: false, …(2) } to deeply equal { …(2) } × tests/regression/customer-invariants.test.ts > Customer Invariants - Regression Tests > createCustomer Invariants > SHOULD return 500 for generic database errors → expected { success: false, …(2) } to deeply equal { …(2) } × tests/regression/customer-invariants.test.ts > Customer Invariants - Regression Tests > updateCustomer Invariants > SHOULD return "Keine Änderungen vorgenommen" if no fields provided → expected undefined to be 'Keine Änderungen vorgenommen' // Object.is equality × tests/regression/customer-invariants.test.ts > Customer Invariants - Regression Tests > updateCustomer Invariants > SHOULD return 404 if customer not found on empty update → expected { success: false, …(2) } to deeply equal { error: 'Kunde nicht gefunden', …(1) } × tests/regression/customer-invariants.test.ts > Customer Invariants - Regression Tests > updateCustomer Invariants > SHOULD return 404 if customer not found during field update → expected { success: false, …(2) } to deeply equal { error: 'Kunde nicht gefunden', …(1) } × tests/regression/customer-invariants.test.ts > Customer Invariants - Regression Tests > deleteCustomer Invariants > SHOULD return 400 if customer has active orders (Foreign Key Constraint) → expected { success: false, …(2) } to deeply equal { …(2) } × tests/regression/customer-invariants.test.ts > Customer Invariants - Regression Tests > deleteCustomer Invariants > SHOULD return 500 for unexpected deletion errors → expected { success: false, …(2) } to deeply equal { …(2) } stderr | tests/regression/customer-invariants.test.ts > Customer Invariants - Regression Tests > createCustomer Invariants > SHOULD return 400 if email already exists (Unique Constraint) { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/customer-invariants.test.ts:43:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/customer-invariants.test.ts > Customer Invariants - Regression Tests > createCustomer Invariants > SHOULD return 500 for generic database errors { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/customer-invariants.test.ts:53:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/customer-invariants.test.ts > Customer Invariants - Regression Tests > updateCustomer Invariants > SHOULD return "Keine Änderungen vorgenommen" if no fields provided { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/customer-invariants.test.ts:74:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/customer-invariants.test.ts > Customer Invariants - Regression Tests > updateCustomer Invariants > SHOULD return 404 if customer not found on empty update { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/customer-invariants.test.ts:83:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/customer-invariants.test.ts > Customer Invariants - Regression Tests > updateCustomer Invariants > SHOULD return 404 if customer not found during field update { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/customer-invariants.test.ts:89:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/customer-invariants.test.ts > Customer Invariants - Regression Tests > deleteCustomer Invariants > SHOULD return 400 if customer has active orders (Foreign Key Constraint) { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/customer-invariants.test.ts:98:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/regression/customer-invariants.test.ts > Customer Invariants - Regression Tests > deleteCustomer Invariants > SHOULD return 500 for unexpected deletion errors { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/customer-invariants.test.ts:108:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error ✓ tests/api/presence.test.ts > Presence API Routes > POST /api/presence > returns 401 if not authenticated ✓ tests/api/presence.test.ts > Presence API Routes > POST /api/presence > updates presence in redis for authenticated user ✓ tests/api/presence.test.ts > Presence API Routes > GET /api/presence > returns 401 if not authenticated ✓ tests/api/presence.test.ts > Presence API Routes > GET /api/presence > returns list of online users from redis ✓ tests/components/dashboard/catalog/AttributeForm.test.tsx > AttributeForm > renders correctly for new attribute ✓ tests/components/dashboard/catalog/AttributeForm.test.tsx > AttributeForm > renders correctly with initial data ✓ tests/components/dashboard/catalog/AttributeForm.test.tsx > AttributeForm > submits createAttribute when creating a new attribute ✓ tests/components/dashboard/catalog/AttributeForm.test.tsx > AttributeForm > submits updateAttribute when editing an existing attribute ✓ tests/security/input-validation.test.ts > Input Validation Security Tests > LoginSchema > should fail if email exceeds 255 characters ✓ tests/security/input-validation.test.ts > Input Validation Security Tests > LoginSchema > should fail if callbackUrl exceeds 500 characters ✓ tests/security/input-validation.test.ts > Input Validation Security Tests > RegisterSchema > should fail if firstName exceeds 255 characters ✓ tests/security/input-validation.test.ts > Input Validation Security Tests > RegisterSchema > should fail if lastName exceeds 255 characters ✓ tests/security/input-validation.test.ts > Input Validation Security Tests > CheckoutSchema > should fail if firstName exceeds 255 characters ✓ tests/security/input-validation.test.ts > Input Validation Security Tests > CheckoutSchema > should fail if houseNumber exceeds 20 characters ✓ tests/security/input-validation.test.ts > Input Validation Security Tests > CheckoutSchema > should fail if postalCode exceeds 20 characters ✓ tests/security/input-validation.test.ts > Input Validation Security Tests > CheckoutSchema > should fail if phone exceeds 50 characters ✓ tests/security/input-validation.test.ts > Input Validation Security Tests > CartItemSchema > should fail if id exceeds 50 characters ✓ tests/security/input-validation.test.ts > Input Validation Security Tests > CartItemSchema > should fail if name exceeds 255 characters ✓ tests/security/input-validation.test.ts > Input Validation Security Tests > CartItemSchema > should fail if image URL exceeds 500 characters ✓ tests/components/dashboard/catalog/AttributeForm.test.tsx > AttributeForm > shows error toast on failure ✓ tests/components/dashboard/catalog/AttributeForm.test.tsx > AttributeForm > calls router.push when cancel button is clicked ✓ hooks/useAction.test.ts > useAction Hook > should handle successful actions ✓ hooks/useAction.test.ts > useAction Hook > should handle successful actions without a message ✓ hooks/useAction.test.ts > useAction Hook > should handle error actions ✓ hooks/useAction.test.ts > useAction Hook > should handle validation errors without showing a global toast by default ✓ hooks/useAction.test.ts > useAction Hook > should handle error actions with generic error ✓ hooks/useAction.test.ts > useAction Hook > should handle unexpected exceptions ✓ hooks/useAction.test.ts > useAction Hook > should handle non-Error exceptions × actions/catalog-boundary.test.ts > catalog boundary enforcement > input validation with invalid types > deleteProduct should reject invalid IDs → expected { success: false, …(2) } to deeply equal { …(2) } × actions/catalog-boundary.test.ts > catalog boundary enforcement > input validation with invalid types > deleteCategory should reject invalid IDs → expected { success: false, …(2) } to deeply equal { …(2) } × actions/catalog-boundary.test.ts > catalog boundary enforcement > input validation with invalid types > deleteBrand should reject invalid IDs → expected { success: false, …(2) } to deeply equal { …(2) } × actions/catalog-boundary.test.ts > catalog boundary enforcement > input validation with invalid types > deleteTaxClass should reject invalid IDs → expected { success: false, …(2) } to deeply equal { …(2) } × actions/catalog-boundary.test.ts > catalog boundary enforcement > input validation with invalid types > deleteAttribute should reject invalid IDs → expected { success: false, …(2) } to deeply equal { …(2) } × actions/catalog-boundary.test.ts > catalog boundary enforcement > input validation with invalid types > unlinkAttributeFromProduct should reject invalid IDs → expected { success: false, …(2) } to deeply equal { …(2) } ✓ actions/catalog-boundary.test.ts > catalog boundary enforcement > input validation with invalid types > linkAttributeToProduct should reject invalid data ✓ middleware.test.ts > middleware > should add x-request-id to response headers ✓ middleware.test.ts > middleware > should generate a new requestId if none is provided ✓ middleware.test.ts > middleware > should set userId in LoggerContext if authenticated ✓ middleware.test.ts > middleware > should redirect to login if no token ✓ middleware.test.ts > middleware > should allow admin everywhere × tests/security/attribute-brand-boundary.test.ts > Attribute and Brand API Boundary > Attribute Boundary > should include type and description in createAttribute and strip internal fields → expected undefined to deeply equal { id: 1, name: 'Color', …(6) } × tests/security/attribute-brand-boundary.test.ts > Attribute and Brand API Boundary > Attribute Boundary > should handle optional description in updateAttribute → expected undefined to deeply equal { id: 1, name: 'Size', …(6) } × tests/security/attribute-brand-boundary.test.ts > Attribute and Brand API Boundary > Brand Boundary > should include description and imageId in createBrand and strip internal fields → expected undefined to deeply equal { id: 1, name: 'Apple', …(4) } ✓ components/auth/LoginForm.test.tsx > LoginForm > renders the login form correctly ✓ actions/checkout.test.ts > checkout action > should return error if cart is empty ✓ actions/checkout.test.ts > checkout action > should create a stripe session using server-side prices ✓ actions/checkout.test.ts > checkout action > should return 429 error if rate limit is exceeded ✓ actions/checkout.test.ts > checkout action > should return error if product is not found ✓ actions/checkout.test.ts > checkout action > should return error for invalid price ✓ components/auth/LoginForm.test.tsx > LoginForm > shows validation errors for empty fields ✓ components/auth/LoginForm.test.tsx > LoginForm > shows error message from server ✓ app/api/dashboard/eu-responsible-persons/route.test.ts > EU Responsible Persons API Route > POST > should create an RP and return standardized response ✓ app/api/dashboard/eu-responsible-persons/route.test.ts > EU Responsible Persons API Route > PUT > should update an RP and return standardized response ✓ app/api/dashboard/eu-responsible-persons/route.test.ts > EU Responsible Persons API Route > DELETE > should delete an RP and return standardized response × components/auth/LoginForm.test.tsx > LoginForm > shows success message from server 1256ms → Unable to find an element with the text: Login successful. 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  
       Willkommen zurück!  
       E-Mail      Passwort          Passwort anzeigen       Login                  Neues Kundenkonto anlegen      Ignored nodes: comments, script, style    
       Willkommen zurück!  
       E-Mail      Passwort          Passwort anzeigen       LoginForm > displays URL error when OAuthAccountNotLinked is present ✓ lib/internal/customers.test.ts > customers internal library > getCustomerById > should return customer when found ✓ lib/internal/customers.test.ts > customers internal library > getCustomerById > should throw "Customer not found" when not found ✓ lib/internal/customers.test.ts > customers internal library > getCustomerById > should throw "Invalid input" on ZodError ✓ lib/internal/customers.test.ts > customers internal library > getCustomerById > should throw generic error ✓ lib/internal/customers.test.ts > customers internal library > createCustomer > should create customer successfully ✓ lib/internal/customers.test.ts > customers internal library > createCustomer > should throw "Invalid input" on ZodError ✓ lib/internal/customers.test.ts > customers internal library > createCustomer > should throw generic error × components/auth/LoginForm.test.tsx > LoginForm > shows loading state when form is submitted 1269ms → Unable to find an element with the text: Success. 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  
       Willkommen zurück!  
       E-Mail      Passwort          Passwort anzeigen       Login                  Neues Kundenkonto anlegen      Ignored nodes: comments, script, style    
       Willkommen zurück!  
       E-Mail      Passwort          Passwort anzeigen       SupplierDetail > renders basic supplier information ✓ components/shared/components/detail/SupplierDetail.test.tsx > SupplierDetail > generates correct edit URL ✓ components/shared/components/detail/SupplierDetail.test.tsx > SupplierDetail > handles missing registrationName or website ✓ components/shared/components/detail/SupplierDetail.test.tsx > SupplierDetail > renders correctly with snake_case data keys (fallbacks) ✓ components/shared/components/detail/SupplierDetail.test.tsx > SupplierDetail > handles showEdit prop ✓ components/shared/components/detail/SupplierDetail.test.tsx > SupplierDetail > verifies updatedAt fallbacks ✓ actions/customers.test.ts > Customer Actions (Migrated) > getCustomers > should return paginated customers ✓ actions/customers.test.ts > Customer Actions (Migrated) > createCustomer > should create a customer ✓ actions/customers.test.ts > Customer Actions (Migrated) > updateCustomer > should update a customer ✓ actions/customers.test.ts > Customer Actions (Migrated) > deleteCustomer > should delete a customer ✓ tests/security/headers.test.ts > Content Security Policy Configuration > should allow Stripe CDN scripts ✓ tests/security/headers.test.ts > Content Security Policy Configuration > should allow Stripe iframes ✓ tests/security/headers.test.ts > Content Security Policy Configuration > should allow Stripe images ✓ tests/security/headers.test.ts > Content Security Policy Configuration > should allow Stripe API connections ✓ tests/security/headers.test.ts > Content Security Policy Configuration > should block unauthorized scripts ✓ tests/security/headers.test.ts > Content Security Policy Configuration > should enforce security restrictions ✓ tests/security/headers.test.ts > Security Headers Configuration > should configure HSTS properly ✓ tests/security/headers.test.ts > Security Headers Configuration > should configure X-Frame-Options ✓ tests/security/headers.test.ts > Security Headers Configuration > should configure X-Content-Type-Options ✓ tests/security/headers.test.ts > Security Headers Configuration > should configure Referrer-Policy stderr | tests/regression/get-orders-consistency.test.ts > getOrders Consistency Regression Test > both getOrders versions should return compatible data structures for common fields { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/get-orders-consistency.test.ts:66:28 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error × tests/regression/get-orders-consistency.test.ts > getOrders Consistency Regression Test > both getOrders versions should return compatible data structures for common fields → getOrders is not a function ✓ components/cart/ExpressCheckout.test.tsx > ExpressCheckout Component > should render the express checkout container ✓ components/cart/ExpressCheckout.test.tsx > ExpressCheckout Component > should calculate dynamic amount from cart correctly ✓ components/cart/ExpressCheckout.test.tsx > ExpressCheckout Component > should load Stripe and create elements on mount ✓ components/cart/ExpressCheckout.test.tsx > ExpressCheckout Component > should create express checkout element with correct options ✓ components/cart/ExpressCheckout.test.tsx > ExpressCheckout Component > should mount the element to the correct container ✓ components/cart/ExpressCheckout.test.tsx > ExpressCheckout Component > should support Apple Pay, Google Pay, PayPal, and Klarna ✓ components/cart/ExpressCheckout.test.tsx > ExpressCheckout Component > should update amount when cart changes ✓ components/cart/ExpressCheckout.test.tsx > ExpressCheckout Component > should handle Stripe initialization failures gracefully ✓ components/cart/ExpressCheckout.test.tsx > ExpressCheckout Component > should clear existing element before mounting new one ✓ components/cart/ExpressCheckout.test.tsx > ExpressCheckout Component > should handle missing container gracefully ✓ tests/unit/actions/settings-optimization.test.ts > Settings Actions Optimization > updateSupplier now uses only 1 database query ✓ tests/unit/actions/settings-optimization.test.ts > Settings Actions Optimization > updateManufacturer now uses only 1 database query ✓ tests/unit/actions/settings-optimization.test.ts > Settings Actions Optimization > updateEuResponsiblePerson now uses only 1 database query ✓ tests/unit/actions/settings-optimization.test.ts > Settings Actions Optimization > updateSupplier should still work when no changes are provided ✓ tests/security/schema-limits.test.ts > Security: Schema Length Limits > ShipmentTracking > should reject tracking numbers longer than 255 characters ✓ tests/security/schema-limits.test.ts > Security: Schema Length Limits > ShipmentTracking > should reject carriers longer than 255 characters ✓ tests/security/schema-limits.test.ts > Security: Schema Length Limits > ShipmentTracking > should reject status longer than 100 characters ✓ tests/security/schema-limits.test.ts > Security: Schema Length Limits > ShipmentTracking > should also enforce limits in the DB schema ✓ tests/security/schema-limits.test.ts > Security: Schema Length Limits > ShipmentTracking > should also enforce limits in the DTO schema ✓ tests/security/schema-limits.test.ts > Security: Schema Length Limits > EuResponsiblePersonDTOSchema > should reject company names longer than 255 characters ✓ tests/security/schema-limits.test.ts > Security: Schema Length Limits > EuResponsiblePersonDTOSchema > should reject phone numbers longer than 50 characters ✓ tests/security/schema-limits.test.ts > Security: Schema Length Limits > EuResponsiblePersonDTOSchema > should reject addresses longer than 1000 characters ✓ tests/components/dashboard/catalog/BrandForm.test.tsx > BrandForm > renders correctly for new brand ✓ tests/components/dashboard/catalog/BrandForm.test.tsx > BrandForm > renders correctly with initial data ✓ tests/components/dashboard/catalog/BrandForm.test.tsx > BrandForm > submits createBrand when creating a new brand ✓ tests/security/rate-limit.test.ts > rateLimit Utility > should allow request if incremented value is within limit ✓ tests/security/rate-limit.test.ts > rateLimit Utility > should allow request if incremented value is exactly at limit ✓ tests/security/rate-limit.test.ts > rateLimit Utility > should block request if incremented value exceeds limit ✓ tests/security/rate-limit.test.ts > rateLimit Utility > should set expiration if TTL is -1 (missing TTL bug fix) ✓ tests/security/rate-limit.test.ts > rateLimit Utility > should fail safe (allow request) if redis operation throws an error ✓ tests/security/rate-limit.test.ts > rateLimit Utility > should handle missing redis client gracefully ✓ tests/components/dashboard/catalog/BrandForm.test.tsx > BrandForm > submits updateBrand when editing an existing brand ✓ tests/components/dashboard/catalog/BrandForm.test.tsx > BrandForm > shows error toast on failure ✓ components/auth/RegisterForm.test.tsx > RegisterForm > renders the register form correctly ✓ components/auth/RegisterForm.test.tsx > RegisterForm > shows validation errors for empty fields ✓ components/auth/RegisterForm.test.tsx > RegisterForm > shows error message from server via toast ✓ components/auth/RegisterForm.test.tsx > RegisterForm > shows success message and redirects on successful registration stderr | actions/login.test.ts > login action > should return 500 for unexpected errors { error: Error: Generic error at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/login.test.ts:106:19 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/runBaseTests.3qpJUEJM.js:126:11 } Server Action unexpected error × actions/login.test.ts > login action > should return error if validation fails → expected { success: false, …(2) } to deeply equal { success: false, …(3) } ✓ actions/login.test.ts > login action > should return success if signIn succeeds ✓ actions/login.test.ts > login action > should return 401 for CredentialsSignin error ✓ actions/login.test.ts > login action > should return 500 for other AuthError types ✓ actions/login.test.ts > login action > should return 500 for unexpected errors ✓ actions/login.test.ts > login action > should return 429 if rate limit is exceeded × tests/repo_audit.test.ts > Documentation Audit > should not have significantly overlapping sections between files → ENOENT: no such file or directory, open '/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/docs/DEVELOPMENT.md' ✓ tests/repo_audit.test.ts > Documentation Audit > should not have temporary or report directories at the root that are not in .gitignore ✓ tests/repo_audit.test.ts > Documentation Audit > should not have misplaced files at the root (should be in docs/ or lib/) ✓ tests/components/dashboard/catalog/TaxClassForm.test.tsx > TaxClassForm > renders correctly for creating a new tax class ✓ tests/components/dashboard/catalog/TaxClassForm.test.tsx > TaxClassForm > renders correctly for editing an existing tax class ✓ tests/components/dashboard/catalog/TaxClassForm.test.tsx > TaxClassForm > validates required fields ✓ tests/components/dashboard/catalog/TaxClassForm.test.tsx > TaxClassForm > submits the form correctly for new tax class ✓ tests/components/dashboard/catalog/TaxClassForm.test.tsx > TaxClassForm > submits the form correctly for updating an existing tax class ✓ components/productpage/ProductDetailsAccordion.test.tsx > ProductDetailsAccordion > renders correctly with plain text description ✓ components/productpage/ProductDetailsAccordion.test.tsx > ProductDetailsAccordion > renders correctly with HTML description and sanitizes it ✓ components/productpage/ProductDetailsAccordion.test.tsx > ProductDetailsAccordion > renders structured data correctly ✓ components/productpage/ProductDetailsAccordion.test.tsx > ProductDetailsAccordion > renders manufacturer info when expanded ✓ components/productpage/ProductDetailsAccordion.test.tsx > ProductDetailsAccordion > renders product safety info when expanded ✓ tests/components/dashboard/UniversalCombobox.test.tsx > UniversalCombobox > renders with label and placeholder when no value is selected ✓ tests/components/dashboard/UniversalCombobox.test.tsx > UniversalCombobox > renders selected option label ✓ tests/components/ui/form-status.test.tsx > FormStatus Components > FormStatus > returns null when no message is provided ✓ tests/components/ui/form-status.test.tsx > FormStatus Components > FormStatus > returns null when message is undefined ✓ tests/components/ui/form-status.test.tsx > FormStatus Components > FormStatus > renders the message and children when message is provided ✓ tests/components/ui/form-status.test.tsx > FormStatus Components > FormStatus > applies success variant classes ✓ tests/components/ui/form-status.test.tsx > FormStatus Components > FormStatus > applies error variant classes by default ✓ tests/components/ui/form-status.test.tsx > FormStatus Components > FormError > returns null when no message is provided ✓ tests/components/ui/form-status.test.tsx > FormStatus Components > FormError > renders the error message and alert icon ✓ tests/components/ui/form-status.test.tsx > FormStatus Components > FormSuccess > returns null when no message is provided ✓ tests/components/ui/form-status.test.tsx > FormStatus Components > FormSuccess > renders the success message and check icon ✓ tests/components/dashboard/UniversalCombobox.test.tsx > UniversalCombobox > opens options list when clicked ✓ tests/components/dashboard/UniversalCombobox.test.tsx > UniversalCombobox > selects an option and closes popover ✓ tests/performance/eu-responsible-persons-stability.test.tsx > EuResponsiblePersonsOverviewClient Referential Stability > should maintain stable handlers for DataTable and EntityDetailPanel across re-renders ✓ tests/components/dashboard/UniversalCombobox.test.tsx > UniversalCombobox > toggles/clears selection when clicking the same option twice ✓ tests/components/dashboard/UniversalCombobox.test.tsx > UniversalCombobox > shows empty message when no options match search ✓ tests/performance/tax-classes-stability.test.tsx > TaxClassesOverviewClient Referential Stability > should maintain stable handlers for DataTable and EntityDetailPanel across re-renders stderr | tests/consistency/product-group-invariant.test.ts > Product Group Invariant - Reproduction Test > SHOULD throw if product_group_id is set to null but product has variant attributes { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/consistency/product-group-invariant.test.ts:63:20 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | tests/consistency/product-group-invariant.test.ts > Product Group Invariant - Reproduction Test > SHOULD allow setting product_group_id to null if product has NO variant attributes { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/consistency/product-group-invariant.test.ts:103:20 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error ✓ tests/performance/users-stability.test.tsx > UsersOverviewClient Referential Stability > should maintain stable handlers for DataTable and EntityDetailPanel across re-renders × tests/consistency/product-group-invariant.test.ts > Product Group Invariant - Reproduction Test > SHOULD throw if product_group_id is set to null but product has variant attributes → expected { success: false, …(2) } to deeply equal { …(2) } × tests/consistency/product-group-invariant.test.ts > Product Group Invariant - Reproduction Test > SHOULD allow setting product_group_id to null if product has NO variant attributes → Cannot read properties of undefined (reading 'product_group_id') ✓ tests/performance/selective-selectors.test.tsx > Selective Zustand Selectors Performance > should NOT re-render when unrelated state (isOpen) changes if only items are selected ✓ tests/performance/selective-selectors.test.tsx > Selective Zustand Selectors Performance > should re-render when selected state (items) changes ✓ tests/performance/selective-selectors.test.tsx > Selective Zustand Selectors Performance > should NOT re-render when items change if only addToCart action is selected ✓ tests/components/ui/localization-a11y.test.tsx > UI Components Localization and Accessibility > Pagination > has German aria-label for nav ✓ tests/components/ui/localization-a11y.test.tsx > UI Components Localization and Accessibility > Pagination > has German labels for Previous and Next buttons ✓ tests/components/ui/localization-a11y.test.tsx > UI Components Localization and Accessibility > Breadcrumb > has German aria-label for nav ✓ tests/components/ui/localization-a11y.test.tsx > UI Components Localization and Accessibility > Spinner > has German aria-label ✓ tests/components/ui/localization-a11y.test.tsx > UI Components Localization and Accessibility > Button loading state > shows spinner when loading ✓ tests/performance/brands-stability.test.tsx > Brands Overview Performance: Referential Stability > should maintain referential stability of event handlers across re-renders ✓ tests/api/chat/read.test.ts > Chat Read API Route > PATCH /api/chat/read > returns 401 if not authenticated ✓ tests/api/chat/read.test.ts > Chat Read API Route > PATCH /api/chat/read > updates last_read_at in DB ✓ tests/api/chat/read.test.ts > Chat Read API Route > PATCH /api/chat/read > returns 400 if roomId is missing ✓ tests/components/ProductVariantSelector.test.tsx > ProductVariantSelector > renders correctly with semantic links ✓ tests/components/ProductVariantSelector.test.tsx > ProductVariantSelector > highlights and sets aria-current for the currently selected variant attributes ✓ tests/components/ProductVariantSelector.test.tsx > ProductVariantSelector > has correct hrefs for variant links ✓ tests/components/ProductVariantSelector.test.tsx > ProductVariantSelector > links to current product if it's already selected ✓ components/header/SearchBar.test.tsx > SearchBar > renders the search input ✓ components/header/SearchBar.test.tsx > SearchBar > updates input value on change ✓ components/header/SearchBar.test.tsx > SearchBar > shows results when typing more than 2 characters ✓ components/header/SearchBar.test.tsx > SearchBar > navigates to search page on submit stderr | components/header/SearchBar.test.tsx > SearchBar > handles search error gracefully Error searching products: Error: Search failed at Timeout._onTimeout (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/components/header/SearchBar.tsx:134:19) ✓ components/header/SearchBar.test.tsx > SearchBar > handles search error gracefully ✓ tests/components/ui/button.test.tsx > Button Component > Rendering > renders with default props ✓ tests/components/ui/button.test.tsx > Button Component > Rendering > renders as a button element by default ✓ tests/components/ui/button.test.tsx > Button Component > Rendering > applies custom className ✓ tests/components/ui/button.test.tsx > Button Component > Interactions > handles click events ✓ tests/components/ui/button.test.tsx > Button Component > Interactions > handles disabled state ✓ tests/components/ui/button.test.tsx > Button Component > Accessibility > has proper ARIA attributes ✓ tests/components/ui/button.test.tsx > Button Component > Accessibility > supports type attribute for forms ✓ tests/components/ui/button.test.tsx > Button Component > Accessibility > is focusable ✓ tests/components/ui/button.test.tsx > Button Component > Edge Cases > handles empty children ✓ tests/components/ui/button.test.tsx > Button Component > Edge Cases > handles complex children × tests/consistency/product-attribute-integrity.test.ts > Product Attribute Value Consistency > should prevent linking an attribute value to a different attribute ID (Invariant Enforcement) → expected { success: false, …(2) } to deeply equal { …(2) } × tests/consistency/product-attribute-integrity.test.ts > Product Attribute Value Consistency > should prevent linking a non-existent attribute value → expected { success: false, …(2) } to deeply equal { …(2) } stderr | actions/sales.test.ts > Sales Actions (Migrated) > getShipments > should return paginated shipments { error: Error: [vitest] No "requireAdmin" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:39:46) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/sales.test.ts:66:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | actions/sales.test.ts > Sales Actions (Migrated) > createShipment > should create a shipment { error: Error: [vitest] No "requireAdmin" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:39:46) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/sales.test.ts:88:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error × actions/sales.test.ts > Sales Actions (Migrated) > getShipments > should return paginated shipments → expected false to be true // Object.is equality × actions/sales.test.ts > Sales Actions (Migrated) > createShipment > should create a shipment → expected false to be true // Object.is equality stderr | actions/orders.test.ts > Order Actions (Migrated) > getOrders > should return paginated orders { error: Error: [vitest] No "requireAdmin" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:39:46) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/orders.test.ts:76:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error stderr | actions/orders.test.ts > Order Actions (Migrated) > deleteOrder > should successfully delete an order { error: Error: [vitest] No "requireAdmin" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:39:46) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/orders.test.ts:92:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error × actions/orders.test.ts > Order Actions (Migrated) > getOrders > should return paginated orders → expected false to be true // Object.is equality × actions/orders.test.ts > Order Actions (Migrated) > deleteOrder > should successfully delete an order → expected false to be true // Object.is equality ✓ components/shared/components/detail/ManufacturerDetail.test.tsx > ManufacturerDetail > renders basic manufacturer information ✓ components/shared/components/detail/ManufacturerDetail.test.tsx > ManufacturerDetail > generates correct edit URL ✓ components/shared/components/detail/ManufacturerDetail.test.tsx > ManufacturerDetail > handles missing address ✓ components/shared/components/detail/ManufacturerDetail.test.tsx > ManufacturerDetail > handles missing companyName ✓ components/shared/components/detail/ManufacturerDetail.test.tsx > ManufacturerDetail > handles address as an object ✓ components/shared/components/detail/ManufacturerDetail.test.tsx > ManufacturerDetail > handles showEdit prop ✓ tests/components/ui/button-simple.test.tsx > Button Component - Simple Tests > Rendering > renders with default props ✓ tests/components/ui/button-simple.test.tsx > Button Component - Simple Tests > Rendering > renders as a button element by default ✓ tests/components/ui/button-simple.test.tsx > Button Component - Simple Tests > Rendering > applies custom className ✓ tests/components/ui/button-simple.test.tsx > Button Component - Simple Tests > Rendering > applies variant classes ✓ tests/components/ui/button-simple.test.tsx > Button Component - Simple Tests > Rendering > applies size classes ✓ tests/components/ui/button-simple.test.tsx > Button Component - Simple Tests > Accessibility > has proper ARIA attributes ✓ tests/components/ui/button-simple.test.tsx > Button Component - Simple Tests > Accessibility > supports type attribute for forms ✓ tests/components/ui/button-simple.test.tsx > Button Component - Simple Tests > Accessibility > is focusable ✓ tests/components/ui/button-simple.test.tsx > Button Component - Simple Tests > Loading State > shows loading spinner when loading ✓ tests/components/ui/button-simple.test.tsx > Button Component - Simple Tests > Loading State > hides children when loading ✓ tests/unit/lib/rate-limit.test.ts > rateLimit > should allow request and set expiry on first request ✓ tests/unit/lib/rate-limit.test.ts > rateLimit > should allow request and NOT set expiry on subsequent request if TTL exists ✓ tests/unit/lib/rate-limit.test.ts > rateLimit > should set expiry on subsequent request if TTL is missing (-1) ✓ tests/unit/lib/rate-limit.test.ts > rateLimit > should deny request if limit is exceeded ✓ tests/unit/lib/rate-limit.test.ts > rateLimit > should fail safe (allow) if redis throws stderr | tests/consistency/shipment-payment-consistency.test.ts > Shipment-Payment Consistency Invariant > SHOULD enforce payment_status check when promoting order status via shipment creation { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/consistency/shipment-payment-consistency.test.ts:60:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error × tests/consistency/shipment-payment-consistency.test.ts > Shipment-Payment Consistency Invariant > SHOULD enforce payment_status check when promoting order status via shipment creation → expected undefined to be defined ✓ lib/api-response.test.ts > lib/api-response > isJsonRequest > should return true if content-type is application/json ✓ lib/api-response.test.ts > lib/api-response > isJsonRequest > should return true if content-type includes application/json ✓ lib/api-response.test.ts > lib/api-response > isJsonRequest > should return false if content-type is missing ✓ lib/api-response.test.ts > lib/api-response > isJsonRequest > should return false if content-type is not application/json ✓ lib/api-response.test.ts > lib/api-response > successResponse > should return a 200 JSON response by default ✓ lib/api-response.test.ts > lib/api-response > successResponse > should return a custom status code ✓ lib/api-response.test.ts > lib/api-response > errorResponse > should return an error response with the given status code ✓ lib/api-response.test.ts > lib/api-response > errorResponse > should include details if provided ✓ components/cart/CartItemList.test.tsx > CartItemList Accessibility > renders cart items with correct ARIA labels when quantity > 1 ✓ components/cart/CartItemList.test.tsx > CartItemList Accessibility > renders 'Produkt löschen' label when quantity is 1 ✓ components/cart/CartItemList.test.tsx > CartItemList Accessibility > announces quantity changes via aria-live stderr | actions/customer-address.test.ts > Customer Address Actions (Migrated) > getCustomerAddressById > should return an address for admin { error: Error: [vitest] No "requireAdmin" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:39:46) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/actions/customer-address.test.ts:56:22 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error × actions/customer-address.test.ts > Customer Address Actions (Migrated) > getCustomerAddressById > should return an address for admin → expected false to be true // Object.is equality ✓ actions/customer-address.test.ts > Customer Address Actions (Migrated) > getCustomersAddressesByCustomerId > should return addresses if authorized (own customer id) ✓ actions/customer-address.test.ts > Customer Address Actions (Migrated) > getCustomersAddressesByCustomerId > should fail if unauthorized (different customer id) ✓ schemas/index.test.ts > LoginSchema > should validate a correct login object ✓ schemas/index.test.ts > LoginSchema > should fail if email is invalid ✓ schemas/index.test.ts > LoginSchema > should fail if password is empty ✓ schemas/index.test.ts > LoginSchema > should accept optional callbackUrl ✓ schemas/index.test.ts > RegisterSchema > should validate a correct registration object ✓ schemas/index.test.ts > RegisterSchema > should fail if firstName is less than 2 characters ✓ schemas/index.test.ts > RegisterSchema > should fail if lastName is less than 2 characters ✓ schemas/index.test.ts > RegisterSchema > should fail if email is invalid ✓ schemas/index.test.ts > RegisterSchema > should fail if password is less than 6 characters ✓ tests/unit/lib/auth-logic-extra.test.ts > auth-logic extra coverage > should return null and log error when database connection fails ✓ tests/unit/lib/auth-logic-extra.test.ts > auth-logic extra coverage > should return null when input validation fails ✓ tests/unit/lib/auth-logic-extra.test.ts > auth-logic extra coverage > should return null and use dummy hash when user is not found (Timing Protection) ✓ components/shared/components/detail/ShipmentDetail.test.tsx > ShipmentDetail > renders basic shipment information ✓ components/shared/components/detail/ShipmentDetail.test.tsx > ShipmentDetail > renders activity timeline ✓ components/shared/components/detail/ShipmentDetail.test.tsx > ShipmentDetail > handles missing origin and destination ✓ components/shared/components/detail/ShipmentDetail.test.tsx > ShipmentDetail > handles camelCase data keys ✓ components/shared/components/detail/ShipmentDetail.test.tsx > ShipmentDetail > handles last_updated_at fallback ✓ tests/unit/lib/auth-logic-extra.test.ts > auth-logic extra coverage > should return null when user has no password ✓ tests/unit/lib/auth-logic-extra.test.ts > auth-logic extra coverage > should release client when an error occurs after connection ✓ tests/security-policy.test.ts > Security Policy Enforcement > Password Length Policy > should reject passwords longer than 72 characters in LoginSchema ✓ tests/security-policy.test.ts > Security Policy Enforcement > Password Length Policy > should accept passwords up to 72 characters in LoginSchema ✓ tests/security-policy.test.ts > Security Policy Enforcement > Password Length Policy > should reject passwords longer than 72 characters in RegisterSchema ✓ tests/security-policy.test.ts > Security Policy Enforcement > Password Length Policy > should accept passwords up to 72 characters in RegisterSchema ✓ tests/security-policy.test.ts > Security Policy Enforcement > Password Length Policy > should reject passwords longer than 72 characters in UserSchema ✓ tests/security-policy.test.ts > Security Policy Enforcement > Password Length Policy > should accept passwords up to 72 characters in UserSchema ✓ tests/components/dashboard/UniversalInput.test.tsx > UniversalInput > renders as an input field by default ✓ tests/components/dashboard/UniversalInput.test.tsx > UniversalInput > renders as a textarea when isTextarea is true ✓ tests/components/dashboard/UniversalInput.test.tsx > UniversalInput > updates value correctly on change (input) ✓ tests/components/dashboard/UniversalInput.test.tsx > UniversalInput > updates value correctly on change (textarea) ✓ tests/components/dashboard/UniversalInput.test.tsx > UniversalInput > applies required attribute when required is true ✓ tests/components/dashboard/UniversalInput.test.tsx > UniversalInput > has the correct name attribute ✓ tests/components/dashboard/UniversalInput.test.tsx > UniversalInput > respects the type prop for inputs ✓ tests/performance/eu-responsible-persons-ssr.test.tsx > EU Responsible Persons Overview Performance: SSR Refactor > should fetch responsible persons on the server and pass them to the client component ✓ tests/performance/eu-responsible-persons-ssr.test.tsx > EU Responsible Persons Overview Performance: SSR Refactor > should use default parameters when none are provided in URL stderr | tests/regression/shipment-order-invariant.test.ts > Shipment-Order Status Invariant > SHOULD NOT promote an UNPAID order to SHIPPED via shipment creation { error: Error: [vitest] No "authorize" export is defined on the "@/lib/auth-utils" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: at VitestMocker.createError (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:321:19) at Object.get (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/execute.2pr0rHgK.js:389:22) at Module.action (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/actions.ts:44:32) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/tests/regression/shipment-order-invariant.test.ts:60:5 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:5 at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:11) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) { codeFrame: 'vi.mock(import("@/lib/auth-utils"), async (importOriginal) => {\n' + ' const actual = await importOriginal()\n' + ' return {\n' + ' ...actual,\n' + ' // your mocked methods\n' + ' }\n' + '})' } } Server Action unexpected error × tests/regression/shipment-order-invariant.test.ts > Shipment-Order Status Invariant > SHOULD NOT promote an UNPAID order to SHIPPED via shipment creation → expected undefined to be defined ✓ components/shared/components/detail/BrandDetail.test.tsx > BrandDetail > renders basic brand information ✓ components/shared/components/detail/BrandDetail.test.tsx > BrandDetail > renders with inaktiv status ✓ components/shared/components/detail/BrandDetail.test.tsx > BrandDetail > handles missing description and is_active ✓ components/shared/components/detail/BrandDetail.test.tsx > BrandDetail > generates correct edit URL ✓ components/shared/components/detail/BrandDetail.test.tsx > BrandDetail > renders ActivityTimeline with correct dates ✓ tests/performance/attributes-stability.test.tsx > AttributesOverviewClient Referential Stability > should maintain stable handlers for DataTable across re-renders ✓ components/shared/components/detail/ProductDetail.test.tsx > ProductDetail > renders basic product information ✓ components/shared/components/detail/ProductDetail.test.tsx > ProductDetail > handles missing optional fields ✓ components/shared/components/detail/ProductDetail.test.tsx > ProductDetail > generates correct edit URL ✓ components/shared/components/detail/ProductDetail.test.tsx > ProductDetail > handles missing image ✓ components/shared/components/detail/ProductDetail.test.tsx > ProductDetail > handles showEdit prop ✓ tests/performance/manufacturers-ssr.test.tsx > Manufacturers Overview Performance: SSR Refactor > should fetch manufacturers on the server and pass them to the client component ✓ tests/performance/manufacturers-ssr.test.tsx > Manufacturers Overview Performance: SSR Refactor > should use default parameters when none are provided in URL ✓ tests/performance/suppliers-stability.test.tsx > SuppliersOverviewClient Referential Stability > should maintain stable handlers for DataTable across re-renders ✓ lib/auth-utils.test.ts > auth-utils > requireAuth > should return session if user is authenticated ✓ lib/auth-utils.test.ts > auth-utils > requireAuth > should redirect to login if user is not authenticated ✓ lib/auth-utils.test.ts > auth-utils > requireAuth > should redirect to login if session has no user ✓ lib/auth-utils.test.ts > auth-utils > requireAdmin > should return session if user is admin ✓ lib/auth-utils.test.ts > auth-utils > requireAdmin > should redirect to login if user is not authenticated ✓ lib/auth-utils.test.ts > auth-utils > requireAdmin > should redirect to account if user is not an admin ✓ components/productpage/ProductVariantSelector.test.tsx > ProductVariantSelector > renders all attribute groups and options as semantic links ✓ components/productpage/ProductVariantSelector.test.tsx > ProductVariantSelector > highlights the currently active attributes using Tailwind classes and aria-current ✓ components/productpage/ProductVariantSelector.test.tsx > ProductVariantSelector > links to the correct product when a different attribute is clicked ✓ components/productpage/ProductVariantSelector.test.tsx > ProductVariantSelector > links to correct product when a different size is clicked ✓ tests/components/dashboard/Presence.test.tsx > Presence Components > PresenceIndicator > renders the number of online users ✓ tests/components/dashboard/Presence.test.tsx > Presence Components > PresenceIndicator > renders zero if no users are online ✓ tests/components/dashboard/Presence.test.tsx > Presence Components > OnlineUsersList > renders a list of online user names ✓ tests/components/dashboard/Presence.test.tsx > Presence Components > OnlineUsersList > renders an empty state message if no users are online ✓ hooks/useMobile.test.ts > useIsMobile > should return false for desktop viewport ✓ hooks/useMobile.test.ts > useIsMobile > should return true for mobile viewport ✓ hooks/useMobile.test.ts > useIsMobile > should update state when viewport changes ✓ hooks/useMobile.test.ts > useIsMobile > should cleanup event listener on unmount ✓ tests/performance/attributes-ssr.test.tsx > Attributes Overview Performance: SSR Refactor > should fetch attributes on the server and pass them to the client component ✓ tests/performance/attributes-ssr.test.tsx > Attributes Overview Performance: SSR Refactor > should use default parameters when none are provided in URL ✓ tests/components/ProductPageGallery.test.tsx > ProductPageGallery > renders the main image with priority and sizes attributes (LCP optimization) ✓ tests/components/ProductPageGallery.test.tsx > ProductPageGallery > initializes with the first image and updates on thumbnail interaction ✓ tests/components/ui/PasswordInput.test.tsx > PasswordInput Component > renders as a password input by default ✓ tests/components/ui/PasswordInput.test.tsx > PasswordInput Component > toggles password visibility when the toggle button is clicked ✓ tests/components/ui/PasswordInput.test.tsx > PasswordInput Component > is disabled when the disabled prop is passed ✓ tests/components/ui/PasswordInput.test.tsx > PasswordInput Component > applies custom className to the input ✓ tests/components/ui/PasswordInput.test.tsx > PasswordInput Component > has proper ARIA labels on the toggle button ✓ tests/components/ui/PasswordInput.test.tsx > PasswordInput Component > has a tooltip trigger on the toggle button ✓ tests/performance/suppliers-ssr.test.tsx > Suppliers Overview Performance: SSR Refactor > should fetch suppliers on the server and pass them to the client component ✓ tests/performance/suppliers-ssr.test.tsx > Suppliers Overview Performance: SSR Refactor > should use default parameters when none are provided in URL ✓ tests/performance/brands-ssr.test.tsx > Brands Overview Performance: SSR Refactor > should fetch brands on the server and pass them to the client component ✓ tests/performance/brands-ssr.test.tsx > Brands Overview Performance: SSR Refactor > should use default parameters when none are provided in URL ✓ components/shared/components/detail/AttributeDetail.test.tsx > AttributeDetail > renders basic attribute information ✓ components/shared/components/detail/AttributeDetail.test.tsx > AttributeDetail > renders correct type labels ✓ components/shared/components/detail/AttributeDetail.test.tsx > AttributeDetail > generates correct edit URL ✓ components/shared/components/detail/AttributeDetail.test.tsx > AttributeDetail > handles inaktiv status ✓ tests/performance/users-ssr.test.tsx > Users Overview Performance: SSR Refactor > should fetch users on the server and pass them to the client component ✓ tests/performance/users-ssr.test.tsx > Users Overview Performance: SSR Refactor > should use default parameters when none are provided in URL ✓ components/dashboard/DashboardMetricPill.test.tsx > DashboardMetricPill > renders with basic props ✓ components/dashboard/DashboardMetricPill.test.tsx > DashboardMetricPill > renders value without label ✓ components/dashboard/DashboardMetricPill.test.tsx > DashboardMetricPill > renders with icon ✓ components/dashboard/DashboardMetricPill.test.tsx > DashboardMetricPill > renders online status correctly ✓ components/dashboard/DashboardMetricPill.test.tsx > DashboardMetricPill > applies variant classes correctly ✓ components/shared/components/detail/ContactInfo.test.tsx > ContactInfo > renders all contact information in default variant ✓ components/shared/components/detail/ContactInfo.test.tsx > ContactInfo > renders compact variant correctly ✓ components/shared/components/detail/ContactInfo.test.tsx > ContactInfo > renders only provided fields ✓ components/shared/components/detail/ContactInfo.test.tsx > ContactInfo > handles null values gracefully ✓ components/shared/components/detail/ContactInfo.test.tsx > ContactInfo > renders different badge variant for non-admin role ✓ components/shared/components/detail/UserDetail.test.tsx > UserDetail > renders basic user information ✓ components/shared/components/detail/UserDetail.test.tsx > UserDetail > handles missing names by using email as title ✓ components/shared/components/detail/UserDetail.test.tsx > UserDetail > formats last login date correctly ✓ components/shared/components/detail/UserDetail.test.tsx > UserDetail > generates correct edit URL ✓ components/shared/components/detail/EuResponsiblePersonDetail.test.tsx > EuResponsiblePersonDetail > renders basic responsible person information ✓ components/shared/components/detail/EuResponsiblePersonDetail.test.tsx > EuResponsiblePersonDetail > generates correct edit URL ✓ components/shared/components/detail/EuResponsiblePersonDetail.test.tsx > EuResponsiblePersonDetail > handles missing address ✓ components/shared/components/detail/EuResponsiblePersonDetail.test.tsx > EuResponsiblePersonDetail > respects showEdit prop stderr | components/dashboard/DashboardHeader.test.tsx > DashboardHeader > renders breadcrumbs with correct German labels and Link Error updating presence: TypeError: Cannot read properties of undefined (reading 'ok') at updatePresence (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/hooks/usePresenceStore.ts:33:21) { error: "Cannot read properties of undefined (reading 'ok')" } [CLIENT] Error updating presence Error fetching presence: TypeError: Cannot read properties of undefined (reading 'ok') at fetchPresenceData (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/hooks/usePresenceStore.ts:43:21) { error: "Cannot read properties of undefined (reading 'ok')" } [CLIENT] Error fetching presence Warning: An update to PresenceIndicator 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://reactjs.org/link/wrap-tests-with-act at PresenceIndicator (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/components/dashboard/PresenceIndicator.tsx:11:85) at div at div at div at div at DashboardHeader at Provider (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@radix-ui+react-context@1.1.2_@types+react@18.3.27_react@18.3.1/node_modules/@radix-ui/react-context/dist/index.mjs:27:15) at TooltipProvider (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@radix-ui+react-tooltip@1.2.8_@types+react-dom@18.3.7_@types+react@18.3.27__@types+reac_aced610d253c20559c8767bd1bee51a9/node_modules/@radix-ui/react-tooltip/dist/index.mjs:29:5) stderr | components/dashboard/DashboardHeader.test.tsx > DashboardHeader > renders status indicators Error updating presence: TypeError: Cannot read properties of undefined (reading 'ok') at updatePresence (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/hooks/usePresenceStore.ts:33:21) { error: "Cannot read properties of undefined (reading 'ok')" } [CLIENT] Error updating presence Error fetching presence: TypeError: Cannot read properties of undefined (reading 'ok') at fetchPresenceData (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/hooks/usePresenceStore.ts:43:21) { error: "Cannot read properties of undefined (reading 'ok')" } [CLIENT] Error fetching presence Warning: An update to PresenceIndicator 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://reactjs.org/link/wrap-tests-with-act at PresenceIndicator (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/components/dashboard/PresenceIndicator.tsx:11:85) at div at div at div at div at DashboardHeader at Provider (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@radix-ui+react-context@1.1.2_@types+react@18.3.27_react@18.3.1/node_modules/@radix-ui/react-context/dist/index.mjs:27:15) at TooltipProvider (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@radix-ui+react-tooltip@1.2.8_@types+react-dom@18.3.7_@types+react@18.3.27__@types+reac_aced610d253c20559c8767bd1bee51a9/node_modules/@radix-ui/react-tooltip/dist/index.mjs:29:5) stderr | components/dashboard/DashboardHeader.test.tsx > DashboardHeader > renders buttons with labels Error updating presence: TypeError: Cannot read properties of undefined (reading 'ok') at updatePresence (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/hooks/usePresenceStore.ts:33:21) { error: "Cannot read properties of undefined (reading 'ok')" } [CLIENT] Error updating presence Error fetching presence: TypeError: Cannot read properties of undefined (reading 'ok') at fetchPresenceData (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/hooks/usePresenceStore.ts:43:21) { error: "Cannot read properties of undefined (reading 'ok')" } [CLIENT] Error fetching presence Warning: An update to PresenceIndicator 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://reactjs.org/link/wrap-tests-with-act at PresenceIndicator (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/components/dashboard/PresenceIndicator.tsx:11:85) at div at div at div at div at DashboardHeader at Provider (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@radix-ui+react-context@1.1.2_@types+react@18.3.27_react@18.3.1/node_modules/@radix-ui/react-context/dist/index.mjs:27:15) at TooltipProvider (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@radix-ui+react-tooltip@1.2.8_@types+react-dom@18.3.7_@types+react@18.3.27__@types+reac_aced610d253c20559c8767bd1bee51a9/node_modules/@radix-ui/react-tooltip/dist/index.mjs:29:5) ✓ components/dashboard/DashboardHeader.test.tsx > DashboardHeader > renders breadcrumbs with correct German labels and Link ✓ components/dashboard/DashboardHeader.test.tsx > DashboardHeader > renders status indicators ✓ components/dashboard/DashboardHeader.test.tsx > DashboardHeader > renders buttons with labels ✓ tests/components/dashboard/users/columns-rendering.test.tsx > Users Table Columns Rendering > renders CopyButton in the ID column ✓ tests/components/dashboard/users/columns-rendering.test.tsx > Users Table Columns Rendering > renders CopyButton in the Email column ✓ tests/app/dashboard/team/blackboard/page.test.tsx > BlackboardPage > renders tasks in correct columns ✓ tests/app/dashboard/team/blackboard/page.test.tsx > BlackboardPage > does not show the 'Weiter' button (replaced by drag and drop) ✓ tests/app/dashboard/team/blackboard/page.test.tsx > BlackboardPage > calls updateTask when a task is dragged to a new column ✓ tests/components/ProductRecommendationCarouselCard.test.tsx > ProductRecommendationCarouselCard > is wrapped in React.memo ✓ tests/components/ProductRecommendationCarouselCard.test.tsx > ProductRecommendationCarouselCard > renders correctly with props ✓ tests/components/ProductRecommendationCarouselCard.test.tsx > ProductRecommendationCarouselCard > returns null if required props are missing ✓ lib/format.test.ts > format utilities > formatCurrency > formats number as EUR currency ✓ lib/format.test.ts > format utilities > formatCurrency > formats string as EUR currency ✓ lib/format.test.ts > format utilities > formatCurrency > returns empty string for undefined or null ✓ lib/format.test.ts > format utilities > formatDate > formats date object using de-DE locale ✓ lib/format.test.ts > format utilities > formatDate > formats date string using de-DE locale ✓ lib/format.test.ts > format utilities > formatDate > returns empty string for falsy values ✓ lib/format.test.ts > format utilities > formatDate > handles invalid date strings by returning the input string ✓ lib/format.test.ts > format utilities > formatDateTime > formats date object with time using de-DE locale ✓ lib/format.test.ts > format utilities > formatDateTime > returns empty string for falsy values ✓ lib/format.test.ts > format utilities > formatDateTime > handles invalid date strings by returning the input string ✓ components/ui/data-table.test.tsx > DataTable > renders data correctly ✓ components/ui/data-table.test.tsx > DataTable > prevents re-renders when props are referentially stable ✓ components/ui/data-table.test.tsx > DataTable > re-renders when data changes ✓ tests/consistency/order-item-calculation.test.ts > OrderItem Calculation Invariant > should allow creating an order item with correct calculation ✓ tests/consistency/order-item-calculation.test.ts > OrderItem Calculation Invariant > should NOT allow creating an order item with INCORRECT calculation (TOTAL MISMATCH) ✓ tests/consistency/order-item-calculation.test.ts > OrderItem Calculation Invariant > should NOT allow batch creating order items if ANY item has an incorrect calculation stderr | tests/security/chart-injection.test.tsx > ChartContainer CSS Injection > vulnerability: malicious config key can inject arbitrary CSS The width(0) and height(0) of chart should be greater than 0, please check the style of container, or the props width(100%) and height(100%), or add a minWidth(0) or minHeight(undefined) or use aspect(undefined) to control the height and width. stderr | tests/security/chart-injection.test.tsx > ChartContainer CSS Injection > vulnerability: malicious color value can inject arbitrary CSS The width(0) and height(0) of chart should be greater than 0, please check the style of container, or the props width(100%) and height(100%), or add a minWidth(0) or minHeight(undefined) or use aspect(undefined) to control the height and width. ✓ tests/security/chart-injection.test.tsx > ChartContainer CSS Injection > vulnerability: malicious id can inject arbitrary CSS ✓ tests/security/chart-injection.test.tsx > ChartContainer CSS Injection > vulnerability: malicious config key can inject arbitrary CSS ✓ tests/security/chart-injection.test.tsx > ChartContainer CSS Injection > vulnerability: malicious color value can inject arbitrary CSS ✓ components/shared/components/detail/AddressDisplay.test.tsx > AddressDisplay > renders full address correctly ✓ components/shared/components/detail/AddressDisplay.test.tsx > AddressDisplay > renders with custom title ✓ components/shared/components/detail/AddressDisplay.test.tsx > AddressDisplay > handles missing house_number or country ✓ components/shared/components/detail/AddressDisplay.test.tsx > AddressDisplay > renders empty state when no address is provided ✓ components/shared/components/detail/AddressDisplay.test.tsx > AddressDisplay > renders empty state when street is missing ✓ components/shared/components/detail/AddressDisplay.test.tsx > AddressDisplay > generates correct Google Maps link ✓ lib/action-response.test.ts > ActionResponse Utilities > actionSuccess > should create a successful response ✓ lib/action-response.test.ts > ActionResponse Utilities > actionSuccess > should allow custom status code ✓ lib/action-response.test.ts > ActionResponse Utilities > actionError > should create an error response ✓ lib/action-response.test.ts > ActionResponse Utilities > actionValidationError > should create a validation error response ✓ lib/action-response.test.ts > ActionResponse Utilities > formatZodErrors > should flatten zod errors correctly ✓ tests/performance-optimizations.test.tsx > Performance Optimizations > Component Memoization > OrderStatusBadge should be memoized ✓ tests/performance-optimizations.test.tsx > Performance Optimizations > Component Memoization > FulfillmentStatusBadge should be memoized ✓ tests/performance-optimizations.test.tsx > Performance Optimizations > Component Memoization > PaymentStatusBadge should be memoized ✓ tests/performance-optimizations.test.tsx > Performance Optimizations > Component Memoization > UniversalInput should be memoized stderr | lib/db/repositories/base.repository.test.ts > BaseRepository > should throw an error if the query fails { error: Error: Database error at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/lib/db/repositories/base.repository.test.ts:31:23 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/runBaseTests.3qpJUEJM.js:126:11, sql: 'SELECT * FROM test', params: undefined } Database query execution failed ✓ lib/db/repositories/base.repository.test.ts > BaseRepository > should execute a query through the pool ✓ lib/db/repositories/base.repository.test.ts > BaseRepository > should throw an error if the query fails ✓ lib/db/repositories/base.repository.test.ts > BaseRepository > queryOne > should return the first row if available ✓ lib/db/repositories/base.repository.test.ts > BaseRepository > queryOne > should return null if no rows are found ✓ components/shared/components/detail/CustomerDetail.test.tsx > CustomerDetail > renders basic customer information ✓ components/shared/components/detail/CustomerDetail.test.tsx > CustomerDetail > renders additional order information in timeline ✓ components/shared/components/detail/CustomerDetail.test.tsx > CustomerDetail > generates correct edit URL ✓ tests/security/product-xss-repro.test.tsx > ProductDetailsAccordion XSS vulnerability > sanitizes malicious HTML in description ✓ tests/security/product-xss-repro.test.tsx > ProductDetailsAccordion XSS vulnerability > renders safe HTML in description ✓ components/shared/components/detail/OrderDetail.test.tsx > OrderDetail > renders basic order information 1441ms ✓ components/shared/components/detail/OrderDetail.test.tsx > OrderDetail > renders addresses correctly ✓ tests/components/dashboard/EditLock.test.tsx > EditLockIndicator > renders nothing if not locked ✓ tests/components/dashboard/EditLock.test.tsx > EditLockIndicator > renders warning if locked by another user ✓ tests/components/dashboard/EditLock.test.tsx > EditLockIndicator > renders info if locked by current user stderr | tests/components/dashboard/HeaderAccessibility.test.tsx > DashboardHeader Accessibility > renders status indicators with role='status' and tabIndex=0 Error updating presence: TypeError: Cannot read properties of undefined (reading 'ok') at updatePresence (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/hooks/usePresenceStore.ts:33:21) { error: "Cannot read properties of undefined (reading 'ok')" } [CLIENT] Error updating presence Error fetching presence: TypeError: Cannot read properties of undefined (reading 'ok') at fetchPresenceData (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/hooks/usePresenceStore.ts:43:21) { error: "Cannot read properties of undefined (reading 'ok')" } [CLIENT] Error fetching presence Warning: An update to PresenceIndicator 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://reactjs.org/link/wrap-tests-with-act at PresenceIndicator (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/components/dashboard/PresenceIndicator.tsx:11:85) at div at div at div at div at DashboardHeader at div at Provider (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@radix-ui+react-context@1.1.2_@types+react@18.3.27_react@18.3.1/node_modules/@radix-ui/react-context/dist/index.mjs:27:15) at TooltipProvider (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@radix-ui+react-tooltip@1.2.8_@types+react-dom@18.3.7_@types+react@18.3.27__@types+reac_aced610d253c20559c8767bd1bee51a9/node_modules/@radix-ui/react-tooltip/dist/index.mjs:29:5) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/components/ui/sidebar.tsx:42:5 stderr | tests/components/dashboard/HeaderAccessibility.test.tsx > DashboardHeader Accessibility > contains the Benachrichtigungen button with an aria-label Error updating presence: TypeError: Cannot read properties of undefined (reading 'ok') at updatePresence (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/hooks/usePresenceStore.ts:33:21) { error: "Cannot read properties of undefined (reading 'ok')" } [CLIENT] Error updating presence Error fetching presence: TypeError: Cannot read properties of undefined (reading 'ok') at fetchPresenceData (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/hooks/usePresenceStore.ts:43:21) { error: "Cannot read properties of undefined (reading 'ok')" } [CLIENT] Error fetching presence Warning: An update to PresenceIndicator 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://reactjs.org/link/wrap-tests-with-act at PresenceIndicator (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/components/dashboard/PresenceIndicator.tsx:11:85) at div at div at div at div at DashboardHeader at div at Provider (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@radix-ui+react-context@1.1.2_@types+react@18.3.27_react@18.3.1/node_modules/@radix-ui/react-context/dist/index.mjs:27:15) at TooltipProvider (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@radix-ui+react-tooltip@1.2.8_@types+react-dom@18.3.7_@types+react@18.3.27__@types+reac_aced610d253c20559c8767bd1bee51a9/node_modules/@radix-ui/react-tooltip/dist/index.mjs:29:5) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/components/ui/sidebar.tsx:42:5 stderr | tests/components/dashboard/HeaderAccessibility.test.tsx > DashboardHeader Accessibility > contains the ThemeToggle with sr-only text Error updating presence: TypeError: Cannot read properties of undefined (reading 'ok') at updatePresence (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/hooks/usePresenceStore.ts:33:21) { error: "Cannot read properties of undefined (reading 'ok')" } [CLIENT] Error updating presence Error fetching presence: TypeError: Cannot read properties of undefined (reading 'ok') at fetchPresenceData (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/hooks/usePresenceStore.ts:43:21) { error: "Cannot read properties of undefined (reading 'ok')" } [CLIENT] Error fetching presence Warning: An update to PresenceIndicator 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://reactjs.org/link/wrap-tests-with-act at PresenceIndicator (/xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/components/dashboard/PresenceIndicator.tsx:11:85) at div at div at div at div at DashboardHeader at div at Provider (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@radix-ui+react-context@1.1.2_@types+react@18.3.27_react@18.3.1/node_modules/@radix-ui/react-context/dist/index.mjs:27:15) at TooltipProvider (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@radix-ui+react-tooltip@1.2.8_@types+react-dom@18.3.7_@types+react@18.3.27__@types+reac_aced610d253c20559c8767bd1bee51a9/node_modules/@radix-ui/react-tooltip/dist/index.mjs:29:5) at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/components/ui/sidebar.tsx:42:5 ✓ tests/auth-utils.test.ts > auth-utils > requireAuth > should redirect if no session ✓ tests/auth-utils.test.ts > auth-utils > requireAuth > should return session if authenticated ✓ tests/auth-utils.test.ts > auth-utils > requireAdmin > should redirect to login if no session ✓ tests/auth-utils.test.ts > auth-utils > requireAdmin > should redirect to account if user is not admin ✓ tests/auth-utils.test.ts > auth-utils > requireAdmin > should return session if user is admin ✓ tests/components/dashboard/HeaderAccessibility.test.tsx > DashboardHeader Accessibility > renders status indicators with role='status' and tabIndex=0 ✓ tests/components/dashboard/HeaderAccessibility.test.tsx > DashboardHeader Accessibility > contains the Benachrichtigungen button with an aria-label ✓ tests/components/dashboard/HeaderAccessibility.test.tsx > DashboardHeader Accessibility > contains the ThemeToggle with sr-only text ✓ tests/components/ui/button-enhanced.test.tsx > Button Component - Enhanced Tests > renders as a different element when asChild is true ✓ tests/components/ui/button-enhanced.test.tsx > Button Component - Enhanced Tests > merges classes correctly with asChild ✓ tests/components/ui/button-enhanced.test.tsx > Button Component - Enhanced Tests > handles loading state with asChild ✓ tests/components/ui/button-enhanced.test.tsx > Button Component - Enhanced Tests > passes other props to the underlying element ✓ tests/components/ui/button-enhanced.test.tsx > Button Component - Enhanced Tests > applies the cursor-wait class when loading ✓ components/productpage/ProductAvailability.test.tsx > ProductAvailability > renders 'Verfügbar' and delivery time when product is in stock and has a price ✓ components/productpage/ProductAvailability.test.tsx > ProductAvailability > renders 'Nicht verfügbar' when product is out of stock ✓ components/productpage/ProductAvailability.test.tsx > ProductAvailability > renders 'Nicht verfügbar' when product price is '0' ✓ components/productpage/AddToCartButton.test.tsx > AddToCartButton > renders the button correctly ✓ components/productpage/AddToCartButton.test.tsx > AddToCartButton > calls addToCart and shows success toast when clicked stderr | components/productpage/AddToCartButton.test.tsx > AddToCartButton > shows error toast when addToCart fails Error: Failed to add at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/components/productpage/AddToCartButton.test.tsx:61:41 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14 at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11 at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7) at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15) at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5) at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3) at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/runBaseTests.3qpJUEJM.js:126:11 { productId: '1', error: 'Failed to add', stack: 'Error: Failed to add\n' + ' at /xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/components/productpage/AddToCartButton.test.tsx:61:41\n' + ' at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:146:14\n' + ' at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:533:11\n' + ' at runWithTimeout (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:39:7)\n' + ' at runTest (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1056:17)\n' + ' at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15)\n' + ' at runSuite (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1205:15)\n' + ' at runFiles (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1262:5)\n' + ' at startTests (file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/@vitest+runner@2.1.9/node_modules/@vitest/runner/dist/index.js:1271:3)\n' + ' at file:///xur/xdr/home/jf/Arbeit/Websiten-Programmieren/Jomblo/node_modules/.pnpm/vitest@2.1.9_@types+node@20.19.30_@vitest+ui@2.1.9_jsdom@23.2.0/node_modules/vitest/dist/chunks/runBaseTests.3qpJUEJM.js:126:11' } [CLIENT] Add to cart error ✓ components/productpage/AddToCartButton.test.tsx > AddToCartButton > shows error toast when addToCart fails ✓ components/shared/components/detail/StatusBadges.test.tsx > StatusBadges > renders nothing when no badges are provided ✓ components/shared/components/detail/StatusBadges.test.tsx > StatusBadges > renders badges with labels only ✓ components/shared/components/detail/StatusBadges.test.tsx > StatusBadges > renders badges with label and value ✓ components/shared/components/detail/StatusBadges.test.tsx > StatusBadges > applies variant and color classes ✓ components/shared/components/detail/StatusBadges.test.tsx > StatusBadges > handles React nodes as values ✓ tests/policy-naming.test.ts > Policy: User Naming Convention > should transform snake_case firstname and lastname to camelCase firstName and lastName ✓ tests/policy-naming.test.ts > Policy: User Naming Convention > should prefer existing camelCase firstName and lastName if present ✓ tests/policy-naming.test.ts > Policy: User Naming Convention > should handle null values correctly ✓ components/shared/components/detail/ActivityTimeline.test.tsx > ActivityTimeline > renders nothing when no events are provided ✓ components/shared/components/detail/ActivityTimeline.test.tsx > ActivityTimeline > renders with createdAt ✓ components/shared/components/detail/ActivityTimeline.test.tsx > ActivityTimeline > renders with createdAt and updatedAt ✓ components/shared/components/detail/ActivityTimeline.test.tsx > ActivityTimeline > does not render updatedAt if it is the same as createdAt ✓ components/shared/components/detail/ActivityTimeline.test.tsx > ActivityTimeline > renders additional events ✓ components/shared/components/detail/ActivityTimeline.test.tsx > ActivityTimeline > applies custom className ✓ tests/components/ui/CopyButton.test.tsx > CopyButton > renders correctly with default icon ✓ tests/components/ui/CopyButton.test.tsx > CopyButton > copies value to clipboard and shows success state ✓ tests/components/ui/CopyButton.test.tsx > CopyButton > handles copy failure ✓ tests/CategoriesTable.performance.test.tsx > CategoriesTable Performance > should maintain referential stability of onRowClick ✓ tests/tax-class-boundary.test.ts > Tax Class Boundary > TaxClassDTOSchema > should map snake_case audit fields to camelCase ✓ tests/tax-class-boundary.test.ts > Tax Class Boundary > TaxClassDTOSchema > should handle already camelCased fields (idempotency) ✓ tests/tax-class-boundary.test.ts > Tax Class Boundary > Input Schemas > CreateTaxClassSchema should validate valid input ✓ tests/tax-class-boundary.test.ts > Tax Class Boundary > Input Schemas > CreateTaxClassSchema should fail for invalid percentage ✓ tests/tax-class-boundary.test.ts > Tax Class Boundary > Input Schemas > UpdateTaxClassSchema should allow partial updates ✓ tests/unit/lib/logger.test.ts > Logger > should redact sensitive fields ✓ tests/unit/lib/logger.test.ts > Logger > should automatically include requestId and userId from LoggerContext ✓ tests/unit/lib/logger.test.ts > Logger > should work without context ✓ tests/components/productpage/ProductDetailsAccordion.performance.test.tsx > ProductDetailsAccordion memoizes sanitization ✓ components/dashboard/data-view/PaginatedDataTable.test.tsx > PaginatedDataTable > renders dual pagination and data table ✓ components/dashboard/data-view/PaginatedDataTable.test.tsx > PaginatedDataTable > applies correct spacing classes ✓ tests/integration/transport-direct.test.ts > Pino Postgres Transport Logic > should insert logs into the database correctly ✓ tests/integration/transport-direct.test.ts > Pino Postgres Transport Logic > should insert logs into the database correctly ✓ tests/integration/transport-direct.test.ts > Pino Postgres Transport Logic > should handle missing optional fields ✓ tests/integration/transport-direct.test.ts > Pino Postgres Transport Logic > should handle missing optional fields stderr | lib/env.test.ts > Environment Variables Validation > should throw an error if critical environment variables are missing ❌ Invalid environment variables: { DATABASE_URL: [ 'Required' ], AUTH_SECRET: [ 'Required' ] } stderr | lib/env.test.ts > Environment Variables Validation > should validate that DATABASE_URL is a valid URL ❌ Invalid environment variables: { DATABASE_URL: [ 'Invalid url' ] } ✓ lib/env.test.ts > Environment Variables Validation > should throw an error if critical environment variables are missing ✓ lib/env.test.ts > Environment Variables Validation > should not throw if all required environment variables are present and valid ✓ lib/env.test.ts > Environment Variables Validation > should validate that DATABASE_URL is a valid URL ✓ lib/env.test.ts > Environment Variables Validation > should provide default values for non-critical optional variables ✓ components/auth/CardWrapper.test.tsx > CardWrapper > renders header, children and back button correctly ✓ components/auth/CardWrapper.test.tsx > CardWrapper > renders social buttons when showSocial is true ✓ components/auth/CardWrapper.test.tsx > CardWrapper > does not render social buttons when showSocial is false ✓ components/auth/CardWrapper.test.tsx > CardWrapper > renders the logo ✓ tests/components/productpage/BuyBox.test.tsx > BuyBox > renders quantity input but no subtotal when quantity is 1 ✓ tests/components/productpage/BuyBox.test.tsx > BuyBox > shows subtotal when quantity is increased ✓ tests/components/productpage/BuyBox.test.tsx > BuyBox > updates AddToCartButton with correct quantity ✓ tests/components/dashboard/Sidebar.test.tsx > DashboardSidebar Active State > highlights the active link based on the current pathname 1549ms ✓ tests/components/dashboard/Sidebar.test.tsx > DashboardSidebar Active State > does not highlight links that do not match the current pathname 1313ms ✓ tests/unit/schemas/db.test.ts > SystemLogSchema > should validate a valid system log entry ✓ tests/unit/schemas/db.test.ts > SystemLogSchema > should allow null for optional UUID fields and payload ✓ tests/unit/schemas/db.test.ts > SystemLogSchema > should fail if required fields are missing ✓ tests/unit/schemas/db.test.ts > SystemLogSchema > should fail if field types are incorrect ✓ tests/components/productpage/ProductDetailsAccordion.test.tsx > ProductDetailsAccordion sanitizes malicious HTML ✓ tests/components/productpage/ProductDetailsAccordion.test.tsx > ProductDetailsAccordion preserves safe HTML