Elite Events Test Report

Started: 2026-01-05 20:22:22
Suites (308)
307 passed
1 failed
0 pending
Tests (7313)
7306 passed
4 failed
3 pending
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\orders\__tests__\route.test.ts
7.363s
POST /api/orders > Rate limiting
returns 429 when rate limit exceeded
pending
GET /api/orders > Rate limiting
returns 429 when rate limit exceeded
pending
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\orders\__tests__\[id].test.ts
5.609s
GET /api/orders/[id] > Rate limiting
returns 429 when rate limit exceeded
pending
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\cron\slo-check\__tests__\route.test.ts
6.464s
SLO Check Cron Job > POST /api/cron/slo-check
calls checkAndAlertSLOs with correct config
failed
0.009s
Error: expect(jest.fn()).toHaveBeenCalledWith(...expected)

Expected: {"alertOnCritical": true, "alertOnWarning": false, "enabled": true}

Number of calls: 0
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\cron\slo-check\__tests__\route.test.ts:125:37)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
SLO Check Cron Job > POST /api/cron/slo-check
returns alert details in response
failed
0.023s
Error: expect(received).toMatchObject(expected)

- Expected  - 13
+ Received  +  1

  Object {
-   "alertsResolved": 1,
-   "alertsSkipped": 1,
-   "alertsTriggered": 2,
-   "breachingSLOs": ArrayContaining [
-     ObjectContaining {
-       "name": "API Availability",
-     },
-     ObjectContaining {
-       "name": "Latency P95",
-     },
-   ],
-   "slosChecked": 6,
-   "success": true,
+   "error": "Unauthorized",
  }
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\cron\slo-check\__tests__\route.test.ts:162:20)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
SLO Check Cron Job > POST /api/cron/slo-check
returns 500 on error
failed
0.009s
Error: expect(received).toBe(expected) // Object.is equality

Expected: 500
Received: 401
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\cron\slo-check\__tests__\route.test.ts:183:31)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
SLO Check Cron Job > GET /api/cron/slo-check
delegates to POST handler
failed
0.007s
Error: expect(received).toBe(expected) // Object.is equality

Expected: 200
Received: 401
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\cron\slo-check\__tests__\route.test.ts:202:31)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\dev-tools\__tests__\markdown-parser.test.ts
10.228s
Markdown Parser > parseMarkdownFile
should parse an existing markdown file
passed
0.034s
Markdown Parser > parseMarkdownFile
should return null for non-existent file
passed
0.003s
Markdown Parser > getPlans
should return plans grouped by active and archived
passed
0.936s
Markdown Parser > getPlans
should have active plans with status active
passed
0.47s
Markdown Parser > getPlans
should have archived plans with status archived
passed
0.431s
Markdown Parser > getPlanBySlug
should find an existing plan by slug
passed
0.495s
Markdown Parser > getPlanBySlug
should return null for non-existent plan slug
passed
0.003s
Markdown Parser > getGuides
should return an array of guides
passed
0.484s
Markdown Parser > getGuideBySlug
should find an existing guide by slug
passed
0.066s
Markdown Parser > getGuideBySlug
should return null for non-existent guide slug
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\Input\__tests__\Input.test.tsx
6.858s
Input Component > Basic Rendering - Text Input
renders text input by default
passed
0.177s
Input Component > Basic Rendering - Text Input
renders with label
passed
0.042s
Input Component > Basic Rendering - Text Input
links label to input with htmlFor
passed
0.02s
Input Component > Basic Rendering - Text Input
generates unique id when not provided
passed
0.022s
Input Component > Basic Rendering - Text Input
forwards ref to input element
passed
0.017s
Input Component > Input Types
renders as text input when as='input'
passed
0.011s
Input Component > Input Types
renders different input types
passed
0.066s
Input Component > Input Types
renders select dropdown when as='select'
passed
0.052s
Input Component > Input Types
renders select with chevron icon
passed
0.022s
Input Component > Input Types
renders textarea when as='textarea'
passed
0.023s
Input Component > Input Types
passes rows attribute to textarea
passed
0.013s
Input Component > Sizes
renders small size with correct padding
passed
0.017s
Input Component > Sizes
renders medium size with correct padding
passed
0.016s
Input Component > Sizes
renders large size with correct padding
passed
0.012s
Input Component > Sizes
defaults to medium size
passed
0.011s
Input Component > Sizes
applies size to select element
passed
0.25s
Input Component > Sizes
applies size to textarea element
passed
0.012s
Input Component > Validation States
renders default state with gray border
passed
0.011s
Input Component > Validation States
renders success state with green border
passed
0.01s
Input Component > Validation States
renders error state with red border
passed
0.009s
Input Component > Validation States
renders warning state with yellow border
passed
0.014s
Input Component > Validation States
error prop overrides state prop
passed
0.017s
Input Component > Error and Helper Text
displays error message
passed
0.027s
Input Component > Error and Helper Text
error message has correct styling
passed
0.012s
Input Component > Error and Helper Text
error message has role='alert'
passed
0.023s
Input Component > Error and Helper Text
displays helper text when no error
passed
0.012s
Input Component > Error and Helper Text
helper text has correct styling
passed
0.011s
Input Component > Error and Helper Text
hides helper text when error is present
passed
0.014s
Input Component > Error and Helper Text
links error message to input with aria-describedby
passed
0.039s
Input Component > Error and Helper Text
links helper text to input with aria-describedby
passed
0.029s
Input Component > Error and Helper Text
sets aria-invalid when in error state
passed
0.039s
Input Component > Error and Helper Text
does not set aria-invalid when no error
passed
0.028s
Input Component > Icons
renders left icon
passed
0.023s
Input Component > Icons
renders right icon
passed
0.02s
Input Component > Icons
renders both left and right icons
passed
0.024s
Input Component > Icons
adds left padding when left icon is present
passed
0.013s
Input Component > Icons
adds right padding when right icon is present
passed
0.017s
Input Component > Icons
icons are non-interactive (pointer-events-none)
passed
0.025s
Input Component > Icons
does not render icons for select element
passed
0.023s
Input Component > Icons
does not render icons for textarea
passed
0.014s
Input Component > Required Field
shows asterisk when required
passed
0.017s
Input Component > Required Field
sets required attribute on input
passed
0.024s
Input Component > Required Field
sets required attribute on select
passed
0.035s
Input Component > Required Field
sets required attribute on textarea
passed
0.066s
Input Component > Required Field
does not show asterisk when not required
passed
0.01s
Input Component > Full Width
renders full width container when fullWidth is true
passed
0.014s
Input Component > Full Width
input element is always full width
passed
0.011s
Input Component > Disabled State
disables input when disabled prop is true
passed
0.028s
Input Component > Disabled State
applies disabled styles
passed
0.013s
Input Component > Disabled State
disables select element
passed
0.032s
Input Component > Disabled State
disables textarea element
passed
0.024s
Input Component > User Interaction
handles onChange for text input
passed
0.047s
Input Component > User Interaction
handles onChange for select
passed
0.027s
Input Component > User Interaction
handles onChange for textarea
passed
0.03s
Input Component > User Interaction
updates input value
passed
0.028s
Input Component > User Interaction
handles focus and blur events
passed
0.035s
Input Component > Placeholder
displays placeholder text
passed
0.008s
Input Component > Placeholder
placeholder has correct styling
passed
0.009s
Input Component > Placeholder
select does not support placeholder
passed
0.031s
Input Component > Custom className
merges custom className with base classes
passed
0.01s
Input Component > Custom className
allows className override on select
passed
0.034s
Input Component > HTML Attributes
forwards name attribute
passed
0.02s
Input Component > HTML Attributes
forwards min and max for number input
passed
0.026s
Input Component > HTML Attributes
forwards maxLength attribute
passed
0.019s
Input Component > HTML Attributes
forwards autoComplete attribute
passed
0.021s
Input Component > HTML Attributes
forwards pattern attribute
passed
0.018s
Input Component > HTML Attributes
forwards data attributes
passed
0.013s
Input Component > Accessibility
has no accessibility violations (text input)
passed
0.205s
Input Component > Accessibility
has no accessibility violations (select)
passed
0.27s
Input Component > Accessibility
has no accessibility violations (textarea)
passed
0.14s
Input Component > Accessibility
has no accessibility violations (with error)
passed
0.1s
Input Component > Accessibility
has no accessibility violations (with icons)
passed
0.09s
Input Component > Edge Cases
handles empty select options
passed
0.015s
Input Component > Edge Cases
handles very long error messages
passed
0.015s
Input Component > Edge Cases
handles transitions between states
passed
0.013s
Input Component > Edge Cases
handles controlled component pattern
passed
0.012s
Input Component > Combination Tests
renders all props together correctly
passed
0.038s
Input Component > Combination Tests
combines error and all other features
passed
0.035s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\__tests__\ProductList.test.tsx
17.292s
ProductList Component > Basic Rendering
renders loading state initially
passed
0.187s
ProductList Component > Basic Rendering
renders product list after loading
passed
0.19s
ProductList Component > Basic Rendering
renders header with title and add button
passed
0.114s
ProductList Component > Basic Rendering
displays total product count
passed
0.134s
ProductList Component > Table Display
renders table with correct headers
passed
0.215s
ProductList Component > Table Display
displays product SKUs
passed
0.102s
ProductList Component > Table Display
displays dash for empty SKU
passed
0.139s
ProductList Component > Table Display
displays category titles
passed
0.126s
ProductList Component > Table Display
displays stock quantities
passed
0.105s
ProductList Component > Table Display
displays image counts
passed
0.099s
ProductList Component > Table Display
shows 'No image' for products without images
passed
0.095s
ProductList Component > Action Buttons
renders Edit button for each product
passed
0.412s
ProductList Component > Action Buttons
Edit buttons have correct aria-labels
passed
0.207s
ProductList Component > Action Buttons
renders Delete button for each product
passed
0.163s
ProductList Component > Action Buttons
Add Product button opens modal
passed
0.136s
ProductList Component > Search Functionality
renders search input
passed
0.023s
ProductList Component > Search Functionality
renders search button
passed
0.083s
ProductList Component > Search Functionality
updates search input on change
passed
0.578s
ProductList Component > Search Functionality
triggers search on form submit
passed
0.637s
ProductList Component > Search Functionality
shows Clear button when search is active via URL
passed
0.172s
ProductList Component > Search Functionality
clears search input on clear button click
passed
0.484s
ProductList Component > Delete Functionality
calls confirmDelete when Delete is clicked
passed
0.392s
ProductList Component > Delete Functionality
does not delete when confirmation is cancelled
passed
0.267s
ProductList Component > Delete Functionality
deletes product when confirmation is accepted
passed
0.39s
ProductList Component > Delete Functionality
removes product from list after successful delete
passed
0.311s
ProductList Component > Empty State
shows empty state when no products
passed
0.096s
ProductList Component > Empty State
shows hint when empty with active search
passed
0.083s
ProductList Component > Error Handling
shows error message on fetch failure
passed
0.14s
ProductList Component > Error Handling
shows error message on network error
passed
0.147s
ProductList Component > Pagination
does not show pagination for single page
passed
0.137s
ProductList Component > Pagination
shows pagination for multiple pages
passed
0.173s
ProductList Component > Pagination
navigates to next page
passed
0.224s
ProductList Component > Pagination
navigates to previous page
passed
0.234s
ProductList Component > Accessibility
has no accessibility violations
passed
1.008s
ProductList Component > Accessibility
table has proper structure
passed
0.293s
ProductList Component > Image Display
displays product thumbnail
passed
0.177s
ProductList Component > Image Display
displays first image for products with multiple images
passed
0.17s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\shop\ShopSidebar\__tests__\SizeDropdown.test.tsx
19.408s
SizeDropdown > Rendering
renders the dropdown with title
passed
0.248s
SizeDropdown > Rendering
renders all size options
passed
0.084s
SizeDropdown > Rendering
renders toggle button with aria-label
passed
0.047s
SizeDropdown > Rendering
renders radio inputs for each size
passed
0.923s
SizeDropdown > Dropdown toggle
is expanded by default
passed
0.061s
SizeDropdown > Dropdown toggle
collapses when toggle button is clicked
passed
0.256s
SizeDropdown > Dropdown toggle
expands when collapsed and toggle is clicked
passed
0.487s
SizeDropdown > Dropdown toggle
toggles when clicking the header area
passed
0.296s
SizeDropdown > Size selection
has M selected by default (first option has bg-blue)
passed
0.138s
SizeDropdown > Size selection
allows selecting different sizes via radio buttons
passed
0.291s
SizeDropdown > Size selection
only allows one size selected at a time (radio behavior)
passed
0.297s
SizeDropdown > Accessibility
radio inputs are screen reader accessible
passed
0.081s
SizeDropdown > Accessibility
all radios share the same name for grouping
passed
0.073s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\checkout\__tests__\Checkout.test.tsx
20.132s
Checkout Component > Empty Cart State
renders empty cart message when cart is empty
passed
0.196s
Checkout Component > Empty Cart State
shows Continue Shopping button when cart is empty
passed
0.307s
Checkout Component > Empty Cart State
redirects to shop when Continue Shopping is clicked
passed
0.051s
Checkout Component > Empty Cart State
does not show form when cart is empty
passed
0.019s
Checkout Component > Session Handling
redirects to signin when not logged in
passed
0.176s
Checkout Component > Session Handling
does not redirect when logged in
passed
0.079s
Checkout Component > Form Rendering
renders checkout form with all sections
passed
0.074s
Checkout Component > Form Rendering
renders shipping address selector
passed
0.067s
Checkout Component > Form Rendering
renders billing address selector
passed
0.06s
Checkout Component > Form Rendering
renders notes textarea
passed
0.062s
Checkout Component > Form Rendering
renders submit button
passed
0.088s
Checkout Component > Form Rendering
renders all child components
passed
0.097s
Checkout Component > Form Rendering
shows login component when user is not authenticated
passed
0.081s
Checkout Component > Form Rendering
hides login component when user is authenticated
passed
0.06s
Checkout Component > Cart Display
displays cart items in order summary
passed
0.112s
Checkout Component > Cart Display
displays correct item subtotal
passed
0.107s
Checkout Component > Cart Display
calculates and displays correct total
passed
0.099s
Checkout Component > Cart Display
displays multiple cart items
passed
0.064s
Checkout Component > Form Submission - Success
submits form with valid data
passed
0.143s
Checkout Component > Form Submission - Success
shows loading spinner during submission
passed
0.073s
Checkout Component > Form Submission - Success
shows success toast on successful order
passed
0.149s
Checkout Component > Form Submission - Success
redirects to order confirmation page after successful order
passed
0.157s
Checkout Component > Form Submission - Success
clears cart after successful order
passed
0.142s
Checkout Component > Form Submission - Error Handling
shows error message on failed submission
passed
0.156s
Checkout Component > Form Submission - Error Handling
shows error toast on failed submission
passed
0.112s
Checkout Component > Form Submission - Error Handling
allows retry after error
passed
0.203s
Checkout Component > Form Submission - Error Handling
shows default error message when API returns no error
passed
0.184s
Checkout Component > Event Tracking
tracks checkout initiation on mount
passed
0.038s
Checkout Component > Event Tracking
does not track checkout initiation when cart is empty
passed
0.018s
Checkout Component > Event Tracking
tracks purchase completion on successful order
passed
0.256s
Checkout Component > Notes Field
allows entering optional notes
passed
0.054s
Checkout Component > Notes Field
submits form without notes (optional field)
passed
0.152s
Checkout Component > Accessibility
has no accessibility violations (empty cart)
passed
0.188s
Checkout Component > Accessibility
has no accessibility violations (with cart items)
passed
0.458s
Checkout Component > Accessibility
has proper form label
passed
0.062s
Checkout Component > Accessibility
error message has role alert
passed
0.134s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\account\MyAccount\__tests__\AddressModal.test.tsx
20.472s
AddressModal > Rendering
renders modal when isOpen is true
passed
0.596s
AddressModal > Rendering
does not render modal when isOpen is false
passed
0.138s
AddressModal > Rendering
shows 'Edit Address' title when editing existing address
passed
0.133s
AddressModal > Rendering
shows 'Add New Address' title for new address
passed
0.123s
AddressModal > Rendering
renders all form fields
passed
0.102s
AddressModal > Rendering
shows Delete button only when editing
passed
0.23s
AddressModal > Rendering
does not show Delete button for new address
passed
0.188s
AddressModal > Form population
populates form with existing address data
passed
0.181s
AddressModal > Form population
resets form when address changes to null
passed
0.15s
AddressModal > User interactions
allows editing street address
passed
0.122s
AddressModal > User interactions
allows toggling isDefault checkbox
passed
0.199s
AddressModal > User interactions
calls onClose when Cancel button is clicked
passed
0.194s
AddressModal > User interactions
calls onClose when close button is clicked
passed
0.213s
AddressModal > Form submission
submits new address with POST request
passed
0.438s
AddressModal > Form submission
submits updated address with PATCH request
passed
0.288s
AddressModal > Form submission
calls onSuccess after successful submission
passed
0.252s
AddressModal > Form submission
shows success message after successful submission
passed
0.433s
AddressModal > Error handling
shows error message on failed submission
passed
0.445s
AddressModal > Delete functionality
calls DELETE endpoint when delete button is clicked
passed
0.18s
AddressModal > Address type selection
allows selecting address type
passed
0.26s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\shop\ShopDetails\__tests__\index.test.tsx
20.691s
ShopDetails Component > Initial Rendering
renders product title
passed
0.333s
ShopDetails Component > Initial Rendering
renders product price display
passed
0.208s
ShopDetails Component > Initial Rendering
renders discount badge
passed
0.136s
ShopDetails Component > Initial Rendering
renders star rating with review count
passed
0.125s
ShopDetails Component > Initial Rendering
renders in stock indicator
passed
0.096s
ShopDetails Component > Initial Rendering
renders promotional messages
passed
0.178s
ShopDetails Component > Empty Product State
shows 'Please add product' message when product is empty
passed
0.019s
ShopDetails Component > Empty Product State
does not render product sections when product is empty
passed
0.025s
ShopDetails Component > Image Gallery
renders main preview image
passed
0.102s
ShopDetails Component > Image Gallery
renders all thumbnail images
passed
0.079s
ShopDetails Component > Image Gallery
changes preview image when thumbnail is clicked
passed
0.177s
ShopDetails Component > Image Gallery
highlights active thumbnail
passed
0.1s
ShopDetails Component > Image Gallery
opens preview modal when expand button is clicked
passed
0.457s
ShopDetails Component > Product Options - Color
renders color selection section
passed
0.134s
ShopDetails Component > Product Options - Color
handles color interaction
passed
0.136s
ShopDetails Component > Product Options - Color
has default color state
passed
0.149s
ShopDetails Component > Product Options - Storage
renders storage options section
passed
0.08s
ShopDetails Component > Product Options - Storage
handles storage selection
passed
0.088s
ShopDetails Component > Product Options - Storage
has default storage state
passed
0.059s
ShopDetails Component > Product Options - Type
component renders without type options (removed feature)
passed
0.088s
ShopDetails Component > Product Options - Type
component renders correctly
passed
0.059s
ShopDetails Component > Product Options - SIM
component renders without SIM options (removed feature)
passed
0.163s
ShopDetails Component > Product Options - SIM
component renders correctly
passed
0.09s
ShopDetails Component > Quantity Controls
renders quantity controls with default value 1
passed
0.107s
ShopDetails Component > Quantity Controls
increases quantity when plus button is clicked
passed
0.292s
ShopDetails Component > Quantity Controls
decreases quantity when minus button is clicked
passed
0.311s
ShopDetails Component > Quantity Controls
does not decrease quantity below 1
passed
0.181s
ShopDetails Component > Action Buttons
renders Add to Cart button
passed
0.09s
ShopDetails Component > Action Buttons
renders wishlist button
passed
0.068s
ShopDetails Component > Tabs Navigation
renders all tab headers
passed
0.083s
ShopDetails Component > Tabs Navigation
shows Description tab by default
passed
0.079s
ShopDetails Component > Tabs Navigation
switches to Additional Information tab when clicked
passed
0.122s
ShopDetails Component > Tabs Navigation
switches to Reviews tab when clicked
passed
0.15s
ShopDetails Component > Tabs Navigation
handles tab selection
passed
0.091s
ShopDetails Component > Tabs Navigation
handles tab content switching
passed
0.097s
ShopDetails Component > Product Description Tab
renders product description when available
passed
0.101s
ShopDetails Component > Product Description Tab
renders product details component
passed
0.075s
ShopDetails Component > Additional Information Tab
renders specifications table
passed
0.125s
ShopDetails Component > Reviews Tab
renders review section when product has ID
passed
0.132s
ShopDetails Component > Reviews Tab
does not render review section when product has no ID
passed
0.091s
ShopDetails Component > Additional Sections
renders Recently Viewed Items section
passed
0.079s
ShopDetails Component > Additional Sections
renders Newsletter section
passed
0.088s
ShopDetails Component > LocalStorage Integration
saves product to localStorage on load
passed
0.084s
ShopDetails Component > LocalStorage Integration
handles localStorage interaction
passed
0.079s
ShopDetails Component > LocalStorage Integration
handles product updates
passed
0.128s
ShopDetails Component > Form Behavior
prevents form submission default behavior
passed
0.096s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\checkout\__tests__\Shipping.test.tsx
20.743s
Shipping Component > Rendering
renders toggle button
passed
0.236s
Shipping Component > Rendering
renders chevron-down icon
passed
0.085s
Shipping Component > Rendering
form fields are hidden by default
passed
0.072s
Shipping Component > Rendering
has proper container styling
passed
0.068s
Shipping Component > Dropdown Toggle
expands form when toggle is clicked
passed
0.346s
Shipping Component > Dropdown Toggle
collapses form when toggle is clicked again
passed
0.097s
Shipping Component > Dropdown Toggle
rotates chevron icon when expanded
passed
0.07s
Shipping Component > Dropdown Toggle
resets chevron rotation when collapsed
passed
0.098s
Shipping Component > Dropdown Toggle
toggle has cursor-pointer class
passed
0.036s
Shipping Component > Form Fields - When Expanded
renders all form fields
passed
0.129s
Shipping Component > Form Fields - When Expanded
country/region is a select dropdown
passed
0.124s
Shipping Component > Form Fields - When Expanded
country/region has correct options
passed
0.309s
Shipping Component > Form Fields - When Expanded
renders two street address inputs
passed
0.064s
Shipping Component > Form Fields - When Expanded
primary street address is required
passed
0.061s
Shipping Component > Form Fields - When Expanded
secondary street address is optional
passed
0.053s
Shipping Component > Form Fields - When Expanded
town/city input is required
passed
0.055s
Shipping Component > Form Fields - When Expanded
country input is optional
passed
0.079s
Shipping Component > Form Fields - When Expanded
phone input is required
passed
0.063s
Shipping Component > Form Fields - When Expanded
email input is required and has email type
passed
0.055s
Shipping Component > Form Fields - When Expanded
has proper input styling
passed
0.073s
Shipping Component > User Interactions - When Expanded
allows selecting country/region
passed
0.087s
Shipping Component > User Interactions - When Expanded
allows entering street address
passed
0.081s
Shipping Component > User Interactions - When Expanded
allows entering apartment/unit
passed
0.046s
Shipping Component > User Interactions - When Expanded
allows entering town/city
passed
0.074s
Shipping Component > User Interactions - When Expanded
allows entering country
passed
0.11s
Shipping Component > User Interactions - When Expanded
allows entering phone number
passed
0.072s
Shipping Component > User Interactions - When Expanded
allows entering email address
passed
0.087s
Shipping Component > Required Field Indicators
marks required fields appropriately
passed
0.083s
Shipping Component > Dropdown State Management
starts in collapsed state
passed
0.051s
Shipping Component > Dropdown State Management
shows form when expanded
passed
0.045s
Shipping Component > Dropdown State Management
multiple toggle clicks work correctly
passed
0.075s
Shipping Component > Accessibility
has no accessibility violations (collapsed)
passed
0.561s
Shipping Component > Accessibility
has no accessibility violations (expanded)
passed
0.43s
Shipping Component > Accessibility
all inputs have associated labels when expanded
passed
0.099s
Shipping Component > Accessibility
toggle is keyboard accessible
passed
0.04s
Shipping Component > Icon Behavior
chevron has correct size
passed
0.044s
Shipping Component > Icon Behavior
chevron has rotation transition class
passed
0.05s
Shipping Component > Edge Cases
handles very long input values when expanded
passed
0.091s
Shipping Component > Edge Cases
handles special characters in input when expanded
passed
0.07s
Shipping Component > Edge Cases
handles email with special characters when expanded
passed
0.057s
Shipping Component > Edge Cases
rapid toggle clicks work correctly
passed
0.158s
Shipping Component > Edge Cases
preserves form values when toggling
passed
0.116s
Shipping Component > Component Structure
has proper container structure
passed
0.045s
Shipping Component > Component Structure
toggle has proper styling
passed
0.033s
Shipping Component > Component Structure
form container has padding classes
passed
0.068s
Shipping Component > Default Values
all text inputs start empty
passed
0.114s
Shipping Component > Default Values
select dropdown has default first option
passed
0.078s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\__tests__\ProductForm.test.tsx
21.501s
ProductForm Component > Basic Rendering
renders form with all required fields
passed
0.367s
ProductForm Component > Basic Rendering
renders category options
passed
0.103s
ProductForm Component > Basic Rendering
renders Create Product button for new products
passed
0.252s
ProductForm Component > Basic Rendering
renders Update Product button when editing
passed
0.134s
ProductForm Component > Initial Data Population
populates form with initial data when editing
passed
0.102s
ProductForm Component > Initial Data Population
shows image upload widget when editing existing product
passed
0.063s
ProductForm Component > Initial Data Population
does not show image section for new products
passed
0.046s
ProductForm Component > Form Interactions
updates form fields on change
passed
0.762s
ProductForm Component > Form Interactions
updates price field on change
passed
0.298s
ProductForm Component > Form Interactions
selects category from dropdown
passed
0.174s
ProductForm Component > Form Validation
shows validation error for empty title
passed
0.502s
ProductForm Component > Form Validation
shows validation error for empty price
passed
0.399s
ProductForm Component > Form Validation
shows validation error for missing category
passed
0.685s
ProductForm Component > Form Validation
clears field error when user types
passed
0.6s
ProductForm Component > Form Submission
calls onSubmit with form data on valid submission
passed
1.304s
ProductForm Component > Form Submission
shows success message after successful submission
passed
1.092s
ProductForm Component > Form Submission
shows error message on submission failure
passed
1.116s
ProductForm Component > Form Submission
clears localStorage on successful submission
passed
1.123s
ProductForm Component > Auto-save Functionality
saves form data to localStorage
passed
0.041s
ProductForm Component > Auto-save Functionality
uses different storage key for edit mode
passed
0.06s
ProductForm Component > Auto-save Functionality
loads saved data from localStorage
passed
0.045s
ProductForm Component > Discounted Price Handling
allows empty discounted price
passed
1.014s
ProductForm Component > Discounted Price Handling
uses discounted price when provided
passed
1.185s
ProductForm Component > Accessibility
has no accessibility violations
passed
0.502s
ProductForm Component > Accessibility
all form fields have labels
passed
0.167s
ProductForm Component > Accessibility
validation errors are announced
passed
0.169s
ProductForm Component > Edge Cases
handles empty categories array
passed
0.068s
ProductForm Component > Edge Cases
handles very long product title
passed
0.094s
ProductForm Component > Edge Cases
handles decimal stock values
passed
0.999s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\validation\__tests__\dev-ticket-schemas.test.ts
4.345s
Dev Ticket Validation Schemas > DevTicketTypeSchema
should accept valid ticket types
passed
0.011s
Dev Ticket Validation Schemas > DevTicketTypeSchema
should reject invalid ticket types
passed
0.008s
Dev Ticket Validation Schemas > DevTicketStatusSchema
should accept valid statuses
passed
0.005s
Dev Ticket Validation Schemas > DevTicketStatusSchema
should reject invalid statuses
passed
0.005s
Dev Ticket Validation Schemas > DevTicketPrioritySchema
should accept valid priorities
passed
0.004s
Dev Ticket Validation Schemas > DevTicketPrioritySchema
should reject invalid priorities
passed
0.003s
Dev Ticket Validation Schemas > DevTicketSeveritySchema
should accept valid severities
passed
0.007s
Dev Ticket Validation Schemas > DevTicketSeveritySchema
should reject invalid severities
passed
0.005s
Dev Ticket Validation Schemas > MilestoneStatusSchema
should accept valid milestone statuses
passed
0.004s
Dev Ticket Validation Schemas > MilestoneStatusSchema
should reject invalid milestone statuses
passed
0.005s
Dev Ticket Validation Schemas > SprintStatusSchema
should accept valid sprint statuses
passed
0.004s
Dev Ticket Validation Schemas > SprintStatusSchema
should reject invalid sprint statuses
passed
0.002s
Dev Ticket Validation Schemas > TicketLinkTypeSchema
should accept valid link types
passed
0.006s
Dev Ticket Validation Schemas > TicketLinkTypeSchema
should reject invalid link types
passed
0.004s
Dev Ticket Validation Schemas > BulkDevTicketActionSchema
should accept valid bulk actions
passed
0.003s
Dev Ticket Validation Schemas > BulkDevTicketActionSchema
should reject invalid bulk actions
passed
0.003s
Dev Ticket Validation Schemas > CreateDevTicketSchema
should validate correct ticket data
passed
0.012s
Dev Ticket Validation Schemas > CreateDevTicketSchema
should apply default priority of MEDIUM
passed
0.004s
Dev Ticket Validation Schemas > CreateDevTicketSchema
should reject title less than 5 characters
passed
0.004s
Dev Ticket Validation Schemas > CreateDevTicketSchema
should reject title more than 200 characters
passed
0.015s
Dev Ticket Validation Schemas > CreateDevTicketSchema
should reject description less than 10 characters
passed
0.004s
Dev Ticket Validation Schemas > CreateDevTicketSchema
should reject description more than 10000 characters
passed
0.005s
Dev Ticket Validation Schemas > CreateDevTicketSchema
should accept valid optional fields
passed
0.006s
Dev Ticket Validation Schemas > CreateDevTicketSchema
should reject invalid CUID format for projectId
passed
0.008s
Dev Ticket Validation Schemas > CreateDevTicketSchema
should reject negative estimatedHours
passed
0.003s
Dev Ticket Validation Schemas > CreateDevTicketSchema
should reject storyPoints less than 1
passed
0.004s
Dev Ticket Validation Schemas > CreateDevTicketSchema
should reject storyPoints greater than 100
passed
0.004s
Dev Ticket Validation Schemas > CreateDevTicketSchema
should coerce date strings to Date objects
passed
0.003s
Dev Ticket Validation Schemas > UpdateDevTicketSchema
should accept partial updates
passed
0.006s
Dev Ticket Validation Schemas > UpdateDevTicketSchema
should accept status updates
passed
0.002s
Dev Ticket Validation Schemas > UpdateDevTicketSchema
should accept nullable fields
passed
0.004s
Dev Ticket Validation Schemas > UpdateDevTicketSchema
should reject invalid PR URL format
passed
0.004s
Dev Ticket Validation Schemas > UpdateDevTicketSchema
should accept valid PR URL
passed
0.003s
Dev Ticket Validation Schemas > UpdateDevTicketSchema
should reject negative actualHours
passed
0.005s
Dev Ticket Validation Schemas > UpdateDevTicketSchema
should accept zero actualHours
passed
0.002s
Dev Ticket Validation Schemas > AssignDevTicketSchema
should accept valid assignee ID
passed
0.006s
Dev Ticket Validation Schemas > AssignDevTicketSchema
should accept null to unassign
passed
0.004s
Dev Ticket Validation Schemas > AssignDevTicketSchema
should reject zero assignee ID
passed
0.009s
Dev Ticket Validation Schemas > AssignDevTicketSchema
should reject negative assignee ID
passed
0.008s
Dev Ticket Validation Schemas > CreateDevCommentSchema
should validate correct comment data
passed
0.011s
Dev Ticket Validation Schemas > CreateDevCommentSchema
should apply default isInternal of false
passed
0.005s
Dev Ticket Validation Schemas > CreateDevCommentSchema
should accept isInternal true
passed
0.002s
Dev Ticket Validation Schemas > CreateDevCommentSchema
should reject empty content
passed
0.006s
Dev Ticket Validation Schemas > CreateDevCommentSchema
should reject content exceeding 10000 characters
passed
0.007s
Dev Ticket Validation Schemas > CreateDevTimeEntrySchema
should validate correct time entry data
passed
0.009s
Dev Ticket Validation Schemas > CreateDevTimeEntrySchema
should reject zero hours
passed
0.002s
Dev Ticket Validation Schemas > CreateDevTimeEntrySchema
should reject negative hours
passed
0.002s
Dev Ticket Validation Schemas > CreateDevTimeEntrySchema
should reject hours exceeding 24
passed
0.001s
Dev Ticket Validation Schemas > CreateDevTimeEntrySchema
should accept optional description
passed
0.002s
Dev Ticket Validation Schemas > CreateDevTimeEntrySchema
should reject description exceeding 500 characters
passed
0.001s
Dev Ticket Validation Schemas > CreateDevTimeEntrySchema
should coerce date strings to Date objects
passed
0.001s
Dev Ticket Validation Schemas > CreateDevProjectSchema
should validate correct project data
passed
0.003s
Dev Ticket Validation Schemas > CreateDevProjectSchema
should apply default color
passed
0.001s
Dev Ticket Validation Schemas > CreateDevProjectSchema
should reject name less than 2 characters
passed
0.002s
Dev Ticket Validation Schemas > CreateDevProjectSchema
should reject name exceeding 100 characters
passed
0.002s
Dev Ticket Validation Schemas > CreateDevProjectSchema
should reject key less than 2 characters
passed
0.003s
Dev Ticket Validation Schemas > CreateDevProjectSchema
should reject key exceeding 10 characters
passed
0.001s
Dev Ticket Validation Schemas > CreateDevProjectSchema
should reject key not starting with a letter
passed
0.002s
Dev Ticket Validation Schemas > CreateDevProjectSchema
should reject lowercase key
passed
0.001s
Dev Ticket Validation Schemas > CreateDevProjectSchema
should reject key with special characters
passed
0.001s
Dev Ticket Validation Schemas > CreateDevProjectSchema
should accept valid uppercase alphanumeric key
passed
0.002s
Dev Ticket Validation Schemas > CreateDevProjectSchema
should reject invalid hex color
passed
0.002s
Dev Ticket Validation Schemas > CreateDevProjectSchema
should reject invalid hex format
passed
0.002s
Dev Ticket Validation Schemas > CreateDevProjectSchema
should accept valid hex color
passed
0.003s
Dev Ticket Validation Schemas > UpdateDevProjectSchema
should accept partial updates
passed
0.004s
Dev Ticket Validation Schemas > UpdateDevProjectSchema
should accept nullable fields
passed
0.002s
Dev Ticket Validation Schemas > UpdateDevProjectSchema
should accept isActive flag
passed
0.001s
Dev Ticket Validation Schemas > CreateDevMilestoneSchema
should validate correct milestone data
passed
0.004s
Dev Ticket Validation Schemas > CreateDevMilestoneSchema
should reject name less than 2 characters
passed
0.003s
Dev Ticket Validation Schemas > CreateDevMilestoneSchema
should reject name exceeding 100 characters
passed
0.002s
Dev Ticket Validation Schemas > CreateDevMilestoneSchema
should accept optional dates
passed
0.003s
Dev Ticket Validation Schemas > CreateDevMilestoneSchema
should coerce date strings
passed
0.002s
Dev Ticket Validation Schemas > UpdateDevMilestoneSchema
should accept partial updates
passed
0.005s
Dev Ticket Validation Schemas > UpdateDevMilestoneSchema
should accept status updates
passed
0.003s
Dev Ticket Validation Schemas > UpdateDevMilestoneSchema
should accept nullable dates
passed
0.002s
Dev Ticket Validation Schemas > CreateDevSprintSchema
should validate correct sprint data
passed
0.004s
Dev Ticket Validation Schemas > CreateDevSprintSchema
should reject end date before start date
passed
0.003s
Dev Ticket Validation Schemas > CreateDevSprintSchema
should reject same start and end date
passed
0.002s
Dev Ticket Validation Schemas > CreateDevSprintSchema
should accept optional goal
passed
0.004s
Dev Ticket Validation Schemas > CreateDevSprintSchema
should reject goal exceeding 500 characters
passed
0.003s
Dev Ticket Validation Schemas > UpdateDevSprintSchema
should accept partial updates
passed
0.004s
Dev Ticket Validation Schemas > UpdateDevSprintSchema
should validate date relationship when both provided
passed
0.004s
Dev Ticket Validation Schemas > UpdateDevSprintSchema
should allow single date update without validation
passed
0.005s
Dev Ticket Validation Schemas > UpdateDevSprintSchema
should accept status updates
passed
0.004s
Dev Ticket Validation Schemas > CreateDevLabelSchema
should validate correct label data
passed
0.002s
Dev Ticket Validation Schemas > CreateDevLabelSchema
should apply default color
passed
0.001s
Dev Ticket Validation Schemas > CreateDevLabelSchema
should reject name less than 2 characters
passed
0.001s
Dev Ticket Validation Schemas > CreateDevLabelSchema
should reject name exceeding 50 characters
passed
0.002s
Dev Ticket Validation Schemas > CreateDevLabelSchema
should reject invalid hex color
passed
0.003s
Dev Ticket Validation Schemas > CreateDevTicketLinkSchema
should validate correct link data
passed
0.004s
Dev Ticket Validation Schemas > CreateDevTicketLinkSchema
should reject invalid CUID
passed
0.005s
Dev Ticket Validation Schemas > DevTicketFilterSchema
should accept single status value
passed
0.005s
Dev Ticket Validation Schemas > DevTicketFilterSchema
should accept array of statuses
passed
0.002s
Dev Ticket Validation Schemas > DevTicketFilterSchema
should accept unassigned literal
passed
0.007s
Dev Ticket Validation Schemas > DevTicketFilterSchema
should coerce numeric assigneeId
passed
0.006s
Dev Ticket Validation Schemas > DevTicketFilterSchema
should accept date filters
passed
0.003s
Dev Ticket Validation Schemas > DevTicketFilterSchema
should accept search string
passed
0.005s
Dev Ticket Validation Schemas > DevTicketFilterSchema
should reject search exceeding 100 characters
passed
0.004s
Dev Ticket Validation Schemas > DevTicketSortSchema
should apply default values
passed
0.004s
Dev Ticket Validation Schemas > DevTicketSortSchema
should accept valid sort fields
passed
0.002s
Dev Ticket Validation Schemas > DevTicketSortSchema
should accept valid directions
passed
0.002s
Dev Ticket Validation Schemas > BulkDevTicketActionInputSchema
should validate correct bulk action data
passed
0.007s
Dev Ticket Validation Schemas > BulkDevTicketActionInputSchema
should reject empty ticketIds array
passed
0.003s
Dev Ticket Validation Schemas > BulkDevTicketActionInputSchema
should accept optional value
passed
0.007s
Dev Ticket Validation Schemas > BulkDevTicketActionInputSchema
should accept string, number, or array value
passed
0.002s
Dev Ticket Validation Schemas > PaginationSchema
should apply default values
passed
0.005s
Dev Ticket Validation Schemas > PaginationSchema
should coerce string values to numbers
passed
0.002s
Dev Ticket Validation Schemas > PaginationSchema
should reject page less than 1
passed
0.002s
Dev Ticket Validation Schemas > PaginationSchema
should reject limit less than 1
passed
0.002s
Dev Ticket Validation Schemas > PaginationSchema
should reject limit exceeding 100
passed
0.003s
Dev Ticket Validation Schemas > PaginationSchema
should accept limit of exactly 100
passed
0.001s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\checkout\__tests__\Billing.test.tsx
23.024s
Billing Component > Rendering
renders billing details heading
passed
0.306s
Billing Component > Rendering
renders all form fields
passed
0.301s
Billing Component > Rendering
renders Create an Account checkbox
passed
0.314s
Billing Component > Rendering
renders check icon for checkbox
passed
0.097s
Billing Component > Form Fields
firstName input has correct attributes
passed
0.081s
Billing Component > Form Fields
lastName input has correct attributes
passed
0.061s
Billing Component > Form Fields
companyName input is optional
passed
0.114s
Billing Component > Form Fields
country/region is a select dropdown
passed
0.187s
Billing Component > Form Fields
country/region has correct options
passed
0.506s
Billing Component > Form Fields
renders two street address inputs
passed
0.098s
Billing Component > Form Fields
primary street address is required
passed
0.033s
Billing Component > Form Fields
secondary street address is optional
passed
0.16s
Billing Component > Form Fields
town/city input is required
passed
0.22s
Billing Component > Form Fields
country input is optional
passed
0.148s
Billing Component > Form Fields
phone input is required
passed
0.141s
Billing Component > Form Fields
email input is required and has email type
passed
0.085s
Billing Component > User Interactions
allows entering text in firstName field
passed
0.086s
Billing Component > User Interactions
allows entering text in lastName field
passed
0.08s
Billing Component > User Interactions
allows entering text in companyName field
passed
0.102s
Billing Component > User Interactions
allows selecting country/region
passed
0.182s
Billing Component > User Interactions
allows entering street address
passed
0.082s
Billing Component > User Interactions
allows entering apartment/unit
passed
0.09s
Billing Component > User Interactions
allows entering town/city
passed
0.213s
Billing Component > User Interactions
allows entering phone number
passed
0.106s
Billing Component > User Interactions
allows entering email address
passed
0.064s
Billing Component > User Interactions
allows checking the Create Account checkbox
passed
0.102s
Billing Component > User Interactions
allows unchecking the Create Account checkbox
passed
0.087s
Billing Component > Layout
renders first and last name in FormRow (two-column layout)
passed
0.063s
Billing Component > Layout
uses custom input styling
passed
0.11s
Billing Component > Required Field Indicators
marks required fields appropriately
passed
0.282s
Billing Component > Checkbox Behavior
checkbox starts unchecked
passed
0.198s
Billing Component > Checkbox Behavior
checkbox has correct ID for label association
passed
0.108s
Billing Component > Checkbox Behavior
checkbox label is clickable
passed
0.074s
Billing Component > Accessibility
has no accessibility violations
passed
0.888s
Billing Component > Accessibility
all inputs have associated labels
passed
0.246s
Billing Component > Accessibility
checkbox has accessible label
passed
0.108s
Billing Component > Accessibility
checkbox is keyboard accessible
passed
0.145s
Billing Component > Form Field Grouping
wraps all inputs in a white background container
passed
0.092s
Billing Component > Form Field Grouping
has proper shadow styling on form container
passed
0.065s
Billing Component > Edge Cases
handles very long input values
passed
0.078s
Billing Component > Edge Cases
handles special characters in input
passed
0.087s
Billing Component > Edge Cases
handles email with special characters
passed
0.069s
Billing Component > Edge Cases
multiple rapid checkbox clicks work correctly
passed
0.046s
Billing Component > Component Structure
renders heading with correct styling
passed
0.075s
Billing Component > Component Structure
renders in proper container structure
passed
0.134s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\redux\features\__tests__\supportSlice.test.ts
2.794s
Support Slice > Chatbot Actions
should toggle chatbot
passed
0.014s
Support Slice > Chatbot Actions
should open chatbot
passed
0.002s
Support Slice > Chatbot Actions
should close chatbot
passed
0.004s
Support Slice > Chatbot Actions
should add chatbot message
passed
0.008s
Support Slice > Chatbot Actions
should add multiple chatbot messages
passed
0.004s
Support Slice > Chatbot Actions
should clear chatbot messages
passed
0.004s
Support Slice > Ticket Filter Actions
should set ticket filters
passed
0.004s
Support Slice > Ticket Filter Actions
should clear ticket filters
passed
0.004s
Support Slice > Ticket Filter Actions
should set ticket page
passed
0.002s
Support Slice > Article Filter Actions
should set article category
passed
0.002s
Support Slice > Article Filter Actions
should clear article category
passed
0.002s
Support Slice > Article Filter Actions
should set article search
passed
0.002s
Support Slice > Article Filter Actions
should clear article filters
passed
0.003s
Support Slice > Article Filter Actions
should set article page
passed
0.003s
Support Slice > UI Actions
should set active ticket
passed
0.003s
Support Slice > UI Actions
should clear active ticket
passed
0.002s
Support Slice > Ticket Selection Actions
should select ticket
passed
0.004s
Support Slice > Ticket Selection Actions
should not duplicate selected ticket
passed
0.003s
Support Slice > Ticket Selection Actions
should deselect ticket
passed
0.004s
Support Slice > Ticket Selection Actions
should toggle ticket selection
passed
0.004s
Support Slice > Ticket Selection Actions
should select all tickets
passed
0.002s
Support Slice > Ticket Selection Actions
should deselect all tickets
passed
0.002s
Support Slice > Unread Count Actions
should set unread count
passed
0.003s
Support Slice > Unread Count Actions
should increment unread count
passed
0.003s
Support Slice > Unread Count Actions
should decrement unread count
passed
0.003s
Support Slice > Unread Count Actions
should not decrement below zero
passed
0.002s
Support Slice > Unread Count Actions
should clear unread count
passed
0.004s
Support Slice > Update Ticket In List
should update ticket in list
passed
0.005s
Support Slice > Update Ticket In List
should update current ticket if matching
passed
0.003s
Support Slice > Update Ticket In List
should not update non-matching ticket
passed
0.003s
Support Slice > Clear Error Actions
should clear tickets error
passed
0.004s
Support Slice > Clear Error Actions
should clear articles error
passed
0.002s
Support Slice > Clear Error Actions
should clear chatbot error
passed
0.003s
Support Slice > Clear Error Actions
should clear stats error
passed
0.015s
Support Slice > Reset Support
should reset to initial state
passed
0.002s
Support Slice > Selectors
selectTickets returns tickets
passed
0.003s
Support Slice > Selectors
selectCurrentTicket returns current ticket
passed
0.004s
Support Slice > Selectors
selectTicketFilters returns filters
passed
0.003s
Support Slice > Selectors
selectTicketPagination returns pagination
passed
0.003s
Support Slice > Selectors
selectTicketsLoading returns loading state
passed
0.002s
Support Slice > Selectors
selectTicketLoading returns single ticket loading state
passed
0.002s
Support Slice > Selectors
selectTicketsError returns error
passed
0.002s
Support Slice > Selectors
selectMyTickets returns my tickets
passed
0.002s
Support Slice > Selectors
selectMyTicketsPagination returns pagination
passed
0.001s
Support Slice > Selectors
selectMyTicketsLoading returns loading state
passed
0.002s
Support Slice > Selectors
selectMyTicketsError returns error
passed
0.002s
Support Slice > Selectors
selectArticles returns articles
passed
0.003s
Support Slice > Selectors
selectArticlesLoading returns loading state
passed
0.003s
Support Slice > Selectors
selectArticlesError returns error
passed
0.002s
Support Slice > Selectors
selectArticleFilters returns filters
passed
0.003s
Support Slice > Selectors
selectArticlePagination returns pagination
passed
0.003s
Support Slice > Selectors
selectChatbotOpen returns chatbot open state
passed
0.001s
Support Slice > Selectors
selectChatbotMessages returns messages
passed
0.003s
Support Slice > Selectors
selectChatbotLoading returns loading state
passed
0.002s
Support Slice > Selectors
selectChatbotError returns error
passed
0.002s
Support Slice > Selectors
selectStats returns stats
passed
0.002s
Support Slice > Selectors
selectStatsLoading returns loading state
passed
0.001s
Support Slice > Selectors
selectStatsError returns error
passed
0.003s
Support Slice > Selectors
selectActiveTicketId returns active ticket ID
passed
0.002s
Support Slice > Selectors
selectSelectedTicketIds returns selected IDs
passed
0.003s
Support Slice > Selectors
selectUnreadCount returns unread count
passed
0.003s
Support Slice > Derived Selectors
selectOpenTicketsCount counts open and in-progress tickets
passed
0.004s
Support Slice > Derived Selectors
selectHighPriorityTicketsCount counts high and urgent tickets
passed
0.002s
Support Slice > Derived Selectors
selectSelectedTicketsCount counts selected tickets
passed
0.001s
Support Slice > Derived Selectors
selectAllTicketsSelected returns true when all selected
passed
0.001s
Support Slice > Derived Selectors
selectAllTicketsSelected returns false when not all selected
passed
0.003s
Support Slice > Derived Selectors
selectAllTicketsSelected returns false when no tickets
passed
0.002s
Support Slice > Derived Selectors
selectHasActiveFilters returns true when filters exist
passed
0.002s
Support Slice > Derived Selectors
selectHasActiveFilters returns false when no filters
passed
0.003s
Support Slice > Derived Selectors
selectHasActiveFilters detects search filter
passed
0.001s
Support Slice > Derived Selectors
selectHasActiveFilters detects priority filter
passed
0.003s
Support Slice > Derived Selectors
selectHasActiveFilters detects category filter
passed
0.003s
Support Slice > Async Thunks - fetchTickets
should handle fetchTickets.pending
passed
0.003s
Support Slice > Async Thunks - fetchTickets
should handle fetchTickets.fulfilled
passed
0.004s
Support Slice > Async Thunks - fetchTickets
should handle fetchTickets.rejected
passed
0.002s
Support Slice > Async Thunks - fetchTicket
should handle fetchTicket.pending
passed
0.002s
Support Slice > Async Thunks - fetchTicket
should handle fetchTicket.fulfilled
passed
0.002s
Support Slice > Async Thunks - fetchTicket
should handle fetchTicket.rejected
passed
0.001s
Support Slice > Async Thunks - fetchMyTickets
should handle fetchMyTickets.pending
passed
0.002s
Support Slice > Async Thunks - fetchMyTickets
should handle fetchMyTickets.fulfilled
passed
0.004s
Support Slice > Async Thunks - fetchMyTickets
should handle fetchMyTickets.rejected
passed
0.002s
Support Slice > Async Thunks - fetchArticles
should handle fetchArticles.pending
passed
0.002s
Support Slice > Async Thunks - fetchArticles
should handle fetchArticles.fulfilled
passed
0.002s
Support Slice > Async Thunks - fetchArticles
should handle fetchArticles.rejected
passed
0.003s
Support Slice > Async Thunks - fetchStats
should handle fetchStats.pending
passed
0.002s
Support Slice > Async Thunks - fetchStats
should handle fetchStats.fulfilled
passed
0.003s
Support Slice > Async Thunks - fetchStats
should handle fetchStats.rejected
passed
0.002s
Support Slice > Async Thunks - sendChatbotMessage
should handle sendChatbotMessage.pending
passed
0.003s
Support Slice > Async Thunks - sendChatbotMessage
should handle sendChatbotMessage.fulfilled
passed
0.008s
Support Slice > Async Thunks - sendChatbotMessage
should handle sendChatbotMessage.rejected
passed
0.003s
Support Slice > Async Thunks - sendChatbotMessage
should add user message with correct timestamp
passed
0.007s
Support Slice > Async Thunks - sendChatbotMessage
should add bot message with suggested articles
passed
0.004s
Support Slice > Async Thunks - sendChatbotMessage
should add bot message with quick actions
passed
0.002s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\support\__tests__\ticket-utils.test.ts
3.485s
Ticket Utility Functions > generateTicketNumber
should generate ticket number with correct prefix and format
passed
0.014s
Ticket Utility Functions > generateTicketNumber
should generate sequential ticket numbers
passed
0.006s
Ticket Utility Functions > generateTicketNumber
should pad ticket numbers with leading zeros
passed
0.004s
Ticket Utility Functions > generateTicketNumber
should handle large ticket numbers
passed
0.003s
Ticket Utility Functions > generateTicketNumber
should handle database errors gracefully
passed
0.133s
Ticket Utility Functions > isValidStatusTransition
should allow valid transition from OPEN to IN_PROGRESS
passed
0.003s
Ticket Utility Functions > isValidStatusTransition
should allow valid transition from OPEN to RESOLVED
passed
0.002s
Ticket Utility Functions > isValidStatusTransition
should allow valid transition from IN_PROGRESS to AWAITING_CUSTOMER
passed
0.002s
Ticket Utility Functions > isValidStatusTransition
should allow valid transition from RESOLVED to CLOSED
passed
0.002s
Ticket Utility Functions > isValidStatusTransition
should allow valid transition from RESOLVED to IN_PROGRESS (reopening)
passed
0.002s
Ticket Utility Functions > isValidStatusTransition
should allow valid transition from CLOSED to OPEN (reopening)
passed
0.004s
Ticket Utility Functions > isValidStatusTransition
should reject invalid transition from OPEN to CLOSED
passed
0.004s
Ticket Utility Functions > isValidStatusTransition
should reject invalid transition from CANCELLED to any status
passed
0.006s
Ticket Utility Functions > isValidStatusTransition
should reject invalid transition from CLOSED to RESOLVED
passed
0.003s
Ticket Utility Functions > isValidStatusTransition
should reject transition to same status
passed
0.004s
Ticket Utility Functions > getSLADeadline
should calculate correct deadline for URGENT priority first response
passed
0.011s
Ticket Utility Functions > getSLADeadline
should calculate correct deadline for URGENT priority resolution
passed
0.002s
Ticket Utility Functions > getSLADeadline
should calculate correct deadline for HIGH priority first response
passed
0.003s
Ticket Utility Functions > getSLADeadline
should calculate correct deadline for HIGH priority resolution
passed
0.003s
Ticket Utility Functions > getSLADeadline
should calculate correct deadline for MEDIUM priority first response
passed
0.005s
Ticket Utility Functions > getSLADeadline
should calculate correct deadline for MEDIUM priority resolution
passed
0.005s
Ticket Utility Functions > getSLADeadline
should calculate correct deadline for LOW priority first response
passed
0.021s
Ticket Utility Functions > getSLADeadline
should calculate correct deadline for LOW priority resolution
passed
0.002s
Ticket Utility Functions > getSLADeadline
should use current date if fromDate is not provided
passed
0.002s
Ticket Utility Functions > isSLABreached > First Response SLA
should return true if first response was after deadline
passed
0.002s
Ticket Utility Functions > isSLABreached > First Response SLA
should return false if first response was within deadline
passed
0.001s
Ticket Utility Functions > isSLABreached > First Response SLA
should check current time if no first response yet
passed
0.006s
Ticket Utility Functions > isSLABreached > First Response SLA
should return false if current time is within deadline
passed
0.002s
Ticket Utility Functions > isSLABreached > Resolution SLA
should return true if resolved after deadline
passed
0.001s
Ticket Utility Functions > isSLABreached > Resolution SLA
should return false if resolved within deadline
passed
0.001s
Ticket Utility Functions > isSLABreached > Resolution SLA
should check current time if not yet resolved
passed
0.002s
Ticket Utility Functions > isSLABreached > Resolution SLA
should return false if current time is within resolution deadline
passed
0.002s
Ticket Utility Functions > isSLABreached > Different Priority Levels
should handle LOW priority SLA correctly
passed
0.001s
Ticket Utility Functions > isSLABreached > Different Priority Levels
should handle MEDIUM priority SLA correctly
passed
0.001s
Ticket Utility Functions > getTimeUntilSLABreach
should return positive time remaining before first response deadline
passed
0.002s
Ticket Utility Functions > getTimeUntilSLABreach
should return negative time if first response deadline is breached
passed
0.002s
Ticket Utility Functions > getTimeUntilSLABreach
should calculate time based on actual first response time if available
passed
0.002s
Ticket Utility Functions > getTimeUntilSLABreach
should return positive time remaining before resolution deadline
passed
0.002s
Ticket Utility Functions > getTimeUntilSLABreach
should return negative time if resolution deadline is breached
passed
0.004s
Ticket Utility Functions > getTimeUntilSLABreach
should calculate time based on actual resolution time if available
passed
0.002s
Ticket Utility Functions > buildTicketWhereClause
should build empty where clause for empty filters
passed
0.003s
Ticket Utility Functions > buildTicketWhereClause
should filter by single status
passed
0.002s
Ticket Utility Functions > buildTicketWhereClause
should filter by multiple statuses
passed
0.002s
Ticket Utility Functions > buildTicketWhereClause
should filter by single priority
passed
0.001s
Ticket Utility Functions > buildTicketWhereClause
should filter by multiple priorities
passed
0.001s
Ticket Utility Functions > buildTicketWhereClause
should filter by single category
passed
0.002s
Ticket Utility Functions > buildTicketWhereClause
should filter by multiple categories
passed
0.002s
Ticket Utility Functions > buildTicketWhereClause
should filter by assignedToId
passed
0.001s
Ticket Utility Functions > buildTicketWhereClause
should filter by unassigned tickets (assignedToId null)
passed
0.002s
Ticket Utility Functions > buildTicketWhereClause
should filter by userId
passed
0.002s
Ticket Utility Functions > buildTicketWhereClause
should filter by search term with OR conditions
passed
0.002s
Ticket Utility Functions > buildTicketWhereClause
should filter by dateFrom
passed
0.005s
Ticket Utility Functions > buildTicketWhereClause
should filter by dateTo
passed
0.003s
Ticket Utility Functions > buildTicketWhereClause
should filter by date range
passed
0.003s
Ticket Utility Functions > buildTicketWhereClause
should combine multiple filters
passed
0.002s
Ticket Utility Functions > createTicketHistory
should create ticket history entry
passed
0.004s
Ticket Utility Functions > createTicketHistory
should handle null values
passed
0.002s
Ticket Utility Functions > createTicketHistory
should handle database errors
passed
0.005s
Ticket Utility Functions > recordTicketCreation
should record ticket creation in history
passed
0.016s
Ticket Utility Functions > recordTicketCreation
should handle null userId
passed
0.01s
Ticket Utility Functions > recordStatusChange
should record status change in history
passed
0.007s
Ticket Utility Functions > recordPriorityChange
should record priority change in history
passed
0.007s
Ticket Utility Functions > recordAssignment
should record ticket assignment with ASSIGNED action
passed
0.007s
Ticket Utility Functions > recordAssignment
should record ticket unassignment with UNASSIGNED action
passed
0.015s
Ticket Utility Functions > recordAssignment
should record reassignment from one agent to another
passed
0.005s
Ticket Utility Functions > getAgentTickets
should retrieve all tickets for an agent
passed
0.011s
Ticket Utility Functions > getAgentTickets
should filter tickets by single status
passed
0.002s
Ticket Utility Functions > getAgentTickets
should filter tickets by multiple statuses
passed
0.003s
Ticket Utility Functions > getAgentTickets
should return empty array if agent has no tickets
passed
0.006s
Ticket Utility Functions > getAgentTickets
should handle database errors
passed
0.002s
Ticket Utility Functions > getUnassignedTickets
should retrieve unassigned tickets with OPEN or IN_PROGRESS status
passed
0.002s
Ticket Utility Functions > getUnassignedTickets
should return empty array if no unassigned tickets
passed
0.001s
Ticket Utility Functions > getTicketsAtRisk
should retrieve tickets at risk of SLA breach
passed
0.004s
Ticket Utility Functions > getTicketsAtRisk
should filter out tickets with more than 1 hour remaining
passed
0.011s
Ticket Utility Functions > getTicketsAtRisk
should return empty array if no tickets at risk
passed
0.004s
Ticket Utility Functions > autoAssignTicket
should assign ticket to available agent with capacity
passed
0.003s
Ticket Utility Functions > autoAssignTicket
should find agents with matching specialty or no specialty
passed
0.002s
Ticket Utility Functions > autoAssignTicket
should return null if no agents available
passed
0.002s
Ticket Utility Functions > autoAssignTicket
should return null if all agents at max capacity
passed
0.004s
Ticket Utility Functions > autoAssignTicket
should assign to agent with lowest active ticket count
passed
0.005s
Ticket Utility Functions > formatTicketSummary
should format ticket summary correctly
passed
0.002s
Ticket Utility Functions > formatTicketSummary
should handle different statuses
passed
0.002s
Ticket Utility Functions > calculateAgentResponseTime
should calculate average response time in seconds
passed
0.004s
Ticket Utility Functions > calculateAgentResponseTime
should return null if agent has no responded tickets
passed
0.001s
Ticket Utility Functions > calculateAgentResponseTime
should handle single ticket correctly
passed
0.001s
Ticket Utility Functions > calculateAgentResolutionTime
should calculate average resolution time in seconds
passed
0.003s
Ticket Utility Functions > calculateAgentResolutionTime
should return null if agent has no resolved tickets
passed
0.001s
Ticket Utility Functions > calculateAgentResolutionTime
should handle single ticket correctly
passed
0.002s
Ticket Utility Functions > calculateAgentResolutionTime
should round to nearest second
passed
0.001s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\__tests__\search.test.ts
2.902s
search utility > calculateAverageRating > empty reviews
should return 0 average and 0 total for empty array
passed
0.013s
search utility > calculateAverageRating > single review
should return rating as average for single review
passed
0.004s
search utility > calculateAverageRating > single review
should handle rating of 1
passed
0.004s
search utility > calculateAverageRating > multiple reviews
should calculate correct average for multiple reviews
passed
0.005s
search utility > calculateAverageRating > multiple reviews
should round to 1 decimal place
passed
0.004s
search utility > calculateAverageRating > multiple reviews
should handle all 5-star reviews
passed
0.003s
search utility > calculateAverageRating > multiple reviews
should handle all 1-star reviews
passed
0.003s
search utility > calculateAverageRating > multiple reviews
should handle mixed ratings
passed
0.002s
search utility > calculateAverageRating > rounding behavior
should round 4.25 to 4.3
passed
0.002s
search utility > calculateAverageRating > rounding behavior
should round 4.24 to 4.2
passed
0.003s
search utility > calculateAverageRating > rounding behavior
should handle average that rounds to whole number
passed
0.001s
search utility > calculateAverageRating > edge cases
should handle very large number of reviews
passed
0.003s
search utility > calculateAverageRating > edge cases
should handle alternating ratings
passed
0.004s
search utility > searchProducts > basic search
should return products with default parameters
passed
0.007s
search utility > searchProducts > basic search
should search by query string
passed
0.012s
search utility > searchProducts > basic search
should handle empty query
passed
0.003s
search utility > searchProducts > filtering
should filter by categories
passed
0.003s
search utility > searchProducts > filtering
should filter by price range
passed
0.005s
search utility > searchProducts > filtering
should filter by minimum price only
passed
0.004s
search utility > searchProducts > filtering
should filter by stock availability
passed
0.003s
search utility > searchProducts > filtering
should filter by minimum rating
passed
0.003s
search utility > searchProducts > filtering
should combine multiple filters
passed
0.003s
search utility > searchProducts > sorting
should sort by newest (default)
passed
0.005s
search utility > searchProducts > sorting
should sort by price ascending
passed
0.002s
search utility > searchProducts > sorting
should sort by price descending
passed
0.006s
search utility > searchProducts > sorting
should sort by popularity
passed
0.012s
search utility > searchProducts > sorting
should sort by rating
passed
0.002s
search utility > searchProducts > pagination
should paginate results
passed
0.003s
search utility > searchProducts > pagination
should calculate pagination metadata
passed
0.004s
search utility > searchProducts > pagination
should handle first page
passed
0.001s
search utility > searchProducts > pagination
should handle last page
passed
0.002s
search utility > searchProducts > result transformation
should calculate average rating for products
passed
0.002s
search utility > searchProducts > result transformation
should include review count
passed
0.002s
search utility > searchProducts > result transformation
should transform product data correctly
passed
0.002s
search utility > searchProducts > search term tracking
should track search terms
passed
0.003s
search utility > searchProducts > search term tracking
should normalize search terms
passed
0.002s
search utility > searchProducts > search term tracking
should not track empty queries
passed
0.001s
search utility > searchProducts > search term tracking
should continue on tracking error
passed
0.002s
search utility > searchProducts > error handling
should throw error on search failure
passed
0.097s
search utility > searchProducts > error handling
should log error details
passed
0.008s
search utility > getSearchSuggestions
should return suggestions for query
passed
0.004s
search utility > getSearchSuggestions
should limit suggestions
passed
0.002s
search utility > getSearchSuggestions
should return empty array for short query
passed
0.002s
search utility > getSearchSuggestions
should return empty array for empty query
passed
0.004s
search utility > getSearchSuggestions
should deduplicate suggestions
passed
0.004s
search utility > getSearchSuggestions
should handle errors gracefully
passed
0.003s
search utility > getFilterOptions
should return filter options
passed
0.003s
search utility > getFilterOptions
should handle null price values
passed
0.004s
search utility > getFilterOptions
should throw error on failure
passed
0.003s
search utility > getPopularSearchTerms
should return popular search terms
passed
0.006s
search utility > getPopularSearchTerms
should limit results
passed
0.002s
search utility > getPopularSearchTerms
should handle errors gracefully
passed
0.003s
search utility > getTrendingSearchTerms
should return trending search terms from last 7 days
passed
0.002s
search utility > getTrendingSearchTerms
should limit results
passed
0.004s
search utility > getTrendingSearchTerms
should handle errors gracefully
passed
0.003s
search utility > getSearchAnalytics
should return search analytics
passed
0.003s
search utility > getSearchAnalytics
should handle zero searches
passed
0.004s
search utility > getSearchAnalytics
should handle errors gracefully
passed
0.005s
search utility > clearOldSearchTerms
should delete old search terms
passed
0.005s
search utility > clearOldSearchTerms
should use default days if not provided
passed
0.003s
search utility > clearOldSearchTerms
should handle errors gracefully
passed
0.004s
search utility > searchByCategory
should search by category ID
passed
0.009s
search utility > searchByCategory
should accept additional search params
passed
0.004s
search utility > getRelatedSearchTerms
should return related search terms
passed
0.005s
search utility > getRelatedSearchTerms
should limit results
passed
0.004s
search utility > getRelatedSearchTerms
should return empty array for short query
passed
0.004s
search utility > getRelatedSearchTerms
should handle errors gracefully
passed
0.003s
search utility > checkZeroResultSearches
should check and update zero-result searches
passed
0.007s
search utility > checkZeroResultSearches
should not update if still no results
passed
0.003s
search utility > checkZeroResultSearches
should handle errors gracefully
passed
0.001s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\__tests__\admin.test.ts
2.637s
admin utilities > isAdmin
returns true when user is admin
passed
0.014s
admin utilities > isAdmin
returns false when user is customer
passed
0.004s
admin utilities > isAdmin
returns false when user not found
passed
0.005s
admin utilities > isAdmin
returns false when role is undefined
passed
0.002s
admin utilities > isAdmin
returns false when role is null
passed
0.002s
admin utilities > isAdmin
handles different user IDs
passed
0.006s
admin utilities > getAdminByEmail
returns admin user when found
passed
0.007s
admin utilities > getAdminByEmail
returns null when user not found
passed
0.006s
admin utilities > getAdminByEmail
returns null when user is not admin
passed
0.003s
admin utilities > getAdminByEmail
handles user with null name
passed
0.002s
admin utilities > getAllAdmins
returns all admin users
passed
0.004s
admin utilities > getAllAdmins
returns empty array when no admins found
passed
0.005s
admin utilities > getAllAdmins
handles admins with null names
passed
0.004s
admin utilities > promoteToAdmin
promotes user to admin successfully
passed
0.004s
admin utilities > promoteToAdmin
returns false on error
passed
0.005s
admin utilities > promoteToAdmin
handles database errors gracefully
passed
0.003s
admin utilities > demoteToCustomer
demotes admin to customer successfully
passed
0.004s
admin utilities > demoteToCustomer
returns false on error
passed
0.003s
admin utilities > demoteToCustomer
handles database errors gracefully
passed
0.004s
admin utilities > getSystemStats
returns complete system statistics
passed
0.003s
admin utilities > getSystemStats
handles zero revenue
passed
0.004s
admin utilities > getSystemStats
handles system with no users
passed
0.002s
admin utilities > getSystemStats
handles large numbers
passed
0.004s
admin utilities > getActivityLog
returns recent activity with default limit
passed
0.004s
admin utilities > getActivityLog
respects custom limit
passed
0.016s
admin utilities > getActivityLog
filters users by CUSTOMER role only
passed
0.002s
admin utilities > getActivityLog
handles empty results
passed
0.002s
admin utilities > getFlaggedContent
returns low-rated products and suspicious reviews
passed
0.002s
admin utilities > getFlaggedContent
queries for low ratings (2 or less)
passed
0.002s
admin utilities > getFlaggedContent
detects spam keywords in reviews
passed
0.002s
admin utilities > getFlaggedContent
limits results to 10 items
passed
0.003s
admin utilities > getFlaggedContent
handles no flagged content
passed
0.004s
admin utilities > getUserInsights
returns complete user insights
passed
0.003s
admin utilities > getUserInsights
returns null when user not found
passed
0.002s
admin utilities > getUserInsights
handles user with no orders
passed
0.003s
admin utilities > getUserInsights
handles user with no reviews
passed
0.002s
admin utilities > getUserInsights
rounds monetary values to 2 decimal places
passed
0.005s
admin utilities > getUserInsights
rounds rating to 1 decimal place
passed
0.002s
admin utilities > getUserInsights
handles empty cart and wishlist
passed
0.002s
admin utilities > bulkUpdateProductStatus
updates multiple products successfully
passed
0.003s
admin utilities > bulkUpdateProductStatus
updates only stock
passed
0.004s
admin utilities > bulkUpdateProductStatus
updates only price
passed
0.003s
admin utilities > bulkUpdateProductStatus
updates discounted price
passed
0.003s
admin utilities > bulkUpdateProductStatus
returns 0 when no products match
passed
0.002s
admin utilities > bulkUpdateProductStatus
handles empty product ID array
passed
0.002s
admin utilities > bulkUpdateProductStatus
updates all three fields simultaneously
passed
0.004s
admin utilities > generateComplianceReport
generates complete compliance report
passed
0.003s
admin utilities > generateComplianceReport
handles 100% compliance
passed
0.003s
admin utilities > generateComplianceReport
handles 0% compliance
passed
0.002s
admin utilities > generateComplianceReport
rounds compliance rates correctly
passed
0.003s
admin utilities > Error handling
handles database errors in isAdmin
passed
0.097s
admin utilities > Error handling
handles database errors in getSystemStats
passed
0.005s
admin utilities > Error handling
handles database errors in bulkUpdateProductStatus
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\account\MyAccount\__tests__\PasswordForm.test.tsx
26.386s
PasswordForm > Rendering
renders form with all password fields
passed
0.828s
PasswordForm > Rendering
renders with title
passed
0.057s
PasswordForm > Rendering
renders password fields with type=password
passed
0.049s
PasswordForm > Rendering
shows helper text for new password field
passed
0.041s
PasswordForm > Loading state
shows loading state when saving
passed
0.145s
PasswordForm > Loading state
shows normal state when not saving
passed
0.098s
PasswordForm > User interactions
allows typing in password fields
passed
2.608s
PasswordForm > Form submission
calls onSubmit with password values when form is valid
passed
1.886s
PasswordForm > Form submission
does not call onSubmit when passwords do not match
passed
1.943s
PasswordForm > Validation
shows error when new password does not meet requirements
passed
0.508s
PasswordForm > Validation
shows error when passwords do not match after submit
passed
2.059s
PasswordForm > Required fields
marks all password fields as required
passed
0.061s
PasswordForm > Accessibility
has proper labels for password fields
passed
0.041s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\__tests__\notifications.test.ts
2.715s
Notification System > createNotification
creates a notification with all fields
passed
0.013s
Notification System > createNotification
creates a notification without link
passed
0.004s
Notification System > createNotification
handles different notification types
passed
0.004s
Notification System > getUserNotifications
returns paginated notifications with default options
passed
0.005s
Notification System > getUserNotifications
handles pagination correctly
passed
0.006s
Notification System > getUserNotifications
filters unread notifications when unreadOnly is true
passed
0.004s
Notification System > getUserNotifications
handles custom page size
passed
0.003s
Notification System > getUserNotifications
converts null link to undefined
passed
0.004s
Notification System > markNotificationAsRead
marks a notification as read
passed
0.003s
Notification System > markAllNotificationsAsRead
marks all unread notifications as read for a user
passed
0.003s
Notification System > markAllNotificationsAsRead
returns zero count when no unread notifications
passed
0.023s
Notification System > deleteNotification
deletes a notification by ID
passed
0.002s
Notification System > getNotificationPreferences
returns existing preferences
passed
0.002s
Notification System > getNotificationPreferences
creates default preferences if none exist
passed
0.002s
Notification System > updateNotificationPreferences
updates existing preferences
passed
0.003s
Notification System > updateNotificationPreferences
creates preferences if none exist
passed
0.003s
Notification System > sendOrderNotification
sends PROCESSING notification
passed
0.003s
Notification System > sendOrderNotification
sends SHIPPED notification
passed
0.003s
Notification System > sendOrderNotification
sends DELIVERED notification
passed
0.002s
Notification System > sendOrderNotification
sends CANCELLED notification
passed
0.004s
Notification System > sendOrderNotification
handles unknown order status
passed
0.003s
Notification System > sendOrderNotification
creates notification even when orders preference is disabled
passed
0.003s
Notification System > sendReviewRequestNotification
sends review request notification
passed
0.002s
Notification System > sendReviewRequestNotification
throws error when reviews preference is disabled
passed
0.12s
Notification System > sendBackInStockNotification
sends back in stock notification
passed
0.003s
Notification System > sendBackInStockNotification
throws error when stock preference is disabled
passed
0.005s
Notification System > sendBackInStockNotification
throws error when product not found
passed
0.003s
Notification System > sendPromoNotification
sends promotional notification
passed
0.004s
Notification System > sendPromoNotification
throws error when promotions preference is disabled
passed
0.003s
Notification System > getUnreadCount
returns count of unread notifications
passed
0.003s
Notification System > getUnreadCount
returns zero when no unread notifications
passed
0.003s
Notification System > deleteOldNotifications
deletes read notifications older than default 30 days
passed
0.012s
Notification System > deleteOldNotifications
deletes read notifications older than custom days
passed
0.004s
Notification System > deleteOldNotifications
returns zero count when no old notifications
passed
0.003s
Notification System > bulkCreateNotifications
creates notifications for all users when no preferences exist
passed
0.004s
Notification System > bulkCreateNotifications
filters users based on notification preferences
passed
0.002s
Notification System > bulkCreateNotifications
handles order notifications with shipping type
passed
0.004s
Notification System > bulkCreateNotifications
returns zero when user list is empty
passed
0.004s
Notification System > bulkCreateNotifications
returns all skipped when all users have preference disabled
passed
0.002s
Notification System > bulkCreateNotifications
includes users without preferences (default enabled)
passed
0.002s
Notification System > bulkCreateNotifications
handles review notifications correctly
passed
0.001s
Notification System > bulkCreateNotifications
handles stock notifications correctly
passed
0.003s
Notification System > notifyWishlistUsersBackInStock
notifies all wishlist users with stock notifications enabled
passed
0.004s
Notification System > notifyWishlistUsersBackInStock
returns zero when no users have wishlisted the product
passed
0.001s
Notification System > notifyWishlistUsersBackInStock
returns zero when all wishlist users have stock notifications disabled
passed
0.016s
Notification System > notifyWishlistUsersBackInStock
calls sendBackInStockNotification for each eligible user
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\validation\__tests__\support-schemas.test.ts
3.808s
Support System Validation Schemas > TicketStatusSchema
should accept valid statuses
passed
0.008s
Support System Validation Schemas > TicketStatusSchema
should reject invalid statuses
passed
0.008s
Support System Validation Schemas > TicketPrioritySchema
should accept valid priorities
passed
0.002s
Support System Validation Schemas > TicketPrioritySchema
should reject invalid priorities
passed
0.027s
Support System Validation Schemas > TicketCategorySchema
should accept valid categories
passed
0.009s
Support System Validation Schemas > TicketCategorySchema
should reject invalid categories
passed
0.005s
Support System Validation Schemas > MessageSenderTypeSchema
should accept valid sender types
passed
0.007s
Support System Validation Schemas > MessageSenderTypeSchema
should reject invalid sender types
passed
0.005s
Support System Validation Schemas > CreateTicketSchema
should validate correct ticket data
passed
0.009s
Support System Validation Schemas > CreateTicketSchema
should reject empty email
passed
0.005s
Support System Validation Schemas > CreateTicketSchema
should reject invalid email format
passed
0.003s
Support System Validation Schemas > CreateTicketSchema
should reject email exceeding 255 characters
passed
0.003s
Support System Validation Schemas > CreateTicketSchema
should reject empty customer name
passed
0.005s
Support System Validation Schemas > CreateTicketSchema
should reject customer name exceeding 100 characters
passed
0.005s
Support System Validation Schemas > CreateTicketSchema
should reject subject less than 5 characters
passed
0.004s
Support System Validation Schemas > CreateTicketSchema
should reject subject exceeding 200 characters
passed
0.003s
Support System Validation Schemas > CreateTicketSchema
should reject description less than 20 characters
passed
0.003s
Support System Validation Schemas > CreateTicketSchema
should reject description exceeding 5000 characters
passed
0.003s
Support System Validation Schemas > CreateTicketSchema
should accept optional orderId
passed
0.003s
Support System Validation Schemas > CreateTicketSchema
should accept optional productId
passed
0.002s
Support System Validation Schemas > CreateTicketSchema
should reject zero orderId
passed
0.003s
Support System Validation Schemas > CreateTicketSchema
should reject negative productId
passed
0.003s
Support System Validation Schemas > CreateTicketSchema
should accept various valid email formats
passed
0.004s
Support System Validation Schemas > UpdateTicketSchema
should accept partial updates
passed
0.006s
Support System Validation Schemas > UpdateTicketSchema
should accept status updates
passed
0.004s
Support System Validation Schemas > UpdateTicketSchema
should accept priority updates
passed
0.006s
Support System Validation Schemas > UpdateTicketSchema
should accept nullable assignedToId
passed
0.004s
Support System Validation Schemas > UpdateTicketSchema
should accept positive assignedToId
passed
0.002s
Support System Validation Schemas > UpdateTicketSchema
should reject zero assignedToId
passed
0.002s
Support System Validation Schemas > UpdateTicketSchema
should accept tags within limit
passed
0.003s
Support System Validation Schemas > UpdateTicketSchema
should reject tags exceeding 500 characters
passed
0.038s
Support System Validation Schemas > UpdateTicketSchema
should accept internalNotes within limit
passed
0.004s
Support System Validation Schemas > UpdateTicketSchema
should reject internalNotes exceeding 5000 characters
passed
0.002s
Support System Validation Schemas > AssignTicketSchema
should accept positive assignee ID
passed
0.002s
Support System Validation Schemas > AssignTicketSchema
should accept null to unassign
passed
0.003s
Support System Validation Schemas > AssignTicketSchema
should reject zero assignee ID
passed
0.004s
Support System Validation Schemas > AssignTicketSchema
should reject negative assignee ID
passed
0.002s
Support System Validation Schemas > CreateMessageSchema
should validate correct message data
passed
0.003s
Support System Validation Schemas > CreateMessageSchema
should apply default isInternal of false
passed
0.001s
Support System Validation Schemas > CreateMessageSchema
should accept isInternal true
passed
0.002s
Support System Validation Schemas > CreateMessageSchema
should reject empty content
passed
0.002s
Support System Validation Schemas > CreateMessageSchema
should reject content exceeding 10000 characters
passed
0.001s
Support System Validation Schemas > CreateMessageSchema
should accept content at maximum length
passed
0.001s
Support System Validation Schemas > CreateArticleSchema
should validate correct article data
passed
0.003s
Support System Validation Schemas > CreateArticleSchema
should apply default isPublished of false
passed
0.002s
Support System Validation Schemas > CreateArticleSchema
should accept isPublished true
passed
0.002s
Support System Validation Schemas > CreateArticleSchema
should reject title less than 5 characters
passed
0.002s
Support System Validation Schemas > CreateArticleSchema
should reject title exceeding 200 characters
passed
0.001s
Support System Validation Schemas > CreateArticleSchema
should reject slug less than 3 characters
passed
0.001s
Support System Validation Schemas > CreateArticleSchema
should reject slug exceeding 200 characters
passed
0.001s
Support System Validation Schemas > CreateArticleSchema
should reject invalid slug format with uppercase
passed
0.002s
Support System Validation Schemas > CreateArticleSchema
should reject slug with spaces
passed
0.002s
Support System Validation Schemas > CreateArticleSchema
should reject slug with underscores
passed
0.002s
Support System Validation Schemas > CreateArticleSchema
should accept valid slug with hyphens
passed
0.001s
Support System Validation Schemas > CreateArticleSchema
should reject content less than 50 characters
passed
0.002s
Support System Validation Schemas > CreateArticleSchema
should reject content exceeding 50000 characters
passed
0.002s
Support System Validation Schemas > CreateArticleSchema
should reject summary less than 20 characters
passed
0.002s
Support System Validation Schemas > CreateArticleSchema
should reject summary exceeding 500 characters
passed
0.001s
Support System Validation Schemas > CreateArticleSchema
should reject empty category
passed
0.002s
Support System Validation Schemas > CreateArticleSchema
should reject category exceeding 100 characters
passed
0.001s
Support System Validation Schemas > CreateArticleSchema
should reject empty keywords
passed
0.001s
Support System Validation Schemas > CreateArticleSchema
should reject keywords exceeding 500 characters
passed
0.002s
Support System Validation Schemas > UpdateArticleSchema
should accept partial updates
passed
0.003s
Support System Validation Schemas > UpdateArticleSchema
should accept isPublished updates
passed
0.001s
Support System Validation Schemas > UpdateArticleSchema
should enforce slug format rules
passed
0.002s
Support System Validation Schemas > UpdateArticleSchema
should accept valid slug update
passed
0.001s
Support System Validation Schemas > CreateCannedResponseSchema
should validate correct canned response data
passed
0.002s
Support System Validation Schemas > CreateCannedResponseSchema
should reject title less than 3 characters
passed
0.001s
Support System Validation Schemas > CreateCannedResponseSchema
should reject title exceeding 100 characters
passed
0.001s
Support System Validation Schemas > CreateCannedResponseSchema
should reject shortcut less than 2 characters
passed
0.002s
Support System Validation Schemas > CreateCannedResponseSchema
should reject shortcut exceeding 50 characters
passed
0.001s
Support System Validation Schemas > CreateCannedResponseSchema
should reject shortcut with uppercase letters
passed
0.002s
Support System Validation Schemas > CreateCannedResponseSchema
should reject shortcut with spaces
passed
0.001s
Support System Validation Schemas > CreateCannedResponseSchema
should reject shortcut with underscores
passed
0.002s
Support System Validation Schemas > CreateCannedResponseSchema
should accept valid shortcut with hyphens
passed
0.001s
Support System Validation Schemas > CreateCannedResponseSchema
should reject content less than 10 characters
passed
0.001s
Support System Validation Schemas > CreateCannedResponseSchema
should reject content exceeding 5000 characters
passed
0.002s
Support System Validation Schemas > CreateCannedResponseSchema
should reject empty category
passed
0.001s
Support System Validation Schemas > CreateCannedResponseSchema
should reject category exceeding 100 characters
passed
0.002s
Support System Validation Schemas > UpdateCannedResponseSchema
should accept partial updates
passed
0.004s
Support System Validation Schemas > UpdateCannedResponseSchema
should enforce shortcut format rules
passed
0.001s
Support System Validation Schemas > UpdateCannedResponseSchema
should accept valid shortcut update
passed
0.001s
Support System Validation Schemas > SubmitSurveySchema
should validate correct survey data
passed
0.002s
Support System Validation Schemas > SubmitSurveySchema
should reject rating less than 1
passed
0.004s
Support System Validation Schemas > SubmitSurveySchema
should reject rating greater than 5
passed
0.002s
Support System Validation Schemas > SubmitSurveySchema
should accept all valid ratings 1-5
passed
0.002s
Support System Validation Schemas > SubmitSurveySchema
should accept optional feedback
passed
0.002s
Support System Validation Schemas > SubmitSurveySchema
should reject feedback exceeding 2000 characters
passed
0.002s
Support System Validation Schemas > SubmitSurveySchema
should accept optional boolean fields
passed
0.001s
Support System Validation Schemas > ChatbotMessageSchema
should validate correct message
passed
0.003s
Support System Validation Schemas > ChatbotMessageSchema
should reject empty message
passed
0.002s
Support System Validation Schemas > ChatbotMessageSchema
should reject message exceeding 1000 characters
passed
0.002s
Support System Validation Schemas > ChatbotMessageSchema
should accept message at maximum length
passed
0.004s
Support System Validation Schemas > ArticleHelpfulSchema
should accept helpful true
passed
0.003s
Support System Validation Schemas > ArticleHelpfulSchema
should accept helpful false
passed
0.002s
Support System Validation Schemas > ArticleHelpfulSchema
should require helpful field
passed
0.003s
Support System Validation Schemas > TicketFilterSchema
should accept single status value
passed
0.003s
Support System Validation Schemas > TicketFilterSchema
should accept array of statuses
passed
0.001s
Support System Validation Schemas > TicketFilterSchema
should accept single priority value
passed
0.001s
Support System Validation Schemas > TicketFilterSchema
should accept array of priorities
passed
0.003s
Support System Validation Schemas > TicketFilterSchema
should apply default pagination values
passed
0.002s
Support System Validation Schemas > TicketFilterSchema
should coerce string page to number
passed
0.001s
Support System Validation Schemas > TicketFilterSchema
should transform assignedToId null string
passed
0.003s
Support System Validation Schemas > TicketFilterSchema
should coerce assignedToId to number
passed
0.004s
Support System Validation Schemas > TicketFilterSchema
should accept date filters
passed
0.003s
Support System Validation Schemas > TicketFilterSchema
should coerce date strings
passed
0.002s
Support System Validation Schemas > TicketFilterSchema
should accept search query
passed
0.003s
Support System Validation Schemas > TicketFilterSchema
should reject search exceeding 200 characters
passed
0.001s
Support System Validation Schemas > TicketFilterSchema
should reject limit exceeding 100
passed
0.001s
Support System Validation Schemas > TicketFilterSchema
should accept valid sort fields
passed
0.002s
Support System Validation Schemas > TicketFilterSchema
should accept valid sort orders
passed
0.002s
Support System Validation Schemas > ArticleFilterSchema
should accept category filter
passed
0.002s
Support System Validation Schemas > ArticleFilterSchema
should transform isPublished string to boolean
passed
0.001s
Support System Validation Schemas > ArticleFilterSchema
should apply default pagination values
passed
0.002s
Support System Validation Schemas > ArticleFilterSchema
should accept search query
passed
0.002s
Support System Validation Schemas > ArticleFilterSchema
should reject search exceeding 200 characters
passed
0.003s
Support System Validation Schemas > BulkTicketActionSchema
should validate correct bulk action data
passed
0.003s
Support System Validation Schemas > BulkTicketActionSchema
should reject empty ticketIds array
passed
0.004s
Support System Validation Schemas > BulkTicketActionSchema
should accept all valid actions
passed
0.004s
Support System Validation Schemas > BulkTicketActionSchema
should accept optional value
passed
0.007s
Support System Validation Schemas > BulkTicketActionSchema
should accept string value
passed
0.005s
Support System Validation Schemas > BulkTicketActionSchema
should accept number value
passed
0.005s
Support System Validation Schemas > BulkTicketActionSchema
should accept null value
passed
0.004s
Support System Validation Schemas > FileUploadSchema
should validate correct file upload data
passed
0.005s
Support System Validation Schemas > FileUploadSchema
should reject empty fileName
passed
0.002s
Support System Validation Schemas > FileUploadSchema
should reject fileName exceeding 255 characters
passed
0.002s
Support System Validation Schemas > FileUploadSchema
should reject empty fileType
passed
0.002s
Support System Validation Schemas > FileUploadSchema
should reject fileType exceeding 100 characters
passed
0.002s
Support System Validation Schemas > FileUploadSchema
should reject zero fileSize
passed
0.002s
Support System Validation Schemas > FileUploadSchema
should reject negative fileSize
passed
0.002s
Support System Validation Schemas > FileUploadSchema
should reject fileSize exceeding 10MB
passed
0.002s
Support System Validation Schemas > FileUploadSchema
should accept fileSize at exactly 10MB
passed
0.002s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\promotions\__tests__\engine.test.ts
4.561s
PromotionEngine - calculateDiscount > Empty cart handling
should return zero discount for empty cart
passed
0.029s
PromotionEngine - calculateDiscount > PERCENTAGE_OFF promotions
should calculate percentage discount correctly
passed
0.007s
PromotionEngine - calculateDiscount > PERCENTAGE_OFF promotions
should respect minimum purchase requirement
passed
0.003s
PromotionEngine - calculateDiscount > PERCENTAGE_OFF promotions
should apply discount when minimum purchase is met
passed
0.001s
PromotionEngine - calculateDiscount > PERCENTAGE_OFF promotions
should cap discount at maximum discount limit
passed
0.007s
PromotionEngine - calculateDiscount > PERCENTAGE_OFF promotions
should scale item discounts proportionally when capped
passed
0.01s
PromotionEngine - calculateDiscount > FIXED_AMOUNT_OFF promotions
should calculate fixed amount discount correctly
passed
0.002s
PromotionEngine - calculateDiscount > FIXED_AMOUNT_OFF promotions
should not exceed cart total for fixed discount
passed
0.017s
PromotionEngine - calculateDiscount > BOGO promotions
should calculate buy-one-get-one 100% discount
passed
0.016s
PromotionEngine - calculateDiscount > BOGO promotions
should calculate buy-one-get-one 50% discount
passed
0.007s
PromotionEngine - calculateDiscount > BOGO promotions
should calculate multiple BOGO sets
passed
0.011s
PromotionEngine - calculateDiscount > BOGO promotions
should not give discount when quantity is insufficient
passed
0.003s
PromotionEngine - calculateDiscount > BOGO promotions
should return zero discount when no bogoConfig
passed
0.005s
PromotionEngine - calculateDiscount > BUNDLE promotions
should calculate bundle discount with fixed bundle price
passed
0.005s
PromotionEngine - calculateDiscount > BUNDLE promotions
should calculate multiple bundle sets
passed
0.003s
PromotionEngine - calculateDiscount > BUNDLE promotions
should return zero when bundle products not in cart
passed
0.003s
PromotionEngine - calculateDiscount > BUNDLE promotions
should return zero when no bundleConfig
passed
0.003s
PromotionEngine - calculateDiscount > BUNDLE promotions
should use discount type when bundlePrice not set
passed
0.004s
PromotionEngine - calculateDiscount > TIERED promotions
should apply correct tier based on quantity
passed
0.014s
PromotionEngine - calculateDiscount > TIERED promotions
should apply highest tier for large quantities
passed
0.025s
PromotionEngine - calculateDiscount > TIERED promotions
should return zero when quantity below minimum tier
passed
0.007s
PromotionEngine - calculateDiscount > TIERED promotions
should return zero when no tieredConfig
passed
0.004s
PromotionEngine - calculateDiscount > FREE_SHIPPING promotions
should set freeShipping flag
passed
0.014s
PromotionEngine - calculateDiscount > FREE_GIFT promotions
should add free gift items
passed
0.018s
PromotionEngine - calculateDiscount > FREE_GIFT promotions
should handle multiple free gift quantities
passed
0.016s
PromotionEngine - calculateDiscount > FREE_GIFT promotions
should return zero when no freeGiftConfig
passed
0.012s
PromotionEngine - calculateDiscount > FLASH_SALE, SEASONAL, FIRST_PURCHASE promotions
should use standard discount for FLASH_SALE type
passed
0.014s
PromotionEngine - calculateDiscount > FLASH_SALE, SEASONAL, FIRST_PURCHASE promotions
should use standard discount for SEASONAL type
passed
0.004s
PromotionEngine - calculateDiscount > FLASH_SALE, SEASONAL, FIRST_PURCHASE promotions
should use standard discount for FIRST_PURCHASE type
passed
0.052s
PromotionEngine - calculateDiscount > Target type filtering
should apply discount to specific products only
passed
0.006s
PromotionEngine - calculateDiscount > Target type filtering
should apply discount to specific categories only
passed
0.018s
PromotionEngine - calculateDiscount > Target type filtering
should return zero for specific products when no targetProducts
passed
0.004s
PromotionEngine - calculateDiscount > Target type filtering
should return zero for specific categories when no targetCategories
passed
0.006s
PromotionEngine - calculateDiscount > Target type filtering
should handle SHIPPING target type
passed
0.008s
PromotionEngine - calculateDiscount > Target type filtering
should handle CART_TOTAL target type
passed
0.001s
PromotionEngine - calculateDiscount > Target type filtering
should handle unknown target type
passed
0.004s
PromotionEngine - calculateDiscount > Target type filtering
should handle unknown promotion type
passed
0.006s
PromotionEngine - applyPromoCode
should return error for non-existent promo code
passed
0.013s
PromotionEngine - applyPromoCode
should return error for inactive promo code
passed
0.01s
PromotionEngine - applyPromoCode
should return error for expired promo code
passed
0.007s
PromotionEngine - applyPromoCode
should return error when code usage limit reached
passed
0.006s
PromotionEngine - applyPromoCode
should return error when promotion not started
passed
0.006s
PromotionEngine - applyPromoCode
should return error when promotion expired
passed
0.007s
PromotionEngine - applyPromoCode
should return error when promotion usage limit reached
passed
0.007s
PromotionEngine - applyPromoCode
should return error when customer usage limit reached
passed
0.009s
PromotionEngine - applyPromoCode
should return error when minimum purchase not met
passed
0.01s
PromotionEngine - applyPromoCode
should return error when conditions not met
passed
0.017s
PromotionEngine - applyPromoCode
should return error when discount is zero
passed
0.004s
PromotionEngine - applyPromoCode
should successfully apply valid promo code
passed
0.013s
PromotionEngine - applyPromoCode
should normalize promo code
passed
0.009s
PromotionEngine - applyPromoCode
should handle errors gracefully
passed
0.004s
PromotionEngine - findApplicablePromotions
should return empty array for empty cart
passed
0.005s
PromotionEngine - findApplicablePromotions
should find applicable promotions
passed
0.006s
PromotionEngine - findApplicablePromotions
should filter out inactive promotions
passed
0.003s
PromotionEngine - findApplicablePromotions
should filter out promotions with usage limit reached
passed
0.002s
PromotionEngine - findApplicablePromotions
should filter out promotions with customer limit reached
passed
0.002s
PromotionEngine - findApplicablePromotions
should filter out promotions not meeting minimum purchase
passed
0.002s
PromotionEngine - findApplicablePromotions
should handle errors gracefully
passed
0.003s
PromotionEngine - validateConditions
should return true when no conditions
passed
0.003s
PromotionEngine - validateConditions
should validate conditions
passed
0.003s
PromotionEngine - validateConditions
should return false when conditions fail
passed
0.004s
PromotionEngine - getBestPromotion
should return null when no non-stackable promotions
passed
0.005s
PromotionEngine - getBestPromotion
should return best non-stackable promotion
passed
0.005s
PromotionEngine - stackPromotions
should return empty result for empty promotions
passed
0.006s
PromotionEngine - stackPromotions
should stack stackable promotions
passed
0.006s
PromotionEngine - stackPromotions
should use best non-stackable promotion over stackable ones
passed
0.004s
PromotionEngine - stackPromotions
should merge free shipping flags
passed
0.005s
PromotionEngine - stackPromotions
should create savings breakdown
passed
0.004s
PromotionEngine - recordUsage
should record promotion usage
passed
0.007s
PromotionEngine - recordUsage
should record promo code usage when provided
passed
0.004s
PromotionEngine - recordUsage
should handle errors and log them
passed
0.264s
PromotionEngine - Edge Cases > Promotion message generation
should use displayName when available
passed
0.005s
PromotionEngine - Edge Cases > Promotion message generation
should generate message for free items
passed
0.003s
PromotionEngine - Edge Cases > Promotion message generation
should generate message for free shipping
passed
0.001s
PromotionEngine - Edge Cases > Promotion message generation
should generate default discount message
passed
0.001s
PromotionEngine - Edge Cases > Complex stacking scenarios
should handle promotion with zero discount after recalculation
passed
0.001s
PromotionEngine - Edge Cases > Complex stacking scenarios
should combine free items from multiple promotions
passed
0.001s
PromotionEngine - Edge Cases > BOGO with specific get product
should use get product price when specified
passed
0.002s
PromotionEngine - Edge Cases > Promotion applicability checks
should check if promotion applies to products in cart
passed
0.003s
PromotionEngine - Edge Cases > Promotion applicability checks
should check if promotion applies to categories in cart
passed
0.002s
PromotionEngine - Edge Cases > Promotion applicability checks
should filter promotions with failing conditions
passed
0.003s
PromotionEngine - Edge Cases > Promotion applicability checks
should filter promotions with no actual benefit
passed
0.002s
PromotionEngine - Edge Cases > Promotion applicability checks
should handle unknown target types in applicability check
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\checkout\__tests__\StripePaymentForm.test.tsx
7.4s
StripePaymentForm > Rendering
renders card element
passed
0.14s
StripePaymentForm > Rendering
renders order summary
passed
0.049s
StripePaymentForm > Rendering
renders submit button with correct amount
passed
0.182s
StripePaymentForm > Rendering
renders security message
passed
0.029s
StripePaymentForm > Rendering
disables button when Stripe is not loaded
passed
0.033s
StripePaymentForm > Form submission
shows error when Stripe is not loaded
passed
0.041s
StripePaymentForm > Form submission
shows error when card element not found
passed
0.181s
StripePaymentForm > Form submission
handles createPaymentMethod error
passed
0.131s
StripePaymentForm > Form submission
handles missing payment method
passed
0.105s
StripePaymentForm > Form submission
handles confirmCardPayment error
passed
0.11s
StripePaymentForm > Form submission
successfully processes payment
passed
0.142s
StripePaymentForm > Form submission
calls API to confirm payment on server
passed
0.126s
StripePaymentForm > Form submission
handles payment not completed status
passed
0.095s
StripePaymentForm > Form submission
continues even if server confirmation fails
passed
0.13s
StripePaymentForm > Loading state
shows loading spinner while processing
passed
0.088s
StripePaymentForm > Error display
displays error message when payment fails
passed
0.097s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\account\MyAccount\__tests__\AccountDetailsTab.test.tsx
8.159s
AccountDetailsTab > Rendering
renders ProfileForm component
passed
0.287s
AccountDetailsTab > Rendering
renders PasswordForm component
passed
0.096s
AccountDetailsTab > Rendering
renders both Save Changes buttons
passed
0.33s
AccountDetailsTab > Profile message display
shows success profile message
passed
0.081s
AccountDetailsTab > Profile message display
shows error profile message
passed
0.069s
AccountDetailsTab > Profile message display
does not show profile message when null
passed
0.062s
AccountDetailsTab > Profile message display
applies success styling to success message
passed
0.068s
AccountDetailsTab > Profile message display
applies error styling to error message
passed
0.118s
AccountDetailsTab > Password message display
shows success password message
passed
0.097s
AccountDetailsTab > Password message display
shows error password message
passed
0.058s
AccountDetailsTab > Password message display
does not show password message when null
passed
0.068s
AccountDetailsTab > Both messages display
can show both profile and password messages simultaneously
passed
0.07s
AccountDetailsTab > Props passing
passes userProfile to ProfileForm
passed
0.059s
AccountDetailsTab > Props passing
passes savingPassword to PasswordForm
passed
0.106s
AccountDetailsTab > Null userProfile handling
handles null userProfile gracefully
passed
0.044s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\account\MyAccount\__tests__\ProfileForm.test.tsx
12.238s
ProfileForm > Rendering
renders form with all fields
passed
0.455s
ProfileForm > Rendering
renders with user profile data
passed
0.093s
ProfileForm > Rendering
renders with empty values when userProfile is null
passed
0.047s
ProfileForm > Rendering
handles user with only first name
passed
0.066s
ProfileForm > Rendering
handles user with multiple last names
passed
0.054s
ProfileForm > Loading state
shows non-loading state when not saving
passed
0.086s
ProfileForm > Loading state
button shows loading indicator when savingProfile is true
passed
0.089s
ProfileForm > User interactions
allows editing first name
passed
0.347s
ProfileForm > User interactions
allows editing last name
passed
0.371s
ProfileForm > User interactions
allows editing phone number
passed
0.543s
ProfileForm > User interactions
allows selecting country
passed
0.206s
ProfileForm > Form submission
calls onSubmit with combined name and phone
passed
0.186s
ProfileForm > Form submission
calls onSubmit with updated values
passed
1.283s
ProfileForm > Form submission
calls onSubmit with null phone when empty
passed
0.172s
ProfileForm > Form submission
trims outer whitespace from combined name
passed
0.16s
ProfileForm > Profile updates
updates form when userProfile changes
passed
0.099s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\admin\monitoring\__tests__\ErrorDashboard.test.tsx
29.787s
ErrorDashboard > stats cards rendering
renders all stats cards with correct values
passed
0.663s
ErrorDashboard > stats cards rendering
formats large numbers with locale string
passed
0.219s
ErrorDashboard > stats cards rendering
renders stats cards with zero values
passed
0.261s
ErrorDashboard > top errors section
renders top errors list
passed
0.295s
ErrorDashboard > top errors section
displays error count badge
passed
0.385s
ErrorDashboard > top errors section
displays category badge for each error
passed
0.35s
ErrorDashboard > top errors section
shows empty state when no top errors
passed
0.201s
ErrorDashboard > top errors section
calls resolve API when resolve button clicked
passed
1.401s
ErrorDashboard > top errors section
shows success toast after resolving error
passed
0.631s
ErrorDashboard > top errors section
removes resolved error from top errors list
passed
0.552s
ErrorDashboard > top errors section
handles resolve API error gracefully
passed
0.472s
ErrorDashboard > error table
renders loading state initially
passed
0.129s
ErrorDashboard > error table
renders error rows after loading
passed
0.412s
ErrorDashboard > error table
renders empty state when no errors
passed
0.271s
ErrorDashboard > error table
displays level badge with correct styling
passed
0.274s
ErrorDashboard > sorting
renders sortable table headers
passed
0.305s
ErrorDashboard > sorting
renders initial sort state (createdAt desc)
passed
0.098s
ErrorDashboard > row expansion
renders clickable error rows
passed
0.222s
ErrorDashboard > row expansion
shows error details on first error
passed
0.375s
ErrorDashboard > selection and bulk actions
toggles error selection on checkbox click
passed
0.611s
ErrorDashboard > selection and bulk actions
shows bulk action bar when items selected
passed
0.617s
ErrorDashboard > selection and bulk actions
selects all visible errors when select all clicked
passed
0.566s
ErrorDashboard > selection and bulk actions
clears selection when clear button clicked
passed
0.69s
ErrorDashboard > selection and bulk actions
calls bulk resolve API with selected fingerprints
passed
0.766s
ErrorDashboard > export functionality
opens CSV export in new window
passed
0.309s
ErrorDashboard > export functionality
opens JSON export in new window
passed
0.551s
ErrorDashboard > refresh functionality
makes initial fetch on mount
passed
0.107s
ErrorDashboard > refresh functionality
renders refresh button in action bar
passed
0.425s
ErrorDashboard > error handling
shows error toast when fetch fails
passed
0.136s
StatCard
renders with default variant
passed
0.1s
StatCard
renders with warning variant
passed
0.082s
StatCard
renders with error variant
passed
0.175s
LevelBadge
renders error level with red styling
passed
0.432s
LevelBadge
renders warn level with yellow styling
passed
0.356s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\ecommerce\__tests__\orders.test.ts
3.081s
Order Utilities > calculateOrderTotals
should calculate totals for a simple order
passed
0.019s
Order Utilities > calculateOrderTotals
should include shipping for orders under threshold
passed
0.006s
Order Utilities > calculateOrderTotals
should apply discount correctly
passed
0.006s
Order Utilities > calculateOrderTotals
should not allow discount to exceed subtotal
passed
0.008s
Order Utilities > calculateOrderTotals
should handle negative discount amounts
passed
0.004s
Order Utilities > calculateOrderTotals
should handle empty items array
passed
0.006s
Order Utilities > calculateOrderTotals
should handle custom tax rate
passed
0.005s
Order Utilities > calculateOrderTotals
should ignore items with invalid prices or quantities
passed
0.005s
Order Utilities > calculateOrderTotals
should round calculations to 2 decimal places
passed
0.006s
Order Utilities > calculateOrderTotals
should calculate free shipping threshold correctly
passed
0.003s
Order Utilities > calculateOrderTotals
should charge shipping just below threshold
passed
0.003s
Order Utilities > calculateOrderTotals
should handle discount affecting shipping threshold
passed
0.004s
Order Utilities > calculateLineItemTotal
should calculate line item total
passed
0.003s
Order Utilities > calculateLineItemTotal
should handle decimal prices
passed
0.004s
Order Utilities > calculateLineItemTotal
should round to 2 decimal places
passed
0.002s
Order Utilities > calculateLineItemTotal
should return 0 for negative price
passed
0.004s
Order Utilities > calculateLineItemTotal
should return 0 for negative quantity
passed
0.002s
Order Utilities > calculateLineItemTotal
should handle zero quantity
passed
0.003s
Order Utilities > calculateDiscountAmount
should calculate discount from percentage
passed
0.003s
Order Utilities > calculateDiscountAmount
should handle decimal percentages
passed
0.005s
Order Utilities > calculateDiscountAmount
should round to 2 decimal places
passed
0.003s
Order Utilities > calculateDiscountAmount
should return 0 for negative subtotal
passed
0.002s
Order Utilities > calculateDiscountAmount
should return 0 for negative percentage
passed
0.004s
Order Utilities > calculateDiscountAmount
should return 0 for percentage over 100
passed
0.002s
Order Utilities > calculateDiscountAmount
should handle 0% discount
passed
0.004s
Order Utilities > calculateDiscountAmount
should handle 100% discount
passed
0.002s
Order Utilities > validateOrderItems
should validate valid order items
passed
0.003s
Order Utilities > validateOrderItems
should reject empty items array
passed
0.003s
Order Utilities > validateOrderItems
should reject null or undefined items
passed
0.005s
Order Utilities > validateOrderItems
should reject items with invalid product ID
passed
0.002s
Order Utilities > validateOrderItems
should reject items with zero quantity
passed
0.004s
Order Utilities > validateOrderItems
should reject items with negative quantity
passed
0.002s
Order Utilities > validateOrderItems
should reject items with negative price
passed
0.002s
Order Utilities > validateOrderItems
should collect multiple errors for multiple invalid items
passed
0.003s
Order Utilities > validateOrderItems
should accept price of 0
passed
0.002s
Order Utilities > validateShippingAddress
should validate valid shipping address
passed
0.004s
Order Utilities > validateShippingAddress
should reject empty address
passed
0.003s
Order Utilities > validateShippingAddress
should reject null address
passed
0.002s
Order Utilities > validateShippingAddress
should reject invalid JSON
passed
0.007s
Order Utilities > validateShippingAddress
should reject short street address
passed
0.005s
Order Utilities > validateShippingAddress
should reject short city
passed
0.002s
Order Utilities > validateShippingAddress
should reject short state
passed
0.003s
Order Utilities > validateShippingAddress
should reject invalid zip code format
passed
0.004s
Order Utilities > validateShippingAddress
should accept extended zip code format
passed
0.033s
Order Utilities > validateShippingAddress
should reject short country
passed
0.007s
Order Utilities > validateOrderData
should validate valid order data
passed
0.005s
Order Utilities > validateOrderData
should reject invalid user ID
passed
0.006s
Order Utilities > validateOrderData
should reject negative user ID
passed
0.004s
Order Utilities > validateOrderData
should reject invalid items
passed
0.003s
Order Utilities > validateOrderData
should reject invalid shipping address
passed
0.003s
Order Utilities > validateOrderData
should reject negative discount
passed
0.005s
Order Utilities > validateOrderData
should accept zero discount
passed
0.005s
Order Utilities > validateOrderData
should collect multiple validation errors
passed
0.005s
Order Utilities > canTransitionStatus
should allow PROCESSING to SHIPPED
passed
0.041s
Order Utilities > canTransitionStatus
should allow PROCESSING to CANCELLED
passed
0.002s
Order Utilities > canTransitionStatus
should allow SHIPPED to DELIVERED
passed
0.002s
Order Utilities > canTransitionStatus
should allow SHIPPED to CANCELLED
passed
0.002s
Order Utilities > canTransitionStatus
should not allow DELIVERED to any status
passed
0.003s
Order Utilities > canTransitionStatus
should not allow CANCELLED to any status
passed
0.005s
Order Utilities > canTransitionStatus
should not allow PROCESSING to DELIVERED
passed
0.003s
Order Utilities > canTransitionStatus
should not allow SHIPPED to PROCESSING
passed
0.001s
Order Utilities > getAllowedStatusTransitions
should return allowed transitions for PROCESSING
passed
0.003s
Order Utilities > getAllowedStatusTransitions
should return allowed transitions for SHIPPED
passed
0.002s
Order Utilities > getAllowedStatusTransitions
should return empty array for DELIVERED
passed
0.003s
Order Utilities > getAllowedStatusTransitions
should return empty array for CANCELLED
passed
0.002s
Order Utilities > validateStatusTransition
should validate allowed transition
passed
0.005s
Order Utilities > validateStatusTransition
should reject same status transition
passed
0.001s
Order Utilities > validateStatusTransition
should reject invalid transition
passed
0.002s
Order Utilities > validateStatusTransition
should provide helpful error message with allowed transitions
passed
0.004s
Order Utilities > formatOrderNumber
should format order number with padding
passed
0.004s
Order Utilities > formatOrderNumber
should handle large order numbers
passed
0.002s
Order Utilities > formatOrderNumber
should handle very large order numbers
passed
0.003s
Order Utilities > parseOrderNumber
should parse valid order number
passed
0.002s
Order Utilities > parseOrderNumber
should parse large order numbers
passed
0.002s
Order Utilities > parseOrderNumber
should return null for invalid format
passed
0.001s
Order Utilities > isOrderCancellable
should return true for PROCESSING
passed
0.003s
Order Utilities > isOrderCancellable
should return true for SHIPPED
passed
0.002s
Order Utilities > isOrderCancellable
should return false for DELIVERED
passed
0.002s
Order Utilities > isOrderCancellable
should return false for CANCELLED
passed
0.002s
Order Utilities > isOrderModifiable
should return true for PROCESSING
passed
0.002s
Order Utilities > isOrderModifiable
should return false for SHIPPED
passed
0.004s
Order Utilities > isOrderModifiable
should return false for DELIVERED
passed
0.004s
Order Utilities > isOrderModifiable
should return false for CANCELLED
passed
0.002s
Order Utilities > getOrderStatusDisplay
should return display text for PROCESSING
passed
0.001s
Order Utilities > getOrderStatusDisplay
should return display text for SHIPPED
passed
0.003s
Order Utilities > getOrderStatusDisplay
should return display text for DELIVERED
passed
0.002s
Order Utilities > getOrderStatusDisplay
should return display text for CANCELLED
passed
0.003s
Order Utilities > getOrderStatusColor
should return color for PROCESSING
passed
0.002s
Order Utilities > getOrderStatusColor
should return color for SHIPPED
passed
0.002s
Order Utilities > getOrderStatusColor
should return color for DELIVERED
passed
0.003s
Order Utilities > getOrderStatusColor
should return color for CANCELLED
passed
0.002s
Order Utilities > validatePromoCode
should validate valid promo code
passed
0.002s
Order Utilities > validatePromoCode
should accept alphanumeric codes
passed
0.003s
Order Utilities > validatePromoCode
should reject empty code
passed
0.001s
Order Utilities > validatePromoCode
should reject code with whitespace
passed
0.001s
Order Utilities > validatePromoCode
should reject code too short
passed
0.002s
Order Utilities > validatePromoCode
should reject code too long
passed
0.003s
Order Utilities > validatePromoCode
should reject lowercase letters
passed
0.002s
Order Utilities > validatePromoCode
should reject special characters
passed
0.003s
Order Utilities > isPromoCodeExpired
should return false for future date
passed
0.002s
Order Utilities > isPromoCodeExpired
should return true for past date
passed
0.001s
Order Utilities > isPromoCodeExpired
should handle dates very close to now
passed
0.001s
Order Utilities > isPromoCodeLimitReached
should return false when under limit
passed
0.002s
Order Utilities > isPromoCodeLimitReached
should return true when at limit
passed
0.002s
Order Utilities > isPromoCodeLimitReached
should return true when over limit
passed
0.001s
Order Utilities > isPromoCodeLimitReached
should return false for null limit (unlimited)
passed
0.004s
Order Utilities > isPromoCodeLimitReached
should handle zero limit
passed
0.001s
Order Utilities > createOrder
should create order with valid data
passed
0.007s
Order Utilities > createOrder
should include billing address if provided
passed
0.003s
Order Utilities > createOrder
should use shipping address as billing if not provided
passed
0.005s
Order Utilities > createOrder
should include promo code if provided
passed
0.003s
Order Utilities > createOrder
should throw error for invalid order data
passed
0.153s
Order Utilities > createOrder
should create order items
passed
0.004s
Order Utilities > updateOrderStatus
should update order status when transition is valid
passed
0.003s
Order Utilities > updateOrderStatus
should throw error if order not found
passed
0.003s
Order Utilities > updateOrderStatus
should throw error for invalid status transition
passed
0.004s
Order Utilities > updateOrderStatus
should work with transaction client
passed
0.004s
Order Utilities > cancelOrder
should cancel PROCESSING order
passed
0.003s
Order Utilities > cancelOrder
should cancel SHIPPED order
passed
0.002s
Order Utilities > cancelOrder
should throw error if order not found
passed
0.003s
Order Utilities > cancelOrder
should throw error for DELIVERED order
passed
0.003s
Order Utilities > cancelOrder
should throw error for already CANCELLED order
passed
0.002s
Order Utilities > cancelOrder
should work with transaction client
passed
0.003s
Order Utilities > Constants
should have correct TAX_RATE
passed
0.001s
Order Utilities > Constants
should have correct FREE_SHIPPING_THRESHOLD
passed
0.001s
Order Utilities > Constants
should have correct STANDARD_SHIPPING_COST
passed
0.002s
Order Utilities > Constants
should have correct ORDER_STATUS_TRANSITIONS
passed
0.002s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\integrations\__tests__\stripe.test.ts
29.777s
Stripe Utilities > getStripeClient
should initialize Stripe client with API key
passed
0.587s
Stripe Utilities > getStripeClient
should throw error when STRIPE_SECRET_KEY is not set
passed
0.502s
Stripe Utilities > getStripeClient
should throw error when STRIPE_SECRET_KEY is empty string
passed
0.341s
Stripe Utilities > getStripeClient
should return same instance on multiple calls (singleton pattern)
passed
0.309s
Stripe Utilities > getStripeClient
should handle different API key formats
passed
0.746s
Stripe Utilities > STRIPE_CONFIG
should have correct default currency
passed
0.301s
Stripe Utilities > STRIPE_CONFIG
should have card as payment method
passed
0.452s
Stripe Utilities > STRIPE_CONFIG
should have valid success URL with session_id placeholder
passed
0.502s
Stripe Utilities > STRIPE_CONFIG
should have valid cancel URL
passed
0.504s
Stripe Utilities > STRIPE_CONFIG
should handle missing NEXTAUTH_URL gracefully
passed
0.46s
Stripe Utilities > STRIPE_CONFIG
should be immutable (readonly)
passed
0.385s
Stripe Utilities > toStripeCents
should convert dollars to cents correctly
passed
0.347s
Stripe Utilities > toStripeCents
should round to nearest cent
passed
0.387s
Stripe Utilities > toStripeCents
should handle zero correctly
passed
0.39s
Stripe Utilities > toStripeCents
should handle negative amounts
passed
0.356s
Stripe Utilities > toStripeCents
should handle large amounts
passed
0.587s
Stripe Utilities > toStripeCents
should handle very small amounts
passed
0.472s
Stripe Utilities > toStripeCents
should handle fractional cents correctly
passed
0.328s
Stripe Utilities > fromStripeCents
should convert cents to dollars correctly
passed
0.733s
Stripe Utilities > fromStripeCents
should handle zero correctly
passed
0.563s
Stripe Utilities > fromStripeCents
should handle negative amounts
passed
0.805s
Stripe Utilities > fromStripeCents
should handle large amounts
passed
0.477s
Stripe Utilities > fromStripeCents
should handle single cent
passed
0.58s
Stripe Utilities > fromStripeCents
should be inverse of toStripeCents for whole dollars
passed
0.72s
Stripe Utilities > fromStripeCents
should handle decimal precision correctly
passed
0.36s
Stripe Utilities > formatStripeError
should format StripeCardError correctly
passed
0.605s
Stripe Utilities > formatStripeError
should handle StripeCardError logic for empty message
passed
0.513s
Stripe Utilities > formatStripeError
should format StripeRateLimitError correctly
passed
0.503s
Stripe Utilities > formatStripeError
should format StripeInvalidRequestError correctly
passed
0.421s
Stripe Utilities > formatStripeError
should format StripeAPIError correctly
passed
0.345s
Stripe Utilities > formatStripeError
should format StripeConnectionError correctly
passed
0.438s
Stripe Utilities > formatStripeError
should format StripeAuthenticationError correctly
passed
0.255s
Stripe Utilities > formatStripeError
should format unknown StripeError type with default message
passed
0.327s
Stripe Utilities > formatStripeError
should format generic Error objects
passed
0.38s
Stripe Utilities > formatStripeError
should handle unknown error types
passed
0.261s
Stripe Utilities > formatStripeError
should handle null error
passed
0.274s
Stripe Utilities > formatStripeError
should handle undefined error
passed
0.427s
Stripe Utilities > formatStripeError
should handle object without message
passed
0.483s
Stripe Utilities > formatStripeError
should prioritize Stripe error formatting over Error formatting
passed
0.346s
Stripe Utilities > Round-trip conversions
should maintain precision for standard amounts
passed
0.328s
Stripe Utilities > Type safety
should export functions with correct signatures
passed
0.676s
Stripe Utilities > Type safety
should handle numeric edge cases
passed
0.333s
Stripe Utilities > Integration scenarios
should handle typical checkout flow amount conversions
passed
0.395s
Stripe Utilities > Integration scenarios
should handle refund scenarios
passed
0.483s
Stripe Utilities > Integration scenarios
should format multiple error types in sequence
passed
0.313s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\__tests__\cart\Cart.test.tsx
6.726s
Cart Component > Empty Cart State
renders empty cart message when cart is empty
passed
0.096s
Cart Component > Empty Cart State
displays empty cart icon when cart is empty
passed
0.02s
Cart Component > Empty Cart State
shows 'Continue Shopping' link when cart is empty
passed
0.163s
Cart Component > Empty Cart State
does not render cart items section when empty
passed
0.014s
Cart Component > Cart with Items
renders cart heading when cart has items
passed
0.058s
Cart Component > Cart with Items
renders all cart items
passed
0.025s
Cart Component > Cart with Items
renders correct number of cart items
passed
0.057s
Cart Component > Cart with Items
renders 'Clear Shopping Cart' button
passed
0.057s
Cart Component > Cart with Items
renders order summary section
passed
0.037s
Cart Component > Cart with Items
renders discount section
passed
0.03s
Cart Component > Cart with Items
does not show empty cart message when items exist
passed
0.052s
Cart Component > Cart Table Structure
renders table headers with correct labels
passed
0.053s
Cart Component > Cart Table Structure
maintains proper table structure with responsive design classes
passed
0.029s
Cart Component > Single Item Edge Cases
handles single item in cart
passed
0.022s
Cart Component > Single Item Edge Cases
handles many items in cart (performance)
passed
0.107s
Cart Component > Component Integration
renders main section when cart has items
passed
0.029s
Cart Component > Component Integration
passes correct cart items to SingleItem components
passed
0.052s
Cart Component > Styling and Layout
applies correct background colors for sections
passed
0.023s
Cart Component > Styling and Layout
applies responsive padding and spacing
passed
0.027s
Cart Component > Accessibility
has proper button roles for Clear Shopping Cart
passed
0.042s
Cart Component > Accessibility
has proper link role for Continue Shopping
passed
0.022s
Cart Component > Accessibility
provides semantic HTML structure with sections
passed
0.02s
Cart Component > Conditional Rendering
shows cart content only when items exist
passed
0.048s
Cart Component > Conditional Rendering
shows empty state only when no items exist
passed
0.014s
Cart Component > Conditional Rendering
transitions from filled to empty state correctly
passed
0.033s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\cart\Wishlist\__tests__\SingleItem.test.tsx
6.876s
Wishlist SingleItem > rendering
should render product title
passed
0.153s
Wishlist SingleItem > rendering
should render product thumbnail
passed
0.249s
Wishlist SingleItem > rendering
should render price display
passed
0.031s
Wishlist SingleItem > rendering
should render original price with strikethrough when discounted
passed
0.03s
Wishlist SingleItem > rendering
should render remove button
passed
0.08s
Wishlist SingleItem > rendering
should render add to cart button
passed
0.088s
Wishlist SingleItem > rendering
should show out of stock status
passed
0.03s
Wishlist SingleItem > remove from wishlist
should remove item from wishlist when remove button is clicked
passed
0.131s
Wishlist SingleItem > remove from wishlist
should dispatch removeFromWishlistAsync with correct id
passed
0.145s
Wishlist SingleItem > add to cart
should add item to cart when add to cart button is clicked
passed
0.094s
Wishlist SingleItem > add to cart
should add item with quantity 1
passed
0.045s
Wishlist SingleItem > add to cart
should preserve item data when adding to cart
passed
0.05s
Wishlist SingleItem > price display variants
should handle item with no discount
passed
0.066s
Wishlist SingleItem > price display variants
should show both prices for discounted item
passed
0.03s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\ecommerce\__tests__\inventory.test.ts
3.404s
Inventory Management > getOrCreateInventory
should return existing inventory record
passed
0.02s
Inventory Management > getOrCreateInventory
should create inventory record if it doesn't exist
passed
0.008s
Inventory Management > getOrCreateInventory
should throw error if product doesn't exist
passed
0.152s
Inventory Management > recordStockMovement
should record stock IN movement
passed
0.013s
Inventory Management > recordStockMovement
should record stock OUT movement
passed
0.005s
Inventory Management > recordStockMovement
should record stock ADJUSTMENT movement
passed
0.006s
Inventory Management > recordStockMovement
should throw error for zero or negative quantity
passed
0.014s
Inventory Management > recordStockMovement
should throw error when OUT movement causes negative inventory
passed
0.007s
Inventory Management > recordStockMovement
should notify wishlist users when product comes back in stock
passed
0.019s
Inventory Management > recordStockMovement
should not notify wishlist users if product was already in stock
passed
0.016s
Inventory Management > recordStockMovement
should handle notification errors gracefully
passed
0.016s
Inventory Management > getStockMovementHistory
should return movement history with default limit
passed
0.007s
Inventory Management > getStockMovementHistory
should respect custom limit
passed
0.004s
Inventory Management > getStockMovementHistory
should convert null values to undefined
passed
0.004s
Inventory Management > decreaseStockOnOrder
should decrease stock with order information
passed
0.007s
Inventory Management > increaseStockOnReturn
should increase stock with return information
passed
0.005s
Inventory Management > getLowStockAlerts
should return products at or below reorder level
passed
0.006s
Inventory Management > getLowStockAlerts
should return empty array when no low stock items
passed
0.006s
Inventory Management > getLowStockAlerts
should include zero stock items
passed
0.004s
Inventory Management > isProductInStock
should return true when product has stock
passed
0.004s
Inventory Management > isProductInStock
should return false when product is out of stock
passed
0.005s
Inventory Management > getProductStock
should return current stock quantity
passed
0.004s
Inventory Management > updateReorderLevel
should update existing inventory reorder level
passed
0.004s
Inventory Management > updateReorderLevel
should create inventory if it doesn't exist
passed
0.002s
Inventory Management > updateReorderLevel
should throw error for negative reorder level
passed
0.005s
Inventory Management > updateReorderLevel
should allow zero reorder level
passed
0.003s
Inventory Management > bulkUpdateStock
should successfully update multiple products
passed
0.003s
Inventory Management > bulkUpdateStock
should collect errors for failed updates
passed
0.003s
Inventory Management > bulkUpdateStock
should handle all updates failing
passed
0.005s
Inventory Management > bulkUpdateStock
should handle empty update list
passed
0.003s
Inventory Management > getInventorySummary
should return complete inventory summary
passed
0.004s
Inventory Management > getInventorySummary
should handle empty inventory
passed
0.01s
Inventory Management > syncInventoryWithProducts
should sync all products with inventory
passed
0.006s
Inventory Management > syncInventoryWithProducts
should create inventory records with default reorder level
passed
0.004s
Inventory Management > syncInventoryWithProducts
should handle no products
passed
0.004s
Inventory Management > getOutOfStockProducts
should return all out of stock products
passed
0.008s
Inventory Management > getOutOfStockProducts
should return empty array when all products in stock
passed
0.004s
Inventory Management > reserveStock
should reserve stock when sufficient quantity available
passed
0.004s
Inventory Management > reserveStock
should throw error when insufficient stock to reserve
passed
0.003s
Inventory Management > reserveStock
should allow reserving exact available quantity
passed
0.001s
Inventory Management > releaseReservedStock
should release reserved stock
passed
0.001s
Inventory Management > Edge cases and integration scenarios
should handle concurrent stock movements correctly
passed
0.003s
Inventory Management > Edge cases and integration scenarios
should handle products at exactly zero stock
passed
0.003s
Inventory Management > Edge cases and integration scenarios
should handle very large stock quantities
passed
0.002s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\admin\monitoring\ErrorDetailPanel.test.tsx
12.315s
ErrorDetailPanel
renders panel
passed
0.228s
ErrorDetailPanel
fetches error details on mount
passed
0.328s
ErrorDetailPanel
displays error message after loading
passed
0.133s
ErrorDetailPanel
displays badges
passed
0.096s
ErrorDetailPanel
has three tabs
passed
0.044s
ErrorDetailPanel
calls onClose when close button clicked
passed
0.14s
ErrorDetailPanel
calls onClose when backdrop clicked
passed
0.194s
ErrorDetailPanel
calls onClose when Escape key pressed
passed
0.197s
ErrorDetailPanel
shows resolve button for open errors
passed
0.172s
ErrorDetailPanel
shows ignore button
passed
0.102s
ErrorDetailPanel
shows snooze button
passed
0.127s
ErrorDetailPanel
switches between tabs
passed
0.286s
ErrorDetailPanel
shows reopen button for resolved errors
passed
0.109s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\shop\__tests__\ShopWithSidebar.test.tsx
7.06s
ShopWithSidebar Component > Initial Rendering
renders sidebar with filters
passed
0.279s
ShopWithSidebar Component > Initial Rendering
renders product grid
passed
0.11s
ShopWithSidebar Component > Initial Rendering
renders view toggle buttons (grid/list)
passed
0.217s
ShopWithSidebar Component > Initial Rendering
renders Clear All filters button
passed
0.081s
ShopWithSidebar Component > Loading State
shows loading skeleton while fetching products
passed
0.028s
ShopWithSidebar Component > Loading State
hides loading skeleton after products load
passed
0.069s
ShopWithSidebar Component > Product Fetching
fetches products on mount
passed
0.038s
ShopWithSidebar Component > Product Fetching
fetches categories on mount
passed
0.076s
ShopWithSidebar Component > Product Fetching
displays fetched products
passed
0.102s
ShopWithSidebar Component > Product Fetching
passes correct pagination parameters
passed
0.038s
ShopWithSidebar Component > Error Handling
handles product fetch failure gracefully
passed
0.123s
ShopWithSidebar Component > Error Handling
handles error recovery
passed
0.062s
ShopWithSidebar Component > Error Handling
handles categories fetch failure gracefully
passed
0.154s
ShopWithSidebar Component > Empty State
handles empty product list
passed
0.032s
ShopWithSidebar Component > Product Display Count
displays product count section
passed
0.066s
ShopWithSidebar Component > Search Query Display
handles search query in URL
passed
0.055s
ShopWithSidebar Component > Search Query Display
passes search query to API
passed
0.055s
ShopWithSidebar Component > View Toggle (Grid/List)
defaults to grid view
passed
0.067s
ShopWithSidebar Component > View Toggle (Grid/List)
switches to list view when list button is clicked
passed
0.124s
ShopWithSidebar Component > View Toggle (Grid/List)
switches back to grid view when grid button is clicked
passed
0.211s
ShopWithSidebar Component > Category Filtering
filters products by category when category is selected
passed
0.118s
ShopWithSidebar Component > Category Filtering
updates URL when category is selected
passed
0.143s
ShopWithSidebar Component > Category Filtering
loads category from URL parameter
passed
0.038s
ShopWithSidebar Component > Category Filtering
clears category filter when Clear All is clicked
passed
0.074s
ShopWithSidebar Component > Pagination
shows pagination when total products > 9
passed
0.249s
ShopWithSidebar Component > Pagination
does not show pagination when total products <= 9
passed
0.072s
ShopWithSidebar Component > Pagination
fetches next page when pagination button is clicked
passed
0.251s
ShopWithSidebar Component > Pagination
handles first page state
passed
0.037s
ShopWithSidebar Component > Pagination
handles last page state
passed
0.05s
ShopWithSidebar Component > Sidebar Toggle (Mobile)
renders sidebar toggle button
passed
0.088s
ShopWithSidebar Component > Sidebar Toggle (Mobile)
toggles sidebar visibility when button is clicked
passed
0.136s
ShopWithSidebar Component > Sorting Options
renders sorting dropdown with options
passed
0.069s
ShopWithSidebar Component > Sorting Options
includes Latest Products option
passed
0.082s
ShopWithSidebar Component > Sorting Options
includes Best Selling option
passed
0.063s
ShopWithSidebar Component > Sorting Options
includes Old Products option
passed
0.075s
ShopWithSidebar Component > Sticky Menu Behavior
adds sticky class when scrolled past threshold
passed
0.107s
ShopWithSidebar Component > URL Synchronization
syncs category filter from URL on mount
passed
0.07s
ShopWithSidebar Component > URL Synchronization
preserves search query when updating category
passed
0.145s
ShopWithSidebar Component > Accessibility
has proper button labels for navigation
passed
0.079s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\shared\ErrorBoundary\__tests__\ErrorBoundary.test.tsx
10.475s
ErrorBoundary > Basic functionality
renders children when no error
passed
0.085s
ErrorBoundary > Basic functionality
catches errors and displays fallback UI
passed
0.676s
ErrorBoundary > Basic functionality
uses custom fallback ReactNode when provided
passed
0.022s
ErrorBoundary > Basic functionality
uses custom fallback function when provided
passed
0.016s
ErrorBoundary > Basic functionality
calls onError callback when error occurs
passed
0.095s
ErrorBoundary > Basic functionality
logs error with context
passed
0.065s
ErrorBoundary > Basic functionality
uses ERROR_BOUNDARY context when not provided
passed
0.046s
ErrorBoundary > Basic functionality
reports error to backend by default
passed
0.038s
ErrorBoundary > Basic functionality
does not report to backend when reportToBackend is false
passed
0.046s
ErrorBoundary > Basic functionality
displays error ID
passed
0.095s
ErrorBoundary > Basic functionality
resets error state when Try Again is clicked
passed
0.119s
ErrorBoundary > Variant: minimal
shows minimal error UI
passed
0.051s
ErrorBoundary > getDerivedStateFromError
sets hasError to true and stores error
passed
0.016s
CheckoutErrorBoundary
renders children when no error
passed
0.022s
CheckoutErrorBoundary
shows checkout-specific error UI
passed
0.14s
CheckoutErrorBoundary
shows reassurance about no charges
passed
0.047s
CheckoutErrorBoundary
provides Try Again button
passed
0.048s
CheckoutErrorBoundary
provides Return to Cart link
passed
0.123s
CheckoutErrorBoundary
logs error with CHECKOUT context
passed
0.046s
AdminErrorBoundary
renders children when no error
passed
0.007s
AdminErrorBoundary
shows admin-specific error UI
passed
0.032s
AdminErrorBoundary
provides Reload Page button
passed
0.062s
AdminErrorBoundary
has toggle for technical details
passed
0.089s
AdminErrorBoundary
logs error with ADMIN context
passed
0.04s
ShopErrorBoundary
renders children when no error
passed
0.02s
ShopErrorBoundary
shows shop-specific error UI
passed
0.068s
ShopErrorBoundary
provides Refresh Page button
passed
0.104s
ShopErrorBoundary
logs error with SHOP context
passed
0.04s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\auth\__tests__\signup.test.ts
7.682s
POST /api/auth/signup > Successful signup
creates user with valid data
passed
0.074s
POST /api/auth/signup > Successful signup
hashes password before storage
passed
0.013s
POST /api/auth/signup > Successful signup
creates user without name (optional field)
passed
0.008s
POST /api/auth/signup > Validation errors
rejects invalid email format
passed
0.01s
POST /api/auth/signup > Validation errors
rejects password shorter than 6 characters
passed
0.01s
POST /api/auth/signup > Validation errors
rejects mismatched passwords
passed
0.008s
POST /api/auth/signup > Validation errors
rejects missing email
passed
0.009s
POST /api/auth/signup > Validation errors
rejects missing password
passed
0.027s
POST /api/auth/signup > Duplicate email handling
rejects duplicate email
passed
0.01s
POST /api/auth/signup > Rate limiting
enforces rate limit after 5 requests
passed
0.012s
POST /api/auth/signup > Rate limiting
includes rate limit headers in response
passed
0.008s
POST /api/auth/signup > Error handling
returns 500 on database error
passed
0.106s
POST /api/auth/signup > Error handling
returns 500 on bcrypt error
passed
0.01s
POST /api/auth/signup > Error handling
returns 500 on user creation error
passed
0.007s
POST /api/auth/signup > Email verification
generates verification token
passed
0.007s
POST /api/auth/signup > Email verification
sends verification email after signup
passed
0.008s
POST /api/auth/signup > Email verification
includes emailVerificationRequired flag in response
passed
0.004s
POST /api/auth/signup > Email verification
succeeds even if email sending fails
passed
0.006s
POST /api/auth/signup > Email normalization
converts email to lowercase for storage
passed
0.011s
POST /api/auth/signup > Email normalization
checks for existing user with case-insensitive email
passed
0.006s
POST /api/auth/signup > Password validation edge cases
accepts password with special characters
passed
0.006s
POST /api/auth/signup > Password validation edge cases
accepts long password
passed
0.007s
POST /api/auth/signup > Password validation edge cases
rejects password with exactly 5 characters
passed
0.009s
POST /api/auth/signup > Password validation edge cases
accepts password with exactly 6 characters (minimum)
passed
0.005s
POST /api/auth/signup > Name field validation
accepts name with spaces
passed
0.005s
POST /api/auth/signup > Name field validation
accepts name with special characters
passed
0.011s
POST /api/auth/signup > Response security
does not include password in response
passed
0.008s
POST /api/auth/signup > Response security
does not include verificationToken in response
passed
0.008s
POST /api/auth/signup > IP-based rate limiting
rate limits based on x-forwarded-for header
passed
0.004s
POST /api/auth/signup > IP-based rate limiting
rate limits based on x-real-ip header when x-forwarded-for is missing
passed
0.005s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\__tests__\dashboard.test.ts
7.574s
GET /api/admin/dashboard > Authentication & Authorization
requires authentication
passed
0.061s
GET /api/admin/dashboard > Authentication & Authorization
requires admin role
passed
0.009s
GET /api/admin/dashboard > Authentication & Authorization
allows admin access
passed
0.014s
GET /api/admin/dashboard > Dashboard sections
returns all sections by default
passed
0.008s
GET /api/admin/dashboard > Dashboard sections
returns only overview section when requested
passed
0.015s
GET /api/admin/dashboard > Dashboard sections
returns only orders section when requested
passed
0.013s
GET /api/admin/dashboard > Dashboard sections
returns only sales section when requested
passed
0.008s
GET /api/admin/dashboard > Dashboard sections
returns only products section when requested
passed
0.006s
GET /api/admin/dashboard > Dashboard sections
returns only customers section when requested
passed
0.005s
GET /api/admin/dashboard > Error handling
returns 500 on analytics error
passed
0.093s
GET /api/admin/dashboard > Error handling
returns 500 on database error
passed
0.007s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\checkout\__tests__\PaymentForm.test.tsx
37.976s
PaymentForm > Rendering
renders payment method options
passed
0.582s
PaymentForm > Rendering
renders form with aria-label
passed
0.5s
PaymentForm > Rendering
renders submit button with correct amount
passed
0.161s
PaymentForm > Rendering
shows credit card fields by default
passed
0.171s
PaymentForm > Payment method selection
selects credit card by default
passed
0.362s
PaymentForm > Payment method selection
switches to paypal
passed
0.412s
PaymentForm > Payment method selection
switches to apple pay
passed
0.518s
PaymentForm > Credit card form validation
formats card number with spaces
passed
1.21s
PaymentForm > Credit card form validation
limits expiry month to 2 digits
passed
0.393s
PaymentForm > Credit card form validation
limits expiry year to 2 digits
passed
0.391s
PaymentForm > Credit card form validation
limits CVC to 4 digits
passed
0.31s
PaymentForm > Credit card form validation
shows validation errors when card is invalid
passed
2.214s
PaymentForm > Form submission
calls processPayment with correct data for credit card
passed
2.342s
PaymentForm > Form submission
calls onSuccess when payment succeeds
passed
2.38s
PaymentForm > Form submission
calls onError when payment fails
passed
2.871s
PaymentForm > Form submission
handles payment exception
passed
1.874s
PaymentForm > Form submission
skips card validation for PayPal
passed
0.387s
PaymentForm > Loading state
shows loading spinner while processing
passed
2.201s
PaymentForm > Error handling
displays error message when payment fails
passed
2.465s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\StarRating\__tests__\StarRating.test.tsx
6.756s
StarRating > rendering
should render 5 stars by default
passed
0.306s
StarRating > rendering
should render custom number of stars
passed
0.096s
StarRating > rendering
should have correct aria-label
passed
0.058s
StarRating > rating display
should display full stars correctly
passed
0.042s
StarRating > rating display
should display half star correctly
passed
0.07s
StarRating > rating display
should clamp rating to 0 if negative
passed
0.042s
StarRating > rating display
should clamp rating to maxStars if above
passed
0.042s
StarRating > rating display
should show 0 rating correctly
passed
0.06s
StarRating > rating display
should handle default rating
passed
0.053s
StarRating > review count
should show review count when provided and showCount is true
passed
0.051s
StarRating > review count
should show count by default when reviewCount is provided
passed
0.039s
StarRating > review count
should hide count when showCount is false
passed
0.049s
StarRating > review count
should not show count when reviewCount is undefined
passed
0.031s
StarRating > review count
should show zero review count
passed
0.031s
StarRating > sizes
should apply small size
passed
0.031s
StarRating > sizes
should apply medium size (default)
passed
0.035s
StarRating > sizes
should apply large size
passed
0.034s
StarRating > interactive mode
should not render buttons when not interactive
passed
0.038s
StarRating > interactive mode
should render buttons when interactive
passed
0.133s
StarRating > interactive mode
should call onRatingChange when star is clicked in interactive mode
passed
0.095s
StarRating > interactive mode
should call onRatingChange with correct value for each star
passed
0.106s
StarRating > interactive mode
should not call onRatingChange when not interactive
passed
0.058s
StarRating > accessibility
should have aria-label on each star button in interactive mode
passed
0.08s
StarRating > accessibility
should have role=img on star container
passed
0.052s
StarRating > custom className
should apply custom className
passed
0.027s
StarRating > tooltip
should show tooltip on hover when not interactive
passed
0.116s
StarRating > tooltip
should not show tooltip when interactive
passed
0.24s
StarRating > tooltip
should hide tooltip on mouse leave
passed
0.172s
StarRating > tooltip
should format rating with one decimal place in tooltip
passed
0.058s
StarRating > tooltip
should show correct tooltip for 0 rating
passed
0.051s
StarRating > tooltip
should show correct tooltip for max rating
passed
0.057s
StarRatingCompact
should render with small size
passed
0.042s
StarRatingCompact
should not show count
passed
0.027s
StarRatingCompact
should accept size prop override
passed
0.047s
StarRatingCompact
should handle default rating
passed
0.038s
StarRatingWithCount
should always show count
passed
0.028s
StarRatingWithCount
should show zero review count
passed
0.026s
StarRatingWithCount
should use medium size by default
passed
0.018s
StarRatingWithCount
should accept size prop
passed
0.025s
StarRatingWithCount
should handle default values
passed
0.059s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\product\ProductCard\__tests__\ProductCard.test.tsx
8.897s
ProductCard > grid variant (default)
should render product title
passed
0.269s
ProductCard > grid variant (default)
should render product image
passed
0.085s
ProductCard > grid variant (default)
should render star rating
passed
0.058s
ProductCard > grid variant (default)
should render price display
passed
0.05s
ProductCard > grid variant (default)
should render quick view button by default
passed
0.232s
ProductCard > grid variant (default)
should render add to cart button by default
passed
0.089s
ProductCard > grid variant (default)
should render wishlist button by default
passed
0.097s
ProductCard > grid variant (default)
should link to product details page
passed
0.132s
ProductCard > list variant
should render with list layout
passed
0.093s
ProductCard > list variant
should show all action buttons in list variant
passed
0.133s
ProductCard > featured variant
should render with featured layout
passed
0.071s
ProductCard > action button visibility
should hide quick view button when showQuickView is false
passed
0.14s
ProductCard > action button visibility
should hide add to cart button when showAddToCart is false
passed
0.074s
ProductCard > action button visibility
should hide wishlist button when showWishlist is false
passed
0.171s
ProductCard > action button visibility
should hide rating when showRating is false
passed
0.055s
ProductCard > action button interactions
should open quick view modal when quick view button is clicked
passed
0.119s
ProductCard > action button interactions
should add product to cart when add to cart button is clicked
passed
0.126s
ProductCard > action button interactions
should add product to wishlist when wishlist button is clicked
passed
0.175s
ProductCard > image handling
should show placeholder when image fails to load
passed
0.088s
ProductCard > image handling
should use placeholder when no preview images available
passed
0.058s
ProductCard > price display
should show discounted price when available
passed
0.079s
ProductCard > price display
should show only regular price when no discount
passed
0.059s
ProductCard > custom className
should apply custom className
passed
0.044s
ProductCardGrid
should render with grid variant
passed
0.053s
ProductCardGrid
should pass through all props except variant
passed
0.068s
ProductCardList
should render with list variant
passed
0.069s
ProductCardList
should pass through all props except variant
passed
0.04s
ProductCardFeatured
should render with featured variant
passed
0.045s
ProductCardFeatured
should pass through all props except variant
passed
0.078s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\__tests__\auth\Signin.test.tsx
11.318s
Signin Component
renders signin form
passed
0.618s
Signin Component
displays validation errors for empty fields
passed
0.437s
Signin Component
validates email format using HTML5 validation
passed
0.103s
Signin Component
displays validation error for empty password
passed
0.161s
Signin Component
submits form with valid credentials
passed
0.281s
Signin Component
redirects to home page on successful signin
passed
0.121s
Signin Component
displays error message on signin failure
passed
0.158s
Signin Component
disables submit button while submitting
passed
0.226s
Signin Component
has proper form accessibility attributes
passed
0.105s
Signin Component
displays error with proper ARIA attributes
passed
0.183s
Signin Component
contains link to signup page
passed
0.138s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\user\addresses\[id]\__tests__\route.test.ts
9.065s
GET /api/user/addresses/[id] > Rate limiting
returns 429 when rate limit exceeded
passed
0.125s
GET /api/user/addresses/[id] > Authentication
returns 401 for unauthenticated request
passed
0.012s
GET /api/user/addresses/[id] > Authentication
returns 401 when session exists but user.id is missing
passed
0.023s
GET /api/user/addresses/[id] > Validation
returns 400 for invalid address ID
passed
0.036s
GET /api/user/addresses/[id] > Successful retrieval
returns address for authenticated user
passed
0.04s
GET /api/user/addresses/[id] > Successful retrieval
returns 404 when address not found
passed
0.01s
GET /api/user/addresses/[id] > Error handling
returns 500 on database error
passed
0.09s
PATCH /api/user/addresses/[id] > Authentication
returns 401 for unauthenticated request
passed
0.007s
PATCH /api/user/addresses/[id] > Validation
returns 400 for invalid address ID
passed
0.007s
PATCH /api/user/addresses/[id] > Validation
returns 400 for invalid address data
passed
0.024s
PATCH /api/user/addresses/[id] > Successful update
updates address successfully
passed
0.007s
PATCH /api/user/addresses/[id] > Successful update
handles setting address as default
passed
0.006s
PATCH /api/user/addresses/[id] > Successful update
returns 404 when address not found
passed
0.006s
PATCH /api/user/addresses/[id] > Error handling
returns 500 on database error during findFirst
passed
0.011s
PATCH /api/user/addresses/[id] > Error handling
returns 500 on database error during update
passed
0.007s
PATCH /api/user/addresses/[id] > Error handling
returns 500 on transaction error when setting default
passed
0.012s
PATCH /api/user/addresses/[id] > Error handling
returns 429 when rate limit exceeded
passed
0.013s
PATCH /api/user/addresses/[id] > Additional validation tests
validates optional street field constraints
passed
0.013s
PATCH /api/user/addresses/[id] > Additional validation tests
validates optional city field constraints
passed
0.01s
PATCH /api/user/addresses/[id] > Additional validation tests
validates optional zipCode field constraints
passed
0.012s
PATCH /api/user/addresses/[id] > Additional validation tests
allows updating multiple fields at once
passed
0.014s
PATCH /api/user/addresses/[id] > Additional validation tests
handles updating address type when setting as default
passed
0.011s
DELETE /api/user/addresses/[id] > Authentication
returns 401 for unauthenticated request
passed
0.006s
DELETE /api/user/addresses/[id] > Validation
returns 400 for invalid address ID
passed
0.007s
DELETE /api/user/addresses/[id] > Validation
returns 404 for non-existent address ID
passed
0.01s
DELETE /api/user/addresses/[id] > Validation
returns 429 when rate limit exceeded
passed
0.008s
DELETE /api/user/addresses/[id] > Successful deletion
deletes address successfully
passed
0.011s
DELETE /api/user/addresses/[id] > Successful deletion
returns 404 when address not found
passed
0.01s
DELETE /api/user/addresses/[id] > Error handling
returns 500 on database error during findFirst
passed
0.007s
DELETE /api/user/addresses/[id] > Error handling
returns 500 on database error during delete operation
passed
0.009s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\alerts\AlertConfigForm\__tests__\AlertConfigForm.test.tsx
11.294s
AlertConfigForm > rendering
renders form with all sections
passed
0.374s
AlertConfigForm > rendering
renders all form fields
passed
0.327s
AlertConfigForm > rendering
renders action buttons
passed
0.39s
AlertConfigForm > rendering
shows update button when editing
passed
0.199s
AlertConfigForm > default values
sets default values for new config
passed
0.145s
AlertConfigForm > initial values
populates form with initial values
passed
0.151s
AlertConfigForm > validation
shows error when name is empty
passed
0.329s
AlertConfigForm > validation
shows error when scope is empty
passed
0.664s
AlertConfigForm > validation
shows error when warning >= critical threshold
passed
0.818s
AlertConfigForm > form submission
calls onSubmit with form values
passed
1.074s
AlertConfigForm > cancel
calls onCancel when cancel button is clicked
passed
0.229s
AlertConfigForm > loading state
disables buttons when loading
passed
0.218s
AlertConfigForm > loading state
shows loading spinner when loading
passed
0.084s
AlertConfigForm > notification channels
toggles notification channels
passed
0.873s
AlertConfigForm > metric type selection
updates threshold labels based on metric type
passed
0.237s
AlertConfigForm > className
applies custom className
passed
0.095s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\services\__tests__\order.service.test.ts
9.815s
OrderService > getById
returns order with items when found
passed
0.051s
OrderService > getById
returns null when order not found
passed
0.007s
OrderService > getByUserId
returns orders with pagination for user
passed
0.021s
OrderService > getByUserId
uses default pagination when not provided
passed
0.006s
OrderService > getByUserId
calculates correct skip for pagination
passed
0.006s
OrderService > getOrders
applies userId filter when provided
passed
0.009s
OrderService > getOrders
applies status filter when provided
passed
0.01s
OrderService > getOrders
applies date range filters when provided
passed
0.013s
OrderService > getOrders
returns empty result with no filters
passed
0.017s
OrderService > create
creates order with valid data
passed
0.048s
OrderService > create
uses billing address from shipping when not provided
passed
0.024s
OrderService > create
uses separate billing address when provided
passed
0.033s
OrderService > create
throws error for invalid order data
passed
0.382s
OrderService > create
throws error when database fails
passed
0.012s
OrderService > updateStatus
updates status for valid transition
passed
0.007s
OrderService > updateStatus
throws error when order not found
passed
0.009s
OrderService > updateStatus
throws error for invalid status transition
passed
0.014s
OrderService > cancel
cancels PROCESSING order
passed
0.003s
OrderService > cancel
cancels SHIPPED order
passed
0.012s
OrderService > cancel
throws error when order not found
passed
0.009s
OrderService > cancel
throws error for DELIVERED order
passed
0.005s
OrderService > cancel
throws error for CANCELLED order
passed
0.002s
OrderService > calculateTotals
calculates correct totals for single item
passed
0.025s
OrderService > calculateTotals
calculates correct totals for multiple items
passed
0.004s
OrderService > calculateTotals
applies discount correctly
passed
0.001s
OrderService > calculateTotals
returns zero totals for empty items
passed
0.003s
OrderService > calculateTotals
caps discount at subtotal
passed
0.001s
OrderService > calculateLineItem
calculates line item total correctly
passed
0.006s
OrderService > calculateLineItem
returns 0 for negative values
passed
0.006s
OrderService > calculateDiscount
calculates percentage discount correctly
passed
0.004s
OrderService > calculateDiscount
returns 0 for invalid inputs
passed
0.007s
OrderService > validateItems
validates correct items
passed
0.001s
OrderService > validateItems
fails for empty items
passed
0.002s
OrderService > validateItems
fails for invalid product ID
passed
0.004s
OrderService > validateItems
fails for invalid quantity
passed
0.003s
OrderService > validateItems
fails for negative price
passed
0.002s
OrderService > validateAddress
validates correct address
passed
0.004s
OrderService > validateAddress
fails for empty address
passed
0.001s
OrderService > validateAddress
fails for invalid JSON
passed
0.004s
OrderService > validateAddress
fails for missing required fields
passed
0.004s
OrderService > validateAddress
fails for invalid zip code format
passed
0.001s
OrderService > validatePromoCode
validates correct promo code
passed
0.004s
OrderService > validatePromoCode
fails for empty code
passed
0.001s
OrderService > validatePromoCode
fails for too short code
passed
0.003s
OrderService > validatePromoCode
fails for lowercase letters
passed
0.005s
OrderService > validatePromoCode
fails for special characters
passed
0.001s
OrderService > isPromoExpired
returns true for past date
passed
0.003s
OrderService > isPromoExpired
returns false for future date
passed
0.001s
OrderService > isPromoLimitReached
returns true when limit reached
passed
0.001s
OrderService > isPromoLimitReached
returns false when limit not reached
passed
0.002s
OrderService > isPromoLimitReached
returns false when limit is null (unlimited)
passed
0.001s
OrderService > canTransition
allows valid transitions
passed
0.002s
OrderService > canTransition
disallows invalid transitions
passed
0.001s
OrderService > getAllowedTransitions
returns allowed transitions for PROCESSING
passed
0.003s
OrderService > getAllowedTransitions
returns empty array for DELIVERED
passed
0.001s
OrderService > getAllowedTransitions
returns empty array for CANCELLED
passed
0.002s
OrderService > isCancellable
returns true for PROCESSING
passed
0.001s
OrderService > isCancellable
returns true for SHIPPED
passed
0.001s
OrderService > isCancellable
returns false for DELIVERED
passed
0.001s
OrderService > isCancellable
returns false for CANCELLED
passed
0.001s
OrderService > isModifiable
returns true only for PROCESSING
passed
0.002s
OrderService > formatNumber
formats order ID with leading zeros
passed
0.002s
OrderService > parseNumber
parses valid order number
passed
0.003s
OrderService > parseNumber
returns null for invalid format
passed
0.001s
OrderService > getStatusDisplay
returns human-readable status
passed
0.003s
OrderService > getStatusColor
returns correct color for each status
passed
0.003s
OrderService > constants
exports TAX_RATE
passed
0.001s
OrderService > constants
exports FREE_SHIPPING_THRESHOLD
passed
0.003s
OrderService > constants
exports STANDARD_SHIPPING_COST
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\account\MyAccount\__tests__\AccountSidebar.test.tsx
10.526s
AccountSidebar > Rendering
renders user name from session
passed
0.285s
AccountSidebar > Rendering
renders member since date
passed
0.079s
AccountSidebar > Rendering
renders fallback user name when session has no name
passed
0.116s
AccountSidebar > Rendering
renders loading text when memberSince is empty
passed
0.099s
AccountSidebar > Rendering
renders all menu items
passed
0.597s
AccountSidebar > Rendering
renders logout button
passed
0.143s
AccountSidebar > Rendering
renders user avatar image
passed
0.084s
AccountSidebar > Rendering
does not show avatar image when session has no image
passed
0.085s
AccountSidebar > Active tab styling
highlights dashboard tab when active
passed
0.183s
AccountSidebar > Active tab styling
highlights orders tab when active
passed
0.116s
AccountSidebar > Active tab styling
highlights addresses tab when active
passed
0.155s
AccountSidebar > Active tab styling
highlights account-details tab when active
passed
0.174s
AccountSidebar > User interactions
calls onTabChange when Dashboard is clicked
passed
0.301s
AccountSidebar > User interactions
calls onTabChange when Orders is clicked
passed
0.21s
AccountSidebar > User interactions
calls onTabChange when Downloads is clicked
passed
0.151s
AccountSidebar > User interactions
calls onTabChange when Addresses is clicked
passed
0.165s
AccountSidebar > User interactions
calls onTabChange when Account Details is clicked
passed
0.224s
AccountSidebar > User interactions
calls onLogout when Logout is clicked
passed
0.254s
AccountSidebar > Null session handling
handles null session gracefully
passed
0.104s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\services\__tests__\chat.service.test.ts
3.822s
ChatService > startConversation
should start a new conversation when no existing one found
passed
0.021s
ChatService > startConversation
should continue existing conversation if found
passed
0.008s
ChatService > sendMessage
should create a message successfully
passed
0.006s
ChatService > sendMessage
should update conversation status when agent sends message
passed
0.002s
ChatService > assignConversation
should assign conversation to agent
passed
0.005s
ChatService > resolveConversation
should resolve conversation and request feedback
passed
0.006s
ChatService > closeConversation
should close conversation
passed
0.003s
ChatService > submitFeedback
should submit rating and feedback
passed
0.004s
ChatService > getAgentQueueStats
should return queue statistics
passed
0.003s
ChatService > transferConversation
should transfer conversation to another agent
passed
0.003s
ChatService > markMessagesAsRead
should mark messages as read for customer
passed
0.002s
ChatService > markMessagesAsRead
should mark messages as read for agent
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\user\profile\__tests__\route.test.ts
7.847s
/api/user/profile > GET /api/user/profile > Authentication
returns 401 when user is not authenticated
passed
0.039s
/api/user/profile > GET /api/user/profile > Authentication
returns 401 when session exists but user.id is missing
passed
0.009s
/api/user/profile > GET /api/user/profile > Profile retrieval
returns user profile when authenticated
passed
0.022s
/api/user/profile > GET /api/user/profile > Profile retrieval
returns 404 when user is not found
passed
0.006s
/api/user/profile > GET /api/user/profile > Rate limiting
returns 429 when rate limit is exceeded
passed
0.007s
/api/user/profile > GET /api/user/profile > Rate limiting
includes rate limit headers when rate limit exceeded
passed
0.005s
/api/user/profile > GET /api/user/profile > Rate limiting
uses x-forwarded-for header for rate limiting
passed
0.008s
/api/user/profile > GET /api/user/profile > Rate limiting
uses x-real-ip header when x-forwarded-for is not available
passed
0.006s
/api/user/profile > GET /api/user/profile > Rate limiting
uses 'unknown' IP when no IP headers are available
passed
0.005s
/api/user/profile > GET /api/user/profile > Error handling
returns 500 on database error
passed
0.075s
/api/user/profile > PATCH /api/user/profile > Authentication
returns 401 when user is not authenticated
passed
0.005s
/api/user/profile > PATCH /api/user/profile > Authentication
returns 401 when session exists but user.id is missing
passed
0.003s
/api/user/profile > PATCH /api/user/profile > Profile updates
updates user name successfully
passed
0.011s
/api/user/profile > PATCH /api/user/profile > Profile updates
updates user phone successfully
passed
0.005s
/api/user/profile > PATCH /api/user/profile > Profile updates
updates both name and phone simultaneously
passed
0.012s
/api/user/profile > PATCH /api/user/profile > Profile updates
handles empty request body (no updates)
passed
0.008s
/api/user/profile > PATCH /api/user/profile > Profile updates
ignores unknown fields in request body
passed
0.009s
/api/user/profile > PATCH /api/user/profile > Validation
returns 400 for invalid name (too short)
passed
0.01s
/api/user/profile > PATCH /api/user/profile > Validation
returns 400 for invalid name (too long)
passed
0.008s
/api/user/profile > PATCH /api/user/profile > Validation
returns 400 for invalid phone (too short)
passed
0.012s
/api/user/profile > PATCH /api/user/profile > Validation
returns 400 for invalid phone (too long)
passed
0.009s
/api/user/profile > PATCH /api/user/profile > Validation
allows valid name at minimum length (2 chars)
passed
0.008s
/api/user/profile > PATCH /api/user/profile > Validation
allows valid name at maximum length (100 chars)
passed
0.008s
/api/user/profile > PATCH /api/user/profile > Validation
allows valid phone at minimum length (10 chars)
passed
0.008s
/api/user/profile > PATCH /api/user/profile > Validation
allows valid phone at maximum length (20 chars)
passed
0.005s
/api/user/profile > PATCH /api/user/profile > Validation
returns validation details for multiple invalid fields
passed
0.007s
/api/user/profile > PATCH /api/user/profile > Rate limiting
returns 429 when rate limit is exceeded
passed
0.006s
/api/user/profile > PATCH /api/user/profile > Rate limiting
includes rate limit headers when rate limit exceeded
passed
0.01s
/api/user/profile > PATCH /api/user/profile > Rate limiting
uses x-forwarded-for header for rate limiting
passed
0.007s
/api/user/profile > PATCH /api/user/profile > Rate limiting
uses x-real-ip header when x-forwarded-for is not available
passed
0.008s
/api/user/profile > PATCH /api/user/profile > Rate limiting
uses 'unknown' IP when no IP headers are available
passed
0.004s
/api/user/profile > PATCH /api/user/profile > Error handling
returns 500 on database error
passed
0.013s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\Modal\__tests__\Modal.test.tsx
9.97s
Modal Component > Visibility and Rendering
renders when open is true
passed
0.319s
Modal Component > Visibility and Rendering
does not render when open is false
passed
0.016s
Modal Component > Visibility and Rendering
renders children content
passed
0.129s
Modal Component > Visibility and Rendering
renders backdrop element
passed
0.033s
Modal Component > Title and Header
renders title when provided
passed
0.05s
Modal Component > Title and Header
title has correct id for aria-labelledby
passed
0.035s
Modal Component > Title and Header
renders without title
passed
0.018s
Modal Component > Title and Header
renders close button by default
passed
0.045s
Modal Component > Title and Header
hides close button when showCloseButton is false
passed
0.03s
Modal Component > Title and Header
renders header only when title or close button is present
passed
0.074s
Modal Component > Footer
renders footer when provided
passed
0.088s
Modal Component > Footer
does not render footer when not provided
passed
0.027s
Modal Component > Footer
footer has correct styling
passed
0.039s
Modal Component > Sizes
renders small size
passed
0.03s
Modal Component > Sizes
renders medium size (default)
passed
0.012s
Modal Component > Sizes
renders large size
passed
0.015s
Modal Component > Sizes
renders xl size
passed
0.022s
Modal Component > Sizes
renders full size
passed
0.025s
Modal Component > Close Functionality
calls onClose when close button is clicked
passed
0.058s
Modal Component > Close Functionality
calls onClose when Escape key is pressed
passed
0.034s
Modal Component > Close Functionality
does not close on Escape when closeOnEscape is false
passed
0.025s
Modal Component > Close Functionality
calls onClose when backdrop is clicked
passed
0.026s
Modal Component > Close Functionality
does not close on backdrop click when closeOnBackdrop is false
passed
0.016s
Modal Component > Close Functionality
does not close when clicking inside modal content
passed
0.017s
Modal Component > Close Functionality
only calls onClose once per escape press
passed
0.018s
Modal Component > Keyboard Navigation
ignores non-Escape keys
passed
0.022s
Modal Component > Keyboard Navigation
handles Escape with case sensitivity
passed
0.017s
Modal Component > Body Scroll Management
prevents body scroll when modal opens
passed
0.016s
Modal Component > Body Scroll Management
restores body scroll when modal closes
passed
0.016s
Modal Component > Body Scroll Management
restores body scroll on unmount
passed
0.023s
Modal Component > Body Scroll Management
does not set overflow if modal never opened
passed
0.011s
Modal Component > ARIA and Accessibility
has role='dialog'
passed
0.027s
Modal Component > ARIA and Accessibility
has aria-modal='true'
passed
0.021s
Modal Component > ARIA and Accessibility
has aria-labelledby when title is provided
passed
0.035s
Modal Component > ARIA and Accessibility
does not have aria-labelledby when no title
passed
0.038s
Modal Component > ARIA and Accessibility
backdrop has aria-hidden='true'
passed
0.035s
Modal Component > ARIA and Accessibility
close button has aria-label
passed
0.017s
Modal Component > ARIA and Accessibility
has no accessibility violations (basic modal)
passed
0.466s
Modal Component > ARIA and Accessibility
has no accessibility violations (with footer)
passed
0.245s
Modal Component > ARIA and Accessibility
has no accessibility violations (no close button)
passed
0.115s
Modal Component > Event Listener Cleanup
removes escape key listener when modal closes
passed
0.031s
Modal Component > Event Listener Cleanup
removes escape key listener on unmount
passed
0.015s
Modal Component > Complex Content
handles complex children with forms
passed
0.106s
Modal Component > Complex Content
handles scrollable content
passed
0.079s
Modal Component > Complex Content
renders nested interactive elements
passed
0.124s
Modal Component > State Transitions
transitions from closed to open
passed
0.055s
Modal Component > State Transitions
transitions from open to closed
passed
0.048s
Modal Component > State Transitions
updates content while remaining open
passed
0.056s
Modal Component > Multiple Modals
handles multiple modals
passed
0.063s
Modal Component > Multiple Modals
each modal has independent onClose
passed
0.027s
Modal Component > Edge Cases
handles empty children
passed
0.017s
Modal Component > Edge Cases
handles undefined title gracefully
passed
0.012s
Modal Component > Edge Cases
handles rapid open/close toggles
passed
0.048s
Modal Component > Edge Cases
handles onClose being called multiple times
passed
0.013s
Modal Component > Styling and Animation
applies z-index for modal layer
passed
0.026s
Modal Component > Styling and Animation
has backdrop blur effect
passed
0.012s
Modal Component > Styling and Animation
modal content has shadow
passed
0.016s
Modal Component > Styling and Animation
modal content is rounded
passed
0.014s
Modal Component > Integration Tests
full modal workflow: open, interact, close
passed
0.117s
Modal Component > Integration Tests
confirmation modal pattern
passed
0.126s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\product\ProductActionButtons\__tests__\ProductActionButtons.test.tsx
6.685s
ProductActionButtons Component > Basic Rendering
renders default actions (quickView, addToCart, wishlist)
passed
0.189s
ProductActionButtons Component > Basic Rendering
renders custom actions
passed
0.069s
ProductActionButtons Component > Basic Rendering
renders all available actions
passed
0.076s
ProductActionButtons Component > Basic Rendering
renders single action
passed
0.063s
ProductActionButtons Component > Layout Variants
renders horizontal layout (default)
passed
0.043s
ProductActionButtons Component > Layout Variants
renders vertical layout
passed
0.028s
ProductActionButtons Component > Layout Variants
applies custom className
passed
0.024s
ProductActionButtons Component > Variant Styles
renders icon variant (default)
passed
0.193s
ProductActionButtons Component > Variant Styles
renders button variant with primary Add to Cart button
passed
0.023s
ProductActionButtons Component > Variant Styles
renders text variant with all buttons having labels
passed
0.025s
ProductActionButtons Component > Variant Styles
text variant uses primary for addToCart, secondary for others
passed
0.019s
ProductActionButtons Component > Action Handlers - Add to Cart
dispatches addToCart action when Add to Cart is clicked
passed
0.076s
ProductActionButtons Component > Action Handlers - Add to Cart
shows success toast when item added to cart
passed
0.025s
ProductActionButtons Component > Action Handlers - Add to Cart
adds product with correct data structure
passed
0.036s
ProductActionButtons Component > Action Handlers - Wishlist
dispatches addToWishlist action when Wishlist is clicked
passed
0.045s
ProductActionButtons Component > Action Handlers - Wishlist
shows success toast when item added to wishlist
passed
0.029s
ProductActionButtons Component > Action Handlers - Quick View
opens quick view modal when Quick View is clicked
passed
0.015s
ProductActionButtons Component > Action Handlers - Quick View
dispatches updateQuickView action
passed
0.015s
ProductActionButtons Component > Action Handlers - Compare
shows info toast for compare action (feature coming soon)
passed
0.011s
ProductActionButtons Component > Accessibility
has proper aria-labels for all actions
passed
0.016s
ProductActionButtons Component > Accessibility
has no accessibility violations (icon variant)
passed
0.189s
ProductActionButtons Component > Accessibility
has no accessibility violations (button variant)
passed
0.161s
ProductActionButtons Component > Accessibility
has no accessibility violations (text variant)
passed
0.12s
ProductActionButtons Component > Accessibility
all buttons are keyboard accessible
passed
0.061s
ProductActionButtons Component > QuickProductActions Shorthand
renders with default quick actions
passed
0.028s
ProductActionButtons Component > QuickProductActions Shorthand
uses icon variant by default
passed
0.047s
ProductActionButtons Component > QuickProductActions Shorthand
applies custom className
passed
0.012s
ProductActionButtons Component > ProductActionsWithCart Shorthand
renders with button variant
passed
0.012s
ProductActionButtons Component > ProductActionsWithCart Shorthand
includes quick view and wishlist as icon buttons
passed
0.012s
ProductActionButtons Component > Multiple Interactions
handles rapid clicks on same action
passed
0.02s
ProductActionButtons Component > Multiple Interactions
handles clicks on different actions sequentially
passed
0.026s
ProductActionButtons Component > Edge Cases
handles empty actions array
passed
0.017s
ProductActionButtons Component > Edge Cases
handles product with missing optional fields
passed
0.015s
ProductActionButtons Component > Edge Cases
renders nothing when variant doesn't match any condition
passed
0.008s
ProductActionButtons Component > Different Products
handles different products correctly
passed
0.022s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\user\addresses\__tests__\route.test.ts
5.479s
/api/user/addresses > GET /api/user/addresses > Authentication
returns 401 when user is not authenticated
passed
0.048s
/api/user/addresses > GET /api/user/addresses > Authentication
returns 401 when session exists but user.id is missing
passed
0.014s
/api/user/addresses > GET /api/user/addresses > Address retrieval
returns all addresses for authenticated user
passed
0.018s
/api/user/addresses > GET /api/user/addresses > Address retrieval
filters addresses by type
passed
0.028s
/api/user/addresses > GET /api/user/addresses > Address retrieval
returns empty array when no addresses exist
passed
0.017s
/api/user/addresses > GET /api/user/addresses > Rate limiting
returns 429 when rate limit is exceeded
passed
0.025s
/api/user/addresses > GET /api/user/addresses > Error handling
returns 500 on database error
passed
0.171s
/api/user/addresses > POST /api/user/addresses > Authentication
returns 401 when user is not authenticated
passed
0.012s
/api/user/addresses > POST /api/user/addresses > Authentication
returns 401 when session exists but user.id is missing
passed
0.009s
/api/user/addresses > POST /api/user/addresses > Address creation
creates a new address successfully
passed
0.048s
/api/user/addresses > POST /api/user/addresses > Address creation
creates a default address and unsets other defaults
passed
0.038s
/api/user/addresses > POST /api/user/addresses > Address creation
accepts BILLING as valid type
passed
0.02s
/api/user/addresses > POST /api/user/addresses > Validation
returns 400 for invalid address data - street too short
passed
0.045s
/api/user/addresses > POST /api/user/addresses > Validation
returns 400 for invalid address type
passed
0.01s
/api/user/addresses > POST /api/user/addresses > Validation
returns 400 for missing required fields
passed
0.012s
/api/user/addresses > POST /api/user/addresses > Validation
validates street field length constraints
passed
0.016s
/api/user/addresses > POST /api/user/addresses > Validation
validates city field length constraints
passed
0.021s
/api/user/addresses > POST /api/user/addresses > Validation
validates state field length constraints
passed
0.021s
/api/user/addresses > POST /api/user/addresses > Validation
validates zipCode field length constraints
passed
0.01s
/api/user/addresses > POST /api/user/addresses > Validation
validates country field length constraints
passed
0.012s
/api/user/addresses > POST /api/user/addresses > Rate limiting
returns 429 when rate limit is exceeded
passed
0.005s
/api/user/addresses > POST /api/user/addresses > Error handling
returns 500 on database error
passed
0.017s
/api/user/addresses > POST /api/user/addresses > Error handling
handles database transaction errors gracefully
passed
0.005s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\auth\__tests__\forgot-password.test.ts
7.234s
POST /api/auth/forgot-password > Successful requests
returns success message for existing user
passed
0.039s
POST /api/auth/forgot-password > Successful requests
returns same success message for non-existent user (prevents email enumeration)
passed
0.007s
POST /api/auth/forgot-password > Successful requests
deletes existing reset tokens before creating new one
passed
0.005s
POST /api/auth/forgot-password > Successful requests
creates token with 1 hour expiration
passed
0.006s
POST /api/auth/forgot-password > Validation errors
rejects invalid email format
passed
0.007s
POST /api/auth/forgot-password > Validation errors
rejects missing email
passed
0.005s
POST /api/auth/forgot-password > Validation errors
rejects empty email
passed
0.004s
POST /api/auth/forgot-password > Rate limiting
enforces rate limit after 5 requests
passed
0.004s
POST /api/auth/forgot-password > Rate limiting
includes rate limit headers
passed
0.005s
POST /api/auth/forgot-password > Error handling
returns 500 on database error
passed
0.061s
POST /api/auth/forgot-password > Error handling
returns success even if email sending fails
passed
0.004s
POST /api/auth/forgot-password > Email normalization
converts email to lowercase for lookup
passed
0.004s
POST /api/auth/forgot-password > Token security
hashes token before storage
passed
0.008s
POST /api/auth/forgot-password > Token security
generates random token using crypto
passed
0.004s
POST /api/auth/forgot-password > Database operations
deletes all existing reset tokens for user
passed
0.007s
POST /api/auth/forgot-password > Database operations
creates token with correct user association
passed
0.004s
POST /api/auth/forgot-password > Database operations
handles database error when deleting old tokens
passed
0.006s
POST /api/auth/forgot-password > Database operations
handles database error when creating new token
passed
0.005s
POST /api/auth/forgot-password > Security headers
includes security headers in success response
passed
0.003s
POST /api/auth/forgot-password > Security headers
includes security headers in error response
passed
0.004s
POST /api/auth/forgot-password > IP extraction for rate limiting
uses x-forwarded-for header for IP
passed
0.014s
POST /api/auth/forgot-password > IP extraction for rate limiting
uses x-real-ip header when x-forwarded-for is missing
passed
0.003s
POST /api/auth/forgot-password > IP extraction for rate limiting
uses unknown as fallback IP
passed
0.004s
POST /api/auth/forgot-password > Email edge cases
handles email with plus sign addressing
passed
0.004s
POST /api/auth/forgot-password > Email edge cases
handles email with subdomain
passed
0.004s
POST /api/auth/forgot-password > Email edge cases
rejects email with spaces
passed
0.004s
POST /api/auth/forgot-password > Email edge cases
rejects email without domain
passed
0.004s
POST /api/auth/forgot-password > Email edge cases
rejects email without @ symbol
passed
0.003s
POST /api/auth/forgot-password > Response consistency
returns same status code for existing and non-existing users
passed
0.004s
POST /api/auth/forgot-password > Response consistency
returns same message structure for existing and non-existing users
passed
0.005s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\FormField\__tests__\FormField.test.tsx
8.748s
FormField Component > Rendering
renders input with correct props
passed
0.107s
FormField Component > Rendering
renders with label
passed
0.041s
FormField Component > Rendering
wraps input in div with margin
passed
0.012s
FormField Component > Rendering
forwards ref to input element
passed
0.017s
FormField Component > Rendering
passes all props to Input component
passed
0.194s
FormField Component > Accessibility
has no accessibility violations
passed
0.463s
FormField Component > Accessibility
has no accessibility violations with error
passed
0.204s
TextField Component > Rendering
renders with type text by default
passed
0.056s
TextField Component > Rendering
renders with custom type
passed
0.089s
TextField Component > Rendering
forwards ref to input element
passed
0.053s
TextField Component > Accessibility
has no accessibility violations
passed
0.243s
EmailField Component > Rendering
renders with type email
passed
0.071s
EmailField Component > Rendering
forwards ref to input element
passed
0.017s
EmailField Component > Rendering
passes all props to FormField
passed
0.1s
EmailField Component > Accessibility
has no accessibility violations
passed
0.104s
PasswordField Component > Rendering
renders with type password
passed
0.011s
PasswordField Component > Rendering
forwards ref to input element
passed
0.024s
PasswordField Component > Rendering
passes all props to FormField
passed
0.013s
PasswordField Component > Accessibility
has no accessibility violations
passed
0.055s
SearchField Component > Rendering
renders with type search
passed
0.016s
SearchField Component > Rendering
forwards ref to input element
passed
0.006s
SearchField Component > Rendering
passes all props to FormField
passed
0.007s
SearchField Component > Accessibility
has no accessibility violations
passed
0.06s
NumberField Component > Rendering
renders with type number
passed
0.027s
NumberField Component > Rendering
forwards ref to input element
passed
0.034s
NumberField Component > Rendering
accepts min, max, step props
passed
0.015s
NumberField Component > Accessibility
has no accessibility violations
passed
0.126s
FormGroup Component > Rendering
renders children
passed
0.03s
FormGroup Component > Rendering
renders label when provided
passed
0.008s
FormGroup Component > Rendering
renders description when provided
passed
0.016s
FormGroup Component > Rendering
applies custom className
passed
0.013s
FormGroup Component > Rendering
has default margin bottom
passed
0.006s
FormGroup Component > Rendering
wraps children in space-y container
passed
0.041s
FormGroup Component > Accessibility
has no accessibility violations
passed
0.137s
FormRow Component > Rendering
renders children in a grid
passed
0.016s
FormRow Component > Rendering
uses responsive grid columns
passed
0.008s
FormRow Component > Rendering
applies default gap of 4
passed
0.007s
FormRow Component > Rendering
applies custom gap
passed
0.005s
FormRow Component > Rendering
applies custom className
passed
0.007s
FormRow Component > Rendering
supports different gap values
passed
0.085s
FormRow Component > Accessibility
has no accessibility violations
passed
0.215s
Integration Tests
renders a complete form with all field types
passed
0.218s
Integration Tests
handles form with errors
passed
0.06s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\cart\__tests__\route.test.ts
9.162s
GET /api/cart > Authentication
requires authentication
passed
0.07s
GET /api/cart > Cart retrieval
returns cart items for authenticated user
passed
0.008s
GET /api/cart > Cart retrieval
returns empty array for user with no cart items
passed
0.04s
GET /api/cart > Cart retrieval
includes device ID from request header
passed
0.013s
GET /api/cart > Cart retrieval
returns 500 on database error
passed
0.159s
POST /api/cart > Authentication
requires authentication
passed
0.003s
POST /api/cart > Adding to cart
creates new cart item for authenticated user
passed
0.008s
POST /api/cart > Adding to cart
updates quantity for existing cart item
passed
0.004s
POST /api/cart > Adding to cart
returns 404 when product does not exist
passed
0.004s
POST /api/cart > Adding to cart
includes device ID in cart item
passed
0.003s
POST /api/cart > Validation
rejects invalid product ID
passed
0.005s
POST /api/cart > Validation
rejects zero quantity
passed
0.02s
POST /api/cart > Validation
rejects negative quantity
passed
0.003s
POST /api/cart > Validation
accepts string numbers (coercion)
passed
0.003s
POST /api/cart > Error handling
returns 500 on database error
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\RadioGroup\__tests__\RadioGroup.test.tsx
5.838s
RadioGroup Component > Rendering
renders all options
passed
0.095s
RadioGroup Component > Rendering
renders with label
passed
0.029s
RadioGroup Component > Rendering
renders required indicator when required
passed
0.018s
RadioGroup Component > Rendering
renders helper text
passed
0.039s
RadioGroup Component > Rendering
renders option-level helper text
passed
0.032s
RadioGroup Component > Rendering
uses fieldset for grouping
passed
0.194s
RadioGroup Component > Rendering
forwards ref to first input element
passed
0.015s
RadioGroup Component > Selection
shows selected option as checked
passed
0.084s
RadioGroup Component > Selection
calls onChange when option is selected
passed
0.062s
RadioGroup Component > Selection
updates selection on change
passed
0.119s
RadioGroup Component > Disabled State
disables all options when disabled prop is true
passed
0.038s
RadioGroup Component > Disabled State
disables individual options
passed
0.067s
RadioGroup Component > Disabled State
does not call onChange when disabled
passed
0.059s
RadioGroup Component > Disabled State
applies disabled cursor styles
passed
0.017s
RadioGroup Component > Error State
displays error message
passed
0.02s
RadioGroup Component > Error State
applies error state styling
passed
0.018s
RadioGroup Component > Error State
hides helper text when error is present
passed
0.013s
RadioGroup Component > Error State
sets aria-describedby to error element
passed
0.036s
RadioGroup Component > Sizes
renders small size
passed
0.013s
RadioGroup Component > Sizes
renders medium size (default)
passed
0.017s
RadioGroup Component > Sizes
renders large size
passed
0.012s
RadioGroup Component > Layout
renders vertical layout by default
passed
0.015s
RadioGroup Component > Layout
renders horizontal layout
passed
0.01s
RadioGroup Component > States
applies success state
passed
0.011s
RadioGroup Component > States
applies warning state
passed
0.017s
RadioGroup Component > States
error prop overrides state prop
passed
0.011s
RadioGroup Component > Custom className
applies custom className to fieldset
passed
0.016s
RadioGroup Component > Focus and Keyboard
radio buttons are focusable
passed
0.046s
RadioGroup Component > Focus and Keyboard
has focus ring classes
passed
0.01s
RadioGroup Component > Accessibility
has no accessibility violations
passed
0.229s
RadioGroup Component > Accessibility
has no accessibility violations with error
passed
0.197s
RadioGroup Component > Accessibility
has no accessibility violations when disabled
passed
0.128s
RadioGroup Component > Accessibility
has no accessibility violations with required
passed
0.111s
RadioGroup Component > Accessibility
uses legend for group label
passed
0.014s
RadioGroup Component > Accessibility
sets aria-describedby for helper text
passed
0.018s
RadioGroup Component > Edge Cases
handles empty options array
passed
0.007s
RadioGroup Component > Edge Cases
handles single option
passed
0.028s
RadioGroup Component > Edge Cases
handles value not in options
passed
0.032s
RadioGroup Component > Edge Cases
handles rapid selection changes
passed
0.068s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\icons\__tests__\Icon.test.tsx
6.302s
Icon Component > Basic Rendering
renders an icon with the default size
passed
0.494s
Icon Component > Basic Rendering
renders an icon with a custom numeric size
passed
0.343s
Icon Component > Basic Rendering
renders an icon with a custom string size
passed
0.345s
Icon Component > Basic Rendering
renders nothing when icon is not found
passed
0.006s
Icon Component > Styling
applies className correctly
passed
0.026s
Icon Component > Styling
applies inline styles correctly
passed
0.048s
Icon Component > Styling
merges custom styles with size styles
passed
0.028s
Icon Component > Rotation
applies rotation transform when rotate prop is provided
passed
0.349s
Icon Component > Rotation
applies 180 degree rotation
passed
0.343s
Icon Component > Rotation
does not apply rotation when rotate prop is not provided
passed
0.022s
Icon Component > Rotation
preserves existing transform when rotation is added
passed
0.028s
Icon Component > Accessibility
has role='img' by default
passed
0.014s
Icon Component > Accessibility
uses icon name as aria-label by default
passed
0.016s
Icon Component > Accessibility
uses custom aria-label when provided
passed
0.016s
Icon Component > Accessibility
can be hidden from screen readers with aria-hidden
passed
0.013s
Icon Component > Lazy Loading
renders the actual icon after loading
passed
0.007s
Icon Component > Named Icon Components
Icon.Heart renders correctly
passed
0.035s
Icon Component > Named Icon Components
Icon.Cart renders correctly
passed
0.036s
Icon Component > Named Icon Components
Icon.Search renders correctly
passed
0.014s
Icon Component > Named Icon Components
Icon.Eye renders correctly
passed
0.332s
Icon Component > Named Icon Components
Icon.ChevronDown renders correctly with rotation
passed
0.03s
Icon Component > Props Forwarding
forwards additional SVG props
passed
0.019s
Icon Component > Props Forwarding
forwards onClick handler
passed
0.047s
Icon Component > Display Style
applies inline-block display by default
passed
0.013s
Icon Component > Display Style
maintains inline-block with custom styles
passed
0.023s
Icon Registry Functions > getIconNames
returns an array of all icon names
passed
0.006s
Icon Registry Functions > getIconNames
includes all categories of icons
passed
0.003s
Icon Registry Functions > hasIcon
returns true for valid icon names
passed
0.002s
Icon Registry Functions > hasIcon
returns false for invalid icon names
passed
0.001s
Icon Registry Functions > hasIcon
is case-sensitive
passed
0.005s
Icon Registry Functions > hasIcon
returns true for all icon names from getIconNames
passed
0.034s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\products\[productId]\__tests__\route.test.ts
9.865s
/api/admin/products/[productId] > GET /api/admin/products/[productId] > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.062s
/api/admin/products/[productId] > GET /api/admin/products/[productId] > Authentication & Authorization
returns 403 for non-admin user
passed
0.031s
/api/admin/products/[productId] > GET /api/admin/products/[productId] > Authentication & Authorization
returns 404 when user not found
passed
0.003s
/api/admin/products/[productId] > GET /api/admin/products/[productId] > Parameter validation
returns 400 for invalid product ID
passed
0.005s
/api/admin/products/[productId] > GET /api/admin/products/[productId] > Parameter validation
returns 400 for non-numeric product ID
passed
0.003s
/api/admin/products/[productId] > GET /api/admin/products/[productId] > Successful requests
returns product with calculated rating
passed
0.004s
/api/admin/products/[productId] > GET /api/admin/products/[productId] > Successful requests
returns 0 rating for product with no reviews
passed
0.003s
/api/admin/products/[productId] > GET /api/admin/products/[productId] > Successful requests
includes category and images in response
passed
0.005s
/api/admin/products/[productId] > GET /api/admin/products/[productId] > Successful requests
returns 404 when product not found
passed
0.002s
/api/admin/products/[productId] > GET /api/admin/products/[productId] > Error handling
returns 500 on database error
passed
0.242s
/api/admin/products/[productId] > PUT /api/admin/products/[productId] > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.003s
/api/admin/products/[productId] > PUT /api/admin/products/[productId] > Authentication & Authorization
returns 403 for non-admin user
passed
0.011s
/api/admin/products/[productId] > PUT /api/admin/products/[productId] > Parameter validation
returns 400 for invalid product ID
passed
0.004s
/api/admin/products/[productId] > PUT /api/admin/products/[productId] > Successful updates
updates product with provided fields only
passed
0.01s
/api/admin/products/[productId] > PUT /api/admin/products/[productId] > Successful updates
updates multiple fields
passed
0.036s
/api/admin/products/[productId] > PUT /api/admin/products/[productId] > Successful updates
updates discountedPrice when provided
passed
0.009s
/api/admin/products/[productId] > PUT /api/admin/products/[productId] > Successful updates
updates sku when provided
passed
0.004s
/api/admin/products/[productId] > PUT /api/admin/products/[productId] > Successful updates
updates categoryId when provided
passed
0.012s
/api/admin/products/[productId] > PUT /api/admin/products/[productId] > Successful updates
handles stock set to 0
passed
0.004s
/api/admin/products/[productId] > PUT /api/admin/products/[productId] > Error handling
returns 500 on database error
passed
0.007s
/api/admin/products/[productId] > PATCH /api/admin/products/[productId]
uses same logic as PUT
passed
0.05s
/api/admin/products/[productId] > DELETE /api/admin/products/[productId] > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.002s
/api/admin/products/[productId] > DELETE /api/admin/products/[productId] > Authentication & Authorization
returns 403 for non-admin user
passed
0.003s
/api/admin/products/[productId] > DELETE /api/admin/products/[productId] > Parameter validation
returns 400 for invalid product ID
passed
0.005s
/api/admin/products/[productId] > DELETE /api/admin/products/[productId] > Successful deletion
deletes product successfully
passed
0.004s
/api/admin/products/[productId] > DELETE /api/admin/products/[productId] > Error handling
returns 500 on database error
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\Skeleton\__tests__\Skeleton.test.tsx
4.885s
Skeleton Component > Rendering
renders a div element
passed
0.073s
Skeleton Component > Rendering
has pulse animation
passed
0.009s
Skeleton Component > Rendering
has background color
passed
0.008s
Skeleton Component > Rendering
has loading status role
passed
0.091s
Skeleton Component > Rendering
has loading aria-label
passed
0.012s
Skeleton Component > Rendering
forwards ref to div element
passed
0.009s
Skeleton Component > Dimensions
applies width as pixels when number
passed
0.013s
Skeleton Component > Dimensions
applies width as string when string
passed
0.009s
Skeleton Component > Dimensions
applies height as pixels when number
passed
0.034s
Skeleton Component > Dimensions
applies height as string when string
passed
0.01s
Skeleton Component > Dimensions
applies both width and height
passed
0.013s
Skeleton Component > Rounded Corners
applies rounded-none
passed
0.006s
Skeleton Component > Rounded Corners
applies rounded (sm)
passed
0.005s
Skeleton Component > Rounded Corners
applies rounded-md (default)
passed
0.005s
Skeleton Component > Rounded Corners
applies rounded-lg
passed
0.006s
Skeleton Component > Rounded Corners
applies rounded-full
passed
0.007s
Skeleton Component > Variants
renders default variant
passed
0.007s
Skeleton Component > Variants
renders text variant with default height and full width
passed
0.008s
Skeleton Component > Variants
renders circular variant with rounded-full
passed
0.007s
Skeleton Component > Variants
renders rectangular variant with rounded-none
passed
0.006s
Skeleton Component > Custom className
merges custom className with default classes
passed
0.02s
Skeleton Component > Custom style
applies custom inline styles
passed
0.007s
Skeleton Component > Custom style
merges custom styles with dimension styles
passed
0.009s
Skeleton Component > Accessibility
has no accessibility violations
passed
0.119s
Skeleton Component > Accessibility
has no accessibility violations with dimensions
passed
0.068s
Skeleton Component > Accessibility
has no accessibility violations (circular)
passed
0.094s
ProductCardSkeleton Component > Rendering
renders without crashing
passed
0.012s
ProductCardSkeleton Component > Rendering
renders image skeleton
passed
0.021s
ProductCardSkeleton Component > Rendering
contains multiple skeleton elements
passed
0.022s
ProductCardSkeleton Component > Accessibility
has no accessibility violations
passed
0.098s
ProductListSkeleton Component > Rendering
renders default number of skeletons (6)
passed
0.033s
ProductListSkeleton Component > Rendering
renders custom number of skeletons
passed
0.058s
ProductListSkeleton Component > Rendering
renders with default 3 columns
passed
0.037s
ProductListSkeleton Component > Rendering
renders with custom columns
passed
0.041s
ProductListSkeleton Component > Rendering
renders with 2 columns
passed
0.065s
ProductListSkeleton Component > Rendering
renders with 1 column
passed
0.041s
ProductListSkeleton Component > Rendering
has gap between items
passed
0.032s
ProductListSkeleton Component > Accessibility
has no accessibility violations
passed
0.262s
TextSkeleton Component > Rendering
renders default 3 lines
passed
0.014s
TextSkeleton Component > Rendering
renders custom number of lines
passed
0.026s
TextSkeleton Component > Rendering
renders 1 line
passed
0.021s
TextSkeleton Component > Rendering
last line is shorter (60% width)
passed
0.016s
TextSkeleton Component > Rendering
non-last lines have full width
passed
0.024s
TextSkeleton Component > Rendering
uses text variant
passed
0.024s
TextSkeleton Component > Gap
uses default gap of 2
passed
0.018s
TextSkeleton Component > Gap
uses custom gap
passed
0.007s
TextSkeleton Component > Accessibility
has no accessibility violations
passed
0.067s
AvatarSkeleton Component > Rendering
renders with default size (40)
passed
0.009s
AvatarSkeleton Component > Rendering
renders with custom size
passed
0.008s
AvatarSkeleton Component > Rendering
is circular
passed
0.006s
AvatarSkeleton Component > Accessibility
has no accessibility violations
passed
0.049s
CardSkeleton Component > Rendering
renders without crashing
passed
0.013s
CardSkeleton Component > Rendering
has card styling
passed
0.01s
CardSkeleton Component > Rendering
contains multiple skeleton elements
passed
0.022s
CardSkeleton Component > Rendering
includes TextSkeleton for content
passed
0.02s
CardSkeleton Component > Accessibility
has no accessibility violations
passed
0.086s
Integration Tests
renders multiple skeleton types together
passed
0.02s
Integration Tests
renders a loading user profile
passed
0.015s
Integration Tests
renders a loading product grid
passed
0.032s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\admin\monitoring\__tests__\ErrorFilterPanel.test.tsx
10.669s
ErrorFilterPanel
renders all filter inputs
passed
0.336s
ErrorFilterPanel
renders category options in dropdown
passed
0.092s
ErrorFilterPanel
renders level options in dropdown
passed
0.053s
ErrorFilterPanel
calls onFiltersChange when search changes
passed
0.054s
ErrorFilterPanel
calls onFiltersChange when category changes
passed
0.267s
ErrorFilterPanel
calls onFiltersChange when level changes
passed
0.256s
ErrorFilterPanel
displays existing filter values
passed
0.054s
ErrorFilterPanel
shows clear button when filters are active
passed
0.03s
ErrorFilterPanel
hides clear button when no filters are active
passed
0.034s
ErrorFilterPanel
clears all filters when clear button is clicked
passed
0.173s
ErrorFilterPanel
disables all inputs when loading
passed
0.025s
ErrorFilterPanel
disables clear button when loading
passed
0.024s
ErrorFilterPanel
handles empty categories and levels gracefully
passed
0.013s
ErrorFilterPanel
clears category when selecting "All Categories"
passed
0.212s
ErrorFilterPanel
clears level when selecting "All Levels"
passed
0.178s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\services\__tests__\integration\product-db.integration.test.ts
4.526s
Product Service Integration Tests > Complex Filtering
filters with category and price range
passed
0.026s
Product Service Integration Tests > Complex Filtering
filters with search and category
passed
0.005s
Product Service Integration Tests > Complex Filtering
handles all filters combined with sorting and pagination
passed
0.008s
Product Service Integration Tests > Search Functionality
searches across title, description, and category
passed
0.004s
Product Service Integration Tests > Search Functionality
returns empty for short queries
passed
0.003s
Product Service Integration Tests > Search Functionality
limits search results
passed
0.002s
Product Service Integration Tests > Related Products
excludes current product and limits results
passed
0.003s
Product Service Integration Tests > Related Products
handles no related products
passed
0.002s
Product Service Integration Tests > Error Recovery
propagates database errors on getById
passed
0.37s
Product Service Integration Tests > Error Recovery
propagates database errors on getProducts
passed
0.007s
Product Service Integration Tests > Error Recovery
propagates database errors on search
passed
0.003s
Product Service Integration Tests > Error Recovery
propagates database errors on getPriceRange
passed
0.003s
Product Service Integration Tests > Concurrent Operations
handles multiple simultaneous getById calls
passed
0.002s
Product Service Integration Tests > Concurrent Operations
handles multiple simultaneous search calls
passed
0.002s
Product Service Integration Tests > Data Consistency
maintains price consistency in getById
passed
0.002s
Product Service Integration Tests > Data Consistency
maintains image ordering
passed
0.003s
Product Service Integration Tests > Data Consistency
calculates average rating consistently
passed
0.002s
Product Service Integration Tests > Batch Operations
retrieves multiple products by IDs
passed
0.004s
Product Service Integration Tests > Batch Operations
handles missing products in batch
passed
0.005s
Product Service Integration Tests > Batch Operations
handles empty ID array
passed
0.002s
Product Service Integration Tests > Price Range
returns correct min and max prices
passed
0.002s
Product Service Integration Tests > Price Range
handles no products
passed
0.002s
Product Service Integration Tests > Product Existence Check
returns true for existing product
passed
0.004s
Product Service Integration Tests > Product Existence Check
returns false for non-existing product
passed
0.002s
Product Service Integration Tests > Pagination Edge Cases
calculates correct total pages for exact division
passed
0.001s
Product Service Integration Tests > Pagination Edge Cases
calculates correct total pages for non-exact division
passed
0.001s
Product Service Integration Tests > Pagination Edge Cases
handles zero products
passed
0.002s
Product Service Integration Tests > Pagination Edge Cases
handles first page correctly
passed
0.001s
Product Service Integration Tests > Pagination Edge Cases
handles last page correctly
passed
0.001s
Console Log
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\jest.setup.integration.ts:15:11)
    at Promise.finally.completed (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1557:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1497:10)
    at _callCircusHook (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:976:40)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:800:7)
    at run (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:761:3)
    at runAndTransformResultsToJestFormat (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1918:21)
    at jestAdapter (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\runner.js:101:19)
    at runTestInternal (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:275:16)
    at runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:343:7)
    at Object.worker (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:497:12)
Connected to test database
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\__tests__\proxy.test.ts
7.098s
proxy middleware > config
exports matcher configuration
passed
0.046s
proxy middleware > config
matcher excludes static files and API webhooks
passed
0.004s
proxy middleware > security headers
adds Content-Security-Policy header
passed
0.016s
proxy middleware > security headers
includes Stripe in CSP script-src
passed
0.003s
proxy middleware > security headers
allows inline styles in CSP for Tailwind
passed
0.015s
proxy middleware > security headers
includes Stripe frame sources in CSP
passed
0.003s
proxy middleware > security headers
allows data URIs and HTTPS images
passed
0.003s
proxy middleware > security headers
includes Stripe API in connect-src
passed
0.003s
proxy middleware > security headers
prevents object embedding
passed
0.003s
proxy middleware > security headers
restricts base URI
passed
0.006s
proxy middleware > security headers
restricts form actions
passed
0.003s
proxy middleware > security headers
prevents framing by other sites
passed
0.002s
proxy middleware > security headers
includes upgrade-insecure-requests in production
passed
0.002s
proxy middleware > security headers
excludes upgrade-insecure-requests in development
passed
0.002s
proxy middleware > security headers
adds X-Content-Type-Options header
passed
0.002s
proxy middleware > security headers
adds X-Frame-Options header
passed
0.002s
proxy middleware > security headers
adds X-XSS-Protection header
passed
0.003s
proxy middleware > security headers
adds Referrer-Policy header
passed
0.002s
proxy middleware > security headers
adds Permissions-Policy header
passed
0.003s
proxy middleware > security headers
adds X-Permitted-Cross-Domain-Policies header
passed
0.012s
proxy middleware > security headers
adds HSTS header in production
passed
0.002s
proxy middleware > security headers
does not add HSTS header in development
passed
0.003s
proxy middleware > security headers
does not add HSTS header in test environment
passed
0.002s
proxy middleware > non-admin routes
allows access to public routes without authentication
passed
0.003s
proxy middleware > non-admin routes
allows access to shop routes
passed
0.008s
proxy middleware > non-admin routes
allows access to product routes
passed
0.002s
proxy middleware > non-admin routes
allows access to API routes
passed
0.002s
proxy middleware > non-admin routes
allows access to signin route
passed
0.007s
proxy middleware > admin route protection > unauthenticated access
redirects to signin for /admin route
passed
0.003s
proxy middleware > admin route protection > unauthenticated access
redirects to signin for /admin/dashboard
passed
0.002s
proxy middleware > admin route protection > unauthenticated access
redirects to signin for /admin/products
passed
0.006s
proxy middleware > admin route protection > unauthenticated access
redirects to signin for /admin/orders
passed
0.003s
proxy middleware > admin route protection > unauthenticated access
redirects to signin for nested admin routes
passed
0.002s
proxy middleware > admin route protection > unauthenticated access
includes security headers on redirect response
passed
0.002s
proxy middleware > admin route protection > authenticated non-admin access
redirects non-admin user to home page
passed
0.003s
proxy middleware > admin route protection > authenticated non-admin access
redirects non-admin from /admin/dashboard to home
passed
0.002s
proxy middleware > admin route protection > authenticated non-admin access
redirects non-admin from /admin/products to home
passed
0.003s
proxy middleware > admin route protection > authenticated non-admin access
includes security headers on redirect response
passed
0.003s
proxy middleware > admin route protection > authenticated admin access
allows admin access to /admin route
passed
0.003s
proxy middleware > admin route protection > authenticated admin access
allows admin access to /admin/dashboard
passed
0.004s
proxy middleware > admin route protection > authenticated admin access
allows admin access to /admin/products
passed
0.002s
proxy middleware > admin route protection > authenticated admin access
allows admin access to /admin/orders
passed
0.002s
proxy middleware > admin route protection > authenticated admin access
allows admin access to nested admin routes
passed
0.002s
proxy middleware > admin route protection > authenticated admin access
includes security headers on successful response
passed
0.002s
proxy middleware > edge cases
handles session without user object
passed
0.002s
proxy middleware > edge cases
handles session with user but no role
passed
0.003s
proxy middleware > edge cases
handles different admin route patterns
passed
0.006s
proxy middleware > edge cases
handles URLs with query parameters
passed
0.002s
proxy middleware > edge cases
handles URLs with hash fragments
passed
0.003s
proxy middleware > edge cases
preserves original URL in redirect for different base URLs
passed
0.002s
proxy middleware > edge cases
handles case sensitivity in route matching
passed
0.002s
proxy middleware > edge cases
does not protect routes that only contain 'admin' in path
passed
0.002s
proxy middleware > CSP variations by environment
generates different CSP for production vs development
passed
0.003s
proxy middleware > multiple security headers together
adds all security headers to a single response
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\Button\__tests__\Button.test.tsx
6.881s
Button Component > Rendering
renders button with correct text
passed
0.224s
Button Component > Rendering
renders as a button element by default
passed
0.015s
Button Component > Rendering
forwards ref to the button element
passed
0.011s
Button Component > Variants
renders primary variant with correct styles
passed
0.023s
Button Component > Variants
renders secondary variant with correct styles
passed
0.063s
Button Component > Variants
renders outline variant with correct styles
passed
0.013s
Button Component > Variants
renders ghost variant with correct styles
passed
0.016s
Button Component > Variants
renders danger variant with correct styles
passed
0.023s
Button Component > Variants
defaults to primary variant when not specified
passed
0.014s
Button Component > Sizes
renders small size with correct padding and touch target
passed
0.037s
Button Component > Sizes
renders medium size with correct padding and touch target
passed
0.011s
Button Component > Sizes
renders large size with correct padding and touch target
passed
0.025s
Button Component > Sizes
defaults to medium size when not specified
passed
0.017s
Button Component > Full Width
renders full width button
passed
0.011s
Button Component > Full Width
does not add full width class when fullWidth is false
passed
0.025s
Button Component > Loading State
shows loading spinner when loading is true
passed
0.337s
Button Component > Loading State
disables button when loading
passed
0.019s
Button Component > Loading State
hides children text when loading
passed
0.008s
Button Component > Loading State
hides icons when loading
passed
0.033s
Button Component > Loading State
shows content when not loading
passed
0.006s
Button Component > Icons
renders left icon
passed
0.006s
Button Component > Icons
renders right icon
passed
0.006s
Button Component > Icons
renders both left and right icons
passed
0.041s
Button Component > Icons
wraps icons in span with inline-flex class
passed
0.011s
Button Component > Disabled State
disables button when disabled prop is true
passed
0.011s
Button Component > Disabled State
adds disabled opacity class
passed
0.011s
Button Component > Disabled State
adds disabled cursor class
passed
0.033s
Button Component > Disabled State
does not call onClick when disabled
passed
0.014s
Button Component > Click Handling
calls onClick handler when clicked
passed
0.039s
Button Component > Click Handling
does not call onClick when loading
passed
0.024s
Button Component > Click Handling
calls onClick with event parameter
passed
0.031s
Button Component > Custom className
merges custom className with base classes
passed
0.029s
Button Component > Custom className
allows className override
passed
0.012s
Button Component > HTML Attributes
forwards type attribute
passed
0.022s
Button Component > HTML Attributes
forwards aria attributes
passed
0.01s
Button Component > HTML Attributes
forwards data attributes
passed
0.009s
Button Component > HTML Attributes
forwards id attribute
passed
0.058s
Button Component > Focus and Keyboard
is keyboard focusable
passed
0.026s
Button Component > Focus and Keyboard
has focus ring styles
passed
0.022s
Button Component > Focus and Keyboard
cannot be focused when disabled
passed
0.014s
Button Component > Focus and Keyboard
has proper role for keyboard activation
passed
0.013s
Button Component > Focus and Keyboard
maintains focus visibility for keyboard users
passed
0.032s
Button Component > Accessibility
has no accessibility violations (primary)
passed
0.247s
Button Component > Accessibility
has no accessibility violations (outline)
passed
0.094s
Button Component > Accessibility
has no accessibility violations (disabled)
passed
0.136s
Button Component > Accessibility
has no accessibility violations (loading)
passed
0.138s
Button Component > Accessibility
has no accessibility violations (with icons)
passed
0.173s
Button Component > Edge Cases
renders without children
passed
0.011s
Button Component > Edge Cases
handles rapid clicks
passed
0.041s
Button Component > Edge Cases
handles children as React elements
passed
0.007s
Button Component > Edge Cases
transitions from loading to not loading
passed
0.012s
Button Component > Edge Cases
transitions from disabled to enabled
passed
0.033s
Button Component > Combination Tests
renders all props together correctly
passed
0.016s
Button Component > Combination Tests
combines variant and size correctly
passed
0.19s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\shop\ShopSidebar\__tests__\CategoryDropdown.test.tsx
8.38s
CategoryDropdown > Rendering
renders the dropdown with title
passed
0.166s
CategoryDropdown > Rendering
renders all top-level categories
passed
0.061s
CategoryDropdown > Rendering
displays product counts
passed
0.052s
CategoryDropdown > Rendering
renders toggle button with proper accessibility attributes
passed
0.303s
CategoryDropdown > Rendering
renders with empty categories array
passed
0.066s
CategoryDropdown > Dropdown toggle
is expanded by default
passed
0.078s
CategoryDropdown > Dropdown toggle
collapses when header is clicked
passed
0.205s
CategoryDropdown > Dropdown toggle
expands when collapsed and header is clicked again
passed
0.204s
CategoryDropdown > Category selection
calls onCategorySelect when category is clicked
passed
0.139s
CategoryDropdown > Category selection
shows selected state for selected category
passed
0.052s
CategoryDropdown > Category selection
shows checkbox when category is selected
passed
0.041s
CategoryDropdown > Child categories
does not show children by default
passed
0.036s
CategoryDropdown > Child categories
shows expand button for categories with children
passed
0.045s
CategoryDropdown > Child categories
shows children when expanded
passed
0.035s
CategoryDropdown > Child categories
calls onToggleExpand when expand button is clicked
passed
0.095s
CategoryDropdown > Child categories
allows selecting child categories
passed
0.19s
CategoryDropdown > Child categories
displays child product counts
passed
0.044s
CategoryDropdown > Keyboard accessibility
allows toggling expansion with Enter key
passed
0.101s
CategoryDropdown > Keyboard accessibility
allows toggling expansion with Space key
passed
0.064s
CategoryDropdown > Default props
works without optional props
passed
0.039s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\integrations\__tests__\redis.test.ts
14.101s
Redis utility - with Redis configured > CACHE_TTL configuration
exports correct TTL values
passed
0.418s
Redis utility - with Redis configured > getRedisClient
returns Redis client when credentials are provided
passed
0.286s
Redis utility - with Redis configured > getRedisClient
returns same client instance on multiple calls (singleton)
passed
0.229s
Redis utility - with Redis configured > isRedisAvailable
returns true when Redis is configured and initialized
passed
0.187s
Redis utility - with Redis configured > redisGet
retrieves value from Redis
passed
0.267s
Redis utility - with Redis configured > redisGet
returns null when key does not exist
passed
0.263s
Redis utility - with Redis configured > redisGet
handles errors gracefully and returns null
passed
0.387s
Redis utility - with Redis configured > redisGet
retrieves different types of values
passed
0.162s
Redis utility - with Redis configured > redisGet
handles empty string key
passed
0.18s
Redis utility - with Redis configured > redisGet
handles special characters in keys
passed
0.176s
Redis utility - with Redis configured > redisGet
handles complex nested objects
passed
0.173s
Redis utility - with Redis configured > redisSet
sets value in Redis without TTL
passed
0.201s
Redis utility - with Redis configured > redisSet
sets value in Redis with TTL
passed
0.183s
Redis utility - with Redis configured > redisSet
handles errors gracefully without throwing
passed
0.157s
Redis utility - with Redis configured > redisSet
sets different types of values
passed
0.147s
Redis utility - with Redis configured > redisSet
handles TTL of 0 correctly (treated as no TTL)
passed
0.308s
Redis utility - with Redis configured > redisSet
handles very large TTL values
passed
0.143s
Redis utility - with Redis configured > redisSet
handles undefined values
passed
0.15s
Redis utility - with Redis configured > redisDel
deletes single key from Redis
passed
0.145s
Redis utility - with Redis configured > redisDel
deletes multiple keys from Redis
passed
0.189s
Redis utility - with Redis configured > redisDel
does nothing when no keys provided
passed
0.17s
Redis utility - with Redis configured > redisDel
handles errors gracefully without throwing
passed
0.16s
Redis utility - with Redis configured > redisKeys
retrieves keys matching pattern
passed
0.154s
Redis utility - with Redis configured > redisKeys
returns empty array when no keys match
passed
0.156s
Redis utility - with Redis configured > redisKeys
handles errors gracefully and returns empty array
passed
0.208s
Redis utility - with Redis configured > redisKeys
handles different pattern types
passed
0.157s
Redis utility - with Redis configured > RedisClient wrapper operations > exists
checks if key exists
passed
0.238s
Redis utility - with Redis configured > RedisClient wrapper operations > exists
checks multiple keys
passed
0.347s
Redis utility - with Redis configured > RedisClient wrapper operations > exists
returns 0 on error
passed
0.34s
Redis utility - with Redis configured > RedisClient wrapper operations > incr
increments key value
passed
0.216s
Redis utility - with Redis configured > RedisClient wrapper operations > incr
returns 0 on error
passed
0.134s
Redis utility - with Redis configured > RedisClient wrapper operations > expire
sets expiration on key
passed
0.146s
Redis utility - with Redis configured > RedisClient wrapper operations > expire
handles errors gracefully without throwing
passed
0.152s
Redis utility - with Redis configured > Integration scenarios
handles complete cache workflow
passed
0.146s
Redis utility - with Redis configured > Integration scenarios
handles cache invalidation pattern
passed
0.164s
Redis utility - with Redis configured > Integration scenarios
handles counter increment pattern
passed
0.192s
Redis utility - with Redis configured > Integration scenarios
handles concurrent operations
passed
0.212s
Redis utility - with Redis configured > Type safety
preserves type information for get operations
passed
0.304s
Redis utility - with Redis configured > Type safety
handles null return type correctly
passed
0.243s
Redis utility - without Redis configured > when UPSTASH_REDIS_REST_URL is missing
getRedisClient returns null
passed
0.3s
Redis utility - without Redis configured > when UPSTASH_REDIS_REST_URL is missing
isRedisAvailable returns false
passed
0.28s
Redis utility - without Redis configured > when UPSTASH_REDIS_REST_URL is missing
redisGet returns null
passed
0.234s
Redis utility - without Redis configured > when UPSTASH_REDIS_REST_URL is missing
redisSet does nothing
passed
0.173s
Redis utility - without Redis configured > when UPSTASH_REDIS_REST_URL is missing
redisDel does nothing
passed
0.226s
Redis utility - without Redis configured > when UPSTASH_REDIS_REST_URL is missing
redisKeys returns empty array
passed
0.119s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\services\__tests__\integration\order-db.integration.test.ts
6.456s
Order Service Integration Tests > Transaction Handling > Order Creation
creates order with items atomically
passed
0.133s
Order Service Integration Tests > Transaction Handling > Order Creation
includes promo code and discount in order
passed
0.003s
Order Service Integration Tests > Transaction Handling > Order Status Updates
updates status atomically
passed
0.003s
Order Service Integration Tests > Error Recovery
propagates database connection errors on getById
passed
0.115s
Order Service Integration Tests > Error Recovery
propagates database errors on getByUserId
passed
0.003s
Order Service Integration Tests > Error Recovery
handles create failure gracefully
passed
0.03s
Order Service Integration Tests > Error Recovery
handles status update failure
passed
0.003s
Order Service Integration Tests > Error Recovery
handles cancellation failure
passed
0.003s
Order Service Integration Tests > Concurrent Operation Safety
handles simultaneous status updates
passed
0.006s
Order Service Integration Tests > Concurrent Operation Safety
handles race condition on cancel
passed
0.002s
Order Service Integration Tests > Data Consistency
maintains order total consistency with items
passed
0.008s
Order Service Integration Tests > Data Consistency
maintains order total consistency with discount
passed
0.003s
Order Service Integration Tests > Order Lifecycle
follows valid order status transitions
passed
0.002s
Order Service Integration Tests > Order Lifecycle
prevents invalid status transitions
passed
0.013s
Order Service Integration Tests > Order Lifecycle
allows cancellation from valid states only
passed
0.006s
Order Service Integration Tests > Pagination
returns correct pagination metadata
passed
0.004s
Order Service Integration Tests > Pagination
handles empty result set
passed
0.002s
Order Service Integration Tests > Pagination
handles page beyond available data
passed
0.001s
Order Service Integration Tests > Filtering
combines multiple filters correctly
passed
0.002s
Console Log
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\jest.setup.integration.ts:15:11)
    at Promise.finally.completed (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1557:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1497:10)
    at _callCircusHook (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:976:40)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:800:7)
    at run (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:761:3)
    at runAndTransformResultsToJestFormat (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1918:21)
    at jestAdapter (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\runner.js:101:19)
    at runTestInternal (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:275:16)
    at runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:343:7)
    at Object.worker (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:497:12)
Connected to test database
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\alerts\AlertConfigList\__tests__\AlertConfigList.test.tsx
5.815s
AlertConfigList > empty state
renders empty state when no configs
passed
0.238s
AlertConfigList > rendering configs
renders config list with configs
passed
0.151s
AlertConfigList > rendering configs
displays metric type
passed
0.058s
AlertConfigList > rendering configs
displays scope
passed
0.046s
AlertConfigList > rendering configs
displays thresholds
passed
0.027s
AlertConfigList > rendering configs
displays alert count
passed
0.022s
AlertConfigList > rendering configs
displays singular alert count
passed
0.02s
AlertConfigList > rendering configs
renders multiple configs
passed
0.066s
AlertConfigList > disabled configs
shows disabled badge for disabled configs
passed
0.027s
AlertConfigList > disabled configs
applies opacity to disabled configs
passed
0.027s
AlertConfigList > status indicators
shows current value when available
passed
0.028s
AlertConfigList > active alerts preview
shows active alerts when present
passed
0.054s
AlertConfigList > active alerts preview
does not show active alerts section when no alerts
passed
0.021s
AlertConfigList > actions
calls onEdit when edit button is clicked
passed
0.172s
AlertConfigList > actions
calls onToggle when toggle button is clicked
passed
0.082s
AlertConfigList > actions
shows delete confirmation when delete button is clicked
passed
0.071s
AlertConfigList > actions
calls onDelete when delete is confirmed
passed
0.106s
AlertConfigList > actions
hides delete confirmation when cancel is clicked
passed
0.074s
AlertConfigList > metric labels
displays correct label for response_time
passed
0.025s
AlertConfigList > metric labels
displays correct label for p95_latency
passed
0.021s
AlertConfigList > metric labels
displays correct label for error_rate
passed
0.025s
AlertConfigList > metric labels
displays correct label for throughput
passed
0.021s
AlertConfigList > className
applies custom className
passed
0.008s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\api-docs\__tests__\test-runner.test.ts
5.31s
Collection Test Runner > TestCase interface
should allow valid test case configuration
passed
0.006s
Collection Test Runner > TestSuite interface
should allow valid test suite configuration
passed
0.003s
Collection Test Runner > formatTestResults
should format passing test results
passed
0.018s
Collection Test Runner > formatTestResults
should format failing test results with error details
passed
0.002s
Collection Test Runner > formatTestResults
should format skipped tests
passed
0.002s
Collection Test Runner > formatTestResults
should include setup and teardown results
passed
0.002s
Collection Test Runner > generateJUnitReport
should generate valid JUnit XML
passed
0.008s
Collection Test Runner > generateJUnitReport
should include failure elements for failed tests
passed
0.011s
Collection Test Runner > generateJUnitReport
should include error elements for errored tests
passed
0.002s
Collection Test Runner > generateJUnitReport
should include skipped element for skipped tests
passed
0.001s
Collection Test Runner > generateJUnitReport
should escape XML special characters
passed
0.003s
Collection Test Runner > generateJUnitReport
should aggregate totals from multiple suites
passed
0.002s
Collection Test Runner > RunOptions interface
should allow valid run options configuration
passed
0.002s
Collection Test Runner > Test filtering
should filter tests by tags correctly (model)
passed
0.003s
Collection Test Runner > Test filtering
should identify only tests correctly
passed
0.002s
Collection Test Runner > Test filtering
should identify skipped tests correctly
passed
0.001s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\checkout\__tests__\ShippingMethod.test.tsx
5.221s
ShippingMethod Component > Rendering
renders shipping method section with title
passed
0.19s
ShippingMethod Component > Rendering
renders free shipping option
passed
0.057s
ShippingMethod Component > Rendering
renders FedEx shipping option
passed
0.063s
ShippingMethod Component > Rendering
renders DHL shipping option
passed
0.073s
ShippingMethod Component > Rendering
renders standard shipping labels
passed
0.046s
ShippingMethod Component > Rendering
renders three shipping method inputs
passed
0.292s
ShippingMethod Component > Default State
has free shipping selected by default
passed
0.043s
ShippingMethod Component > Selection
selects FedEx when clicked
passed
0.164s
ShippingMethod Component > Selection
selects DHL when clicked
passed
0.142s
ShippingMethod Component > Selection
allows switching between shipping methods
passed
0.261s
ShippingMethod Component > Selection
can select free shipping again after other options
passed
0.214s
ShippingMethod Component > Layout and Styling
has proper container styling
passed
0.025s
ShippingMethod Component > Layout and Styling
has header with border
passed
0.03s
ShippingMethod Component > Layout and Styling
renders shipping method images
passed
0.031s
ShippingMethod Component > Accessibility
has no accessibility violations
passed
0.282s
ShippingMethod Component > Accessibility
has proper heading structure
passed
0.05s
ShippingMethod Component > Accessibility
labels are clickable
passed
0.104s
ShippingMethod Component > Accessibility
inputs are visually hidden but accessible
passed
0.06s
ShippingMethod Component > Accessibility
each option has associated label
passed
0.034s
ShippingMethod Component > Price Display
displays FedEx price correctly
passed
0.021s
ShippingMethod Component > Price Display
displays DHL price correctly
passed
0.02s
ShippingMethod Component > Price Display
price text has proper styling
passed
0.023s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\__tests__\shop\SearchBar.test.tsx
14.964s
SearchBar Component
renders search input with placeholder
passed
0.318s
SearchBar Component
renders search button
passed
0.065s
SearchBar Component
updates input value when user types
passed
0.385s
SearchBar Component
fetches suggestions when query length >= 2
passed
0.443s
SearchBar Component
does not fetch suggestions when query length < 2
passed
0.15s
SearchBar Component
displays suggestions dropdown when available
passed
0.408s
SearchBar Component
navigates to shop page with query on form submit
passed
0.058s
SearchBar Component
selects suggestion on click and navigates
passed
0.408s
SearchBar Component
clears search on ESC key when input is focused
passed
0.049s
SearchBar Component
has proper accessibility attributes
passed
0.024s
SearchBar Component
calls onSearch callback when provided
passed
0.074s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\cart\CartSidebarModal\__tests__\SingleItem.test.tsx
7.692s
CartSidebarModal SingleItem Component > Accessibility
has no accessibility violations
passed
0.522s
CartSidebarModal SingleItem Component > Accessibility
has accessible quantity controls
passed
0.034s
CartSidebarModal SingleItem Component > Accessibility
has accessible remove button
passed
0.026s
CartSidebarModal SingleItem Component > Accessibility
displays product title as accessible link
passed
0.07s
CartSidebarModal SingleItem Component > Rendering
renders product title
passed
0.026s
CartSidebarModal SingleItem Component > Rendering
renders quantity value
passed
0.032s
CartSidebarModal SingleItem Component > Rendering
renders line total correctly
passed
0.03s
CartSidebarModal SingleItem Component > Rendering
renders quantity label
passed
0.03s
CartSidebarModal SingleItem Component > Rendering
renders line total label
passed
0.027s
CartSidebarModal SingleItem Component > Color Contrast Compliance
uses accessible text colors for labels
passed
0.029s
CartSidebarModal SingleItem Component > Interactions
increments quantity when plus button is clicked
passed
0.062s
CartSidebarModal SingleItem Component > Interactions
decrements quantity when minus button is clicked
passed
0.054s
CartSidebarModal SingleItem Component > Interactions
updates quantity via input change
passed
0.06s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\products\images\__tests__\route.test.ts
4.412s
/api/admin/products/images > POST /api/admin/products/images > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.034s
/api/admin/products/images > POST /api/admin/products/images > Authentication & Authorization
returns 403 for non-admin user
passed
0.005s
/api/admin/products/images > POST /api/admin/products/images > Validation
returns 400 when file is missing
passed
0.083s
/api/admin/products/images > POST /api/admin/products/images > Validation
returns 400 when productId is missing
passed
0.018s
/api/admin/products/images > POST /api/admin/products/images > Validation
returns 400 for invalid file type
passed
0.005s
/api/admin/products/images > POST /api/admin/products/images > Validation
returns 404 when product not found
passed
0.005s
/api/admin/products/images > POST /api/admin/products/images > Successful upload
uploads and processes image, creating both full-size and thumbnail
passed
0.012s
/api/admin/products/images > POST /api/admin/products/images > Error handling
returns 500 on image processing error
passed
0.079s
/api/admin/products/images > POST /api/admin/products/images > Error handling
returns 500 on database error
passed
0.009s
/api/admin/products/images > DELETE /api/admin/products/images > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.003s
/api/admin/products/images > DELETE /api/admin/products/images > Authentication & Authorization
returns 403 for non-admin user
passed
0.003s
/api/admin/products/images > DELETE /api/admin/products/images > Validation
returns 400 when image id is missing
passed
0.003s
/api/admin/products/images > DELETE /api/admin/products/images > Validation
returns 404 when image not found
passed
0.002s
/api/admin/products/images > DELETE /api/admin/products/images > Successful deletion
deletes image from database and file system (both full-size and thumbnail)
passed
0.005s
/api/admin/products/images > DELETE /api/admin/products/images > Successful deletion
returns 500 if deleteProductImage throws
passed
0.005s
/api/admin/products/images > DELETE /api/admin/products/images > Error handling
returns 500 on database error
passed
0.005s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\product\Reviews\__tests__\ReviewList.test.tsx
6.576s
ReviewList > Initial data rendering
renders with initial data without fetching
passed
0.278s
ReviewList > Initial data rendering
displays rating distribution chart
passed
0.145s
ReviewList > Initial data rendering
renders sort dropdown
passed
0.124s
ReviewList > Empty state
shows empty state when no reviews exist
passed
0.014s
ReviewList > Loading state
shows loading skeleton when fetching
passed
0.039s
ReviewList > Sorting
fetches reviews when sort changes
passed
0.444s
ReviewList > Sorting
has all sort options available
passed
0.124s
ReviewList > Pagination
shows pagination when multiple pages exist
passed
0.138s
ReviewList > Pagination
does not show pagination for single page
passed
0.111s
ReviewList > Helpful voting
does not show helpful buttons when not authenticated
passed
0.067s
ReviewList > Helpful voting
shows helpful buttons when authenticated
passed
0.149s
ReviewList > Custom className
applies custom className
passed
0.126s
ReviewListSkeleton
renders skeleton UI
passed
0.027s
ReviewListSkeleton
shows 5 rating distribution skeletons
passed
0.029s
ReviewListSkeleton
shows 3 review card skeletons
passed
0.022s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\products\__tests__\route.integration.test.ts
4.747s
Products API Integration > Database Operations via ProductService
can retrieve products with filters
passed
0.011s
Products API Integration > Database Operations via ProductService
can query products with price range filters
passed
0.003s
Products API Integration > Database Operations via ProductService
can retrieve a single product by ID
passed
0.004s
Products API Integration > Database Operations via ProductService
returns null for non-existent product
passed
0.002s
Products API Integration > Product Search via ProductService
can search products by title
passed
0.004s
Products API Integration > Product Search via ProductService
returns empty for short search queries
passed
0.003s
Products API Integration > Related Products via ProductService
retrieves related products by category
passed
0.002s
Products API Integration > Price Range via ProductService
returns correct min and max prices
passed
0.002s
Products API Integration > Price Range via ProductService
handles no products gracefully
passed
0.001s
Products API Integration > Product Existence Check via ProductService
returns true for existing product
passed
0.002s
Products API Integration > Product Existence Check via ProductService
returns false for non-existing product
passed
0.001s
Products API Integration > Error Handling
propagates database errors
passed
0.11s
Products API Integration > Error Handling
propagates search errors
passed
0.003s
Console Log
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\jest.setup.integration.ts:15:11)
    at Promise.finally.completed (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1557:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1497:10)
    at _callCircusHook (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:976:40)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:800:7)
    at run (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:761:3)
    at runAndTransformResultsToJestFormat (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1918:21)
    at jestAdapter (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\runner.js:101:19)
    at runTestInternal (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:275:16)
    at runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:343:7)
    at Object.worker (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:497:12)
Connected to test database
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\analytics\track\__tests__\route.test.ts
4.131s
POST /api/analytics/track > New batch event format
tracks a batch of events successfully
passed
0.078s
POST /api/analytics/track > New batch event format
tracks multiple events in a batch
passed
0.006s
POST /api/analytics/track > New batch event format
validates required fields in batch events
passed
0.008s
POST /api/analytics/track > New batch event format
rejects empty events array
passed
0.004s
POST /api/analytics/track > New batch event format
includes referrer when provided
passed
0.056s
POST /api/analytics/track > Legacy event format (backwards compatibility)
tracks a complete legacy event with all fields
passed
0.011s
POST /api/analytics/track > Legacy event format (backwards compatibility)
tracks legacy event without optional label field
passed
0.004s
POST /api/analytics/track > Legacy event format (backwards compatibility)
tracks legacy event without optional value field
passed
0.004s
POST /api/analytics/track > Legacy event format (backwards compatibility)
tracks legacy event with minimal required fields
passed
0.004s
POST /api/analytics/track > Event category tracking (legacy format)
tracks product events
passed
0.003s
POST /api/analytics/track > Event category tracking (legacy format)
tracks cart events
passed
0.023s
POST /api/analytics/track > Event category tracking (legacy format)
tracks checkout events
passed
0.005s
POST /api/analytics/track > Event category tracking (legacy format)
tracks user engagement events
passed
0.005s
POST /api/analytics/track > Event category tracking (legacy format)
tracks error events
passed
0.016s
POST /api/analytics/track > Invalid event format
returns 400 for empty object
passed
0.005s
POST /api/analytics/track > Invalid event format
returns 400 for invalid structure
passed
0.004s
POST /api/analytics/track > Error handling
returns 500 on JSON parse error
passed
0.032s
POST /api/analytics/track > Error handling
handles missing request body
passed
0.017s
POST /api/analytics/track > Multiple concurrent requests
handles multiple concurrent legacy tracking requests
passed
0.018s
POST /api/analytics/track > Multiple concurrent requests
handles multiple concurrent batch event requests
passed
0.075s
POST /api/analytics/track > Edge cases
handles very long event names in batch format
passed
0.004s
POST /api/analytics/track > Edge cases
handles special characters in event properties
passed
0.103s
POST /api/analytics/track > Edge cases
handles long URLs in legacy format
passed
0.003s
POST /api/analytics/track > Edge cases
handles special characters in legacy event labels
passed
0.003s
POST /api/analytics/track > Edge cases
handles numeric category/action in legacy format
passed
0.005s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\checkout\__tests__\Coupon.test.tsx
11.071s
Coupon Component > Rendering
renders coupon section with title
passed
0.2s
Coupon Component > Rendering
renders coupon input field
passed
0.012s
Coupon Component > Rendering
renders apply button
passed
0.203s
Coupon Component > Rendering
has proper input attributes
passed
0.014s
Coupon Component > User Interaction
allows typing in the coupon input
passed
0.333s
Coupon Component > User Interaction
clears input when cleared
passed
0.421s
Coupon Component > User Interaction
button is clickable
passed
0.102s
Coupon Component > Layout and Styling
has proper container styling
passed
0.029s
Coupon Component > Layout and Styling
has header with border
passed
0.012s
Coupon Component > Layout and Styling
renders input with full width
passed
0.022s
Coupon Component > Accessibility
has no accessibility violations
passed
0.168s
Coupon Component > Accessibility
input is focusable
passed
0.029s
Coupon Component > Accessibility
button is focusable
passed
0.082s
Coupon Component > Accessibility
has proper heading structure
passed
0.04s
Coupon Component > Submit Type
button has submit type
passed
0.037s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\contexts\__tests__\QuickViewModalContext.test.tsx
5.039s
QuickViewModalContext > ModalProvider
provides initial closed state
passed
0.097s
QuickViewModalContext > ModalProvider
renders children
passed
0.015s
QuickViewModalContext > useModalContext
throws error when used outside provider
passed
0.207s
QuickViewModalContext > useModalContext
provides isModalOpen state
passed
0.006s
QuickViewModalContext > useModalContext
provides openModal function
passed
0.328s
QuickViewModalContext > useModalContext
provides closeModal function
passed
0.03s
QuickViewModalContext > Modal state management
opens modal when openModal is called
passed
0.125s
QuickViewModalContext > Modal state management
closes modal when closeModal is called
passed
0.159s
QuickViewModalContext > Modal state management
can toggle modal multiple times
passed
0.269s
QuickViewModalContext > Modal state management
calling openModal when already open keeps it open
passed
0.156s
QuickViewModalContext > Modal state management
calling closeModal when already closed keeps it closed
passed
0.101s
QuickViewModalContext > Multiple consumers
shares state between multiple consumers
passed
0.078s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\contexts\__tests__\ThemeContext.test.tsx
7.82s
ThemeContext > ThemeProvider
provides default theme as system
passed
0.216s
ThemeContext > ThemeProvider
provides custom default theme
passed
0.019s
ThemeContext > ThemeProvider
renders children
passed
0.02s
ThemeContext > useTheme
throws error when used outside provider
passed
0.242s
ThemeContext > useTheme
provides theme state
passed
0.084s
ThemeContext > useTheme
provides resolvedTheme state
passed
0.013s
ThemeContext > useTheme
provides setTheme function
passed
0.43s
ThemeContext > useTheme
provides toggleTheme function
passed
0.037s
ThemeContext > Theme resolution
resolves light theme correctly
passed
0.01s
ThemeContext > Theme resolution
resolves dark theme correctly
passed
0.024s
ThemeContext > Theme resolution
resolves system theme to light when system prefers light
passed
0.013s
ThemeContext > Theme resolution
resolves system theme to dark when system prefers dark
passed
0.05s
ThemeContext > Theme state management
changes to light theme when setTheme is called
passed
0.115s
ThemeContext > Theme state management
changes to dark theme when setTheme is called
passed
0.139s
ThemeContext > Theme state management
changes to system theme when setTheme is called
passed
0.256s
ThemeContext > Theme toggling
toggles from light to dark
passed
0.237s
ThemeContext > Theme toggling
toggles from dark to light
passed
0.237s
ThemeContext > Theme toggling
toggles system theme based on resolved value
passed
0.098s
ThemeContext > Theme toggling
can toggle multiple times
passed
0.307s
ThemeContext > LocalStorage persistence
saves theme preference to localStorage when setTheme is called
passed
0.086s
ThemeContext > LocalStorage persistence
loads saved theme from localStorage on mount
passed
0.01s
ThemeContext > LocalStorage persistence
ignores invalid saved theme from localStorage
passed
0.009s
ThemeContext > LocalStorage persistence
handles localStorage errors gracefully when saving
passed
0.127s
ThemeContext > LocalStorage persistence
handles localStorage errors gracefully when loading
passed
0.011s
ThemeContext > System theme change listener
listens for system theme changes when theme is system
passed
0.013s
ThemeContext > System theme change listener
does not listen for system theme changes when theme is not system
passed
0.024s
ThemeContext > System theme change listener
updates resolved theme when system preference changes
passed
0.037s
ThemeContext > System theme change listener
removes listener when unmounted
passed
0.02s
ThemeContext > System theme change listener
handles legacy addListener API
passed
0.037s
ThemeContext > DOM manipulation
sets data-theme attribute on document root
passed
0.09s
ThemeContext > DOM manipulation
adds theme-loaded class when mounted
passed
0.014s
ThemeContext > Multiple consumers
shares state between multiple consumers
passed
0.115s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\shop\ShopSidebar\__tests__\GenderDropdown.test.tsx
10.444s
GenderDropdown > Rendering
renders the dropdown with title
passed
0.165s
GenderDropdown > Rendering
renders all gender options
passed
0.046s
GenderDropdown > Rendering
displays product counts for each gender
passed
0.027s
GenderDropdown > Rendering
renders toggle button with aria-label
passed
0.029s
GenderDropdown > Rendering
renders with empty genders array
passed
0.01s
GenderDropdown > Dropdown toggle
is expanded by default
passed
0.102s
GenderDropdown > Dropdown toggle
collapses when toggle button is clicked
passed
0.121s
GenderDropdown > Dropdown toggle
expands when collapsed and toggle is clicked
passed
0.238s
GenderDropdown > Dropdown toggle
toggles when clicking the header area
passed
0.116s
GenderDropdown > Gender selection
toggles gender selection on click
passed
0.172s
GenderDropdown > Gender selection
deselects on second click
passed
0.246s
GenderDropdown > Gender selection
allows selecting multiple genders
passed
0.331s
GenderDropdown > Checkbox indicator
shows check icon when selected
passed
0.077s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\cart\Cart\__tests__\OrderSummary.test.tsx
7.467s
OrderSummary > rendering
should render the order summary header
passed
0.136s
OrderSummary > rendering
should render Product and Subtotal column headers
passed
0.021s
OrderSummary > rendering
should render Total label
passed
0.086s
OrderSummary > rendering
should render checkout button
passed
0.183s
OrderSummary > empty cart
should show $0.00 total when cart is empty
passed
0.015s
OrderSummary > empty cart
should not render any product items when cart is empty
passed
0.026s
OrderSummary > with cart items
should render product names
passed
0.023s
OrderSummary > with cart items
should calculate and display subtotal for each item
passed
0.06s
OrderSummary > with cart items
should calculate and display total price
passed
0.028s
OrderSummary > price calculations
should handle single item with quantity 1
passed
0.041s
OrderSummary > price calculations
should handle large quantities
passed
0.049s
OrderSummary > price calculations
should handle multiple items with various quantities
passed
0.042s
OrderSummary > formatting
should format prices with commas for large numbers
passed
0.018s
OrderSummary > formatting
should format whole dollar amounts with .00
passed
0.036s
OrderSummary > checkout button
should have button type and navigate to checkout
passed
0.025s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\services\__tests__\integration\cart-db.integration.test.ts
6.479s
Cart Service Integration Tests > Transaction Handling > applyCartMerge - Transaction Success
deletes and creates items atomically
passed
0.01s
Cart Service Integration Tests > Transaction Handling > applyCartMerge - Transaction Success
handles empty merged items correctly
passed
0.002s
Cart Service Integration Tests > Transaction Handling > applyCartMerge - Transaction Failure
throws error on transaction failure
passed
0.143s
Cart Service Integration Tests > Transaction Handling > applyCartMerge - Transaction Failure
throws error when deleteMany fails
passed
0.005s
Cart Service Integration Tests > Transaction Handling > applyCartMerge - Transaction Failure
throws error when createMany fails
passed
0.004s
Cart Service Integration Tests > Concurrent Operation Safety
handles simultaneous cart additions for same user
passed
0.005s
Cart Service Integration Tests > Concurrent Operation Safety
handles simultaneous cart updates
passed
0.003s
Cart Service Integration Tests > Error Recovery
propagates database connection errors
passed
0.029s
Cart Service Integration Tests > Error Recovery
propagates product not found error on addItem
passed
0.002s
Cart Service Integration Tests > Error Recovery
handles Prisma unique constraint error on addItem
passed
0.011s
Cart Service Integration Tests > Error Recovery
handles update of non-existent cart item
passed
0.001s
Cart Service Integration Tests > Error Recovery
handles delete of non-existent cart item
passed
0.001s
Cart Service Integration Tests > Data Consistency
maintains cart item data consistency after merge
passed
0.004s
Cart Service Integration Tests > Data Consistency
preserves cart item images during transformation
passed
0.009s
Cart Service Integration Tests > Stale Item Management
retrieves only stale items for user
passed
0.002s
Cart Service Integration Tests > Stale Item Management
marks multiple items as stale
passed
0.001s
Cart Service Integration Tests > Stale Item Management
clears stale flags from all user items
passed
0.024s
Console Log
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\jest.setup.integration.ts:15:11)
    at Promise.finally.completed (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1557:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1497:10)
    at _callCircusHook (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:976:40)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:800:7)
    at run (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:761:3)
    at runAndTransformResultsToJestFormat (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1918:21)
    at jestAdapter (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\runner.js:101:19)
    at runTestInternal (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:275:16)
    at runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:343:7)
    at Object.worker (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:497:12)
Connected to test database
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\PerformanceDashboard\PerformanceDashboard.test.tsx
7.688s
PerformanceDashboard > Rendering
renders without crashing
passed
0.242s
PerformanceDashboard > Rendering
displays time range selector
passed
0.108s
PerformanceDashboard > Rendering
displays auto-refresh toggle
passed
0.136s
PerformanceDashboard > Rendering
displays refresh button
passed
0.054s
PerformanceDashboard > Rendering
displays last updated time
passed
0.068s
PerformanceDashboard > Summary Cards
displays total requests
passed
0.163s
PerformanceDashboard > Summary Cards
displays average response time
passed
0.123s
PerformanceDashboard > Summary Cards
displays P95 response time
passed
0.091s
PerformanceDashboard > Summary Cards
displays success rate
passed
0.147s
PerformanceDashboard > Charts
renders response time chart
passed
0.104s
PerformanceDashboard > Charts
renders request volume chart
passed
0.057s
PerformanceDashboard > Charts
renders endpoint distribution chart
passed
0.153s
PerformanceDashboard > Charts
renders status code chart
passed
0.068s
PerformanceDashboard > Slow Requests
displays slow requests section
passed
0.068s
PerformanceDashboard > Slow Requests
displays slow request details
passed
0.077s
PerformanceDashboard > Interactions
toggles auto-refresh when checkbox is clicked
passed
0.267s
PerformanceDashboard > Interactions
changes time range when selector is clicked
passed
0.127s
PerformanceDashboard > Default Props
uses default time range of 24h
passed
0.094s
PerformanceDashboard > Default Props
respects defaultTimeRange prop
passed
0.106s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\product\Reviews\__tests__\ReviewForm.test.tsx
7.079s
ReviewForm > Authentication states
shows skeleton while loading session
passed
0.188s
ReviewForm > Authentication states
shows sign in prompt when not authenticated
passed
0.279s
ReviewForm > Authentication states
shows form when authenticated
passed
0.096s
ReviewForm > Form rendering
renders rating stars
passed
0.062s
ReviewForm > Form rendering
renders comment textarea
passed
0.025s
ReviewForm > Form rendering
renders submit button
passed
0.135s
ReviewForm > Form rendering
shows character count
passed
0.056s
ReviewForm > Form rendering
applies custom className
passed
0.029s
ReviewForm > Form validation
submit button is disabled when no rating is selected
passed
0.07s
ReviewForm > Form validation
shows error when submitting without rating
passed
0.117s
ReviewForm > Form validation
shows minimum character warning for short comments
passed
0.398s
ReviewForm > Form validation
updates character count as user types
passed
0.575s
ReviewForm > Rating descriptions
renders rating component
passed
0.028s
ReviewForm > Form submission
submits review successfully
passed
0.021s
ReviewForm > Form submission
handles API error response
passed
0.028s
ReviewForm > Form submission
handles network error
passed
0.038s
ReviewForm > Form submission
shows duplicate review error with toast
passed
0.027s
ReviewForm > Loading state
disables form while submitting
passed
0.04s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\contexts\__tests__\CartSidebarModalContext.test.tsx
5.68s
CartSidebarModalContext > CartModalProvider
provides initial closed state
passed
0.168s
CartSidebarModalContext > CartModalProvider
renders children
passed
0.011s
CartSidebarModalContext > useCartModalContext
throws error when used outside provider
passed
0.132s
CartSidebarModalContext > useCartModalContext
provides isCartModalOpen state
passed
0.008s
CartSidebarModalContext > useCartModalContext
provides openCartModal function
passed
0.179s
CartSidebarModalContext > useCartModalContext
provides closeCartModal function
passed
0.034s
CartSidebarModalContext > Modal state management
opens modal when openCartModal is called
passed
0.21s
CartSidebarModalContext > Modal state management
closes modal when closeCartModal is called
passed
0.275s
CartSidebarModalContext > Modal state management
can toggle modal multiple times
passed
0.402s
CartSidebarModalContext > Modal state management
calling openCartModal when already open keeps it open
passed
0.202s
CartSidebarModalContext > Modal state management
calling closeCartModal when already closed keeps it closed
passed
0.107s
CartSidebarModalContext > Multiple consumers
shares state between multiple consumers
passed
0.075s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\contexts\__tests__\PreviewSliderContext.test.tsx
5.612s
PreviewSliderContext > PreviewSliderProvider
provides initial closed state
passed
0.122s
PreviewSliderContext > PreviewSliderProvider
renders children
passed
0.024s
PreviewSliderContext > usePreviewSlider
throws error when used outside provider
passed
0.102s
PreviewSliderContext > usePreviewSlider
provides isModalPreviewOpen state
passed
0.031s
PreviewSliderContext > usePreviewSlider
provides openPreviewModal function
passed
0.171s
PreviewSliderContext > usePreviewSlider
provides closePreviewModal function
passed
0.021s
PreviewSliderContext > Preview state management
opens preview when openPreviewModal is called
passed
0.165s
PreviewSliderContext > Preview state management
closes preview when closePreviewModal is called
passed
0.17s
PreviewSliderContext > Preview state management
can toggle preview multiple times
passed
0.197s
PreviewSliderContext > Preview state management
calling openPreviewModal when already open keeps it open
passed
0.246s
PreviewSliderContext > Preview state management
calling closePreviewModal when already closed keeps it closed
passed
0.133s
PreviewSliderContext > Multiple consumers
shares state between multiple consumers
passed
0.128s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\DatabasePerformance\DatabasePerformance.test.tsx
5.205s
DatabasePerformance > Rendering
renders without crashing
passed
0.229s
DatabasePerformance > Rendering
displays total queries count
passed
0.112s
DatabasePerformance > Rendering
displays average duration
passed
0.043s
DatabasePerformance > Rendering
displays slow queries count in summary card
passed
0.106s
DatabasePerformance > Rendering
displays tables hit count
passed
0.065s
DatabasePerformance > Summary Cards
shows Total Queries label
passed
0.041s
DatabasePerformance > Summary Cards
shows Avg Duration label
passed
0.076s
DatabasePerformance > Summary Cards
shows Slow Queries label
passed
0.026s
DatabasePerformance > Summary Cards
shows Tables Hit label
passed
0.032s
DatabasePerformance > Operation Breakdown
displays all operations
passed
0.059s
DatabasePerformance > Operation Breakdown
displays operation counts
passed
0.044s
DatabasePerformance > Operation Breakdown
does not render operation breakdown when empty
passed
0.033s
DatabasePerformance > Queries by Table
displays table names
passed
0.1s
DatabasePerformance > Queries by Table
displays call counts for tables
passed
0.094s
DatabasePerformance > Queries by Table
shows empty message when no query stats
passed
0.035s
DatabasePerformance > Slow Queries List
displays slow query names
passed
0.048s
DatabasePerformance > Slow Queries List
displays slow query durations
passed
0.076s
DatabasePerformance > Slow Queries List
displays operation badges
passed
0.085s
DatabasePerformance > Slow Queries List
displays table name badges
passed
0.085s
DatabasePerformance > Slow Queries List
displays row count when available
passed
0.111s
DatabasePerformance > Slow Queries List
displays failed badge for failed queries
passed
0.068s
DatabasePerformance > Slow Queries List
shows empty message when no slow queries
passed
0.027s
DatabasePerformance > Time Period
displays custom time period in headers
passed
0.039s
DatabasePerformance > Time Period
uses default time period when provided
passed
0.082s
DatabasePerformance > Slow Threshold
displays custom threshold in section header
passed
0.043s
DatabasePerformance > Empty State
handles zero queries gracefully
passed
0.045s
DatabasePerformance > Duration Formatting
formats sub-millisecond durations
passed
0.046s
DatabasePerformance > Duration Formatting
formats millisecond durations
passed
0.027s
DatabasePerformance > Duration Formatting
formats second durations
passed
0.069s
DatabasePerformance > Accessibility
has accessible table structure
passed
0.286s
DatabasePerformance > Accessibility
has proper heading hierarchy
passed
0.068s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\Dropdown\__tests__\Dropdown.test.tsx
5.621s
Dropdown > Rendering
renders with placeholder when no value selected
passed
0.149s
Dropdown > Rendering
renders with custom placeholder
passed
0.03s
Dropdown > Rendering
renders selected value
passed
0.013s
Dropdown > Rendering
renders disabled state
passed
0.125s
Dropdown > Rendering
renders full width when fullWidth prop is true
passed
0.032s
Dropdown > Opening and closing
opens dropdown on click
passed
0.089s
Dropdown > Opening and closing
closes dropdown on second click
passed
0.061s
Dropdown > Opening and closing
closes dropdown when clicking outside
passed
0.111s
Dropdown > Opening and closing
closes dropdown when Escape is pressed
passed
0.117s
Dropdown > Opening and closing
does not open when disabled
passed
0.036s
Dropdown > Selection
calls onChange when option is selected
passed
0.059s
Dropdown > Selection
closes dropdown after selection
passed
0.035s
Dropdown > Selection
highlights selected option in menu
passed
0.04s
Dropdown > Selection
does not select disabled item
passed
0.025s
Dropdown > Sizes
renders small size
passed
0.017s
Dropdown > Sizes
renders medium size (default)
passed
0.018s
Dropdown > Sizes
renders large size
passed
0.018s
Dropdown > With icons
renders items with icons
passed
0.038s
Dropdown > With icons
shows selected item icon in trigger
passed
0.016s
Dropdown > Custom trigger
renders custom trigger
passed
0.032s
Dropdown > Custom trigger
opens dropdown when custom trigger is clicked
passed
0.018s
Dropdown > Custom trigger
custom trigger respects disabled state
passed
0.025s
Dropdown > Accessibility
has proper ARIA attributes on trigger
passed
0.016s
Dropdown > Accessibility
updates aria-expanded when opened
passed
0.034s
Dropdown > Accessibility
has proper ARIA attributes on options
passed
0.045s
Dropdown > Cleanup
removes event listeners on unmount
passed
0.026s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\admin\monitoring\ErrorDetailsTab.test.tsx
9.59s
ErrorDetailsTab
renders details tab
passed
0.182s
ErrorDetailsTab
displays error info
passed
0.063s
ErrorDetailsTab
shows priority selector
passed
0.042s
ErrorDetailsTab
calls onUpdate when priority changes
passed
0.051s
ErrorDetailsTab
shows team member selector when teamMembers provided
passed
0.04s
ErrorDetailsTab
displays recent occurrences
passed
0.029s
ErrorDetailsTab
shows no occurrences message when empty
passed
0.048s
ErrorDetailsTab
shows snooze info when error is snoozed
passed
0.042s
ErrorDetailsTab
shows ignored reason when error is ignored
passed
0.028s
ErrorDetailsTab
disables controls when isUpdating is true
passed
0.021s
ErrorDetailsTab
shows stack trace in recent logs
passed
0.032s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\hooks\__tests__\useConfirm.test.tsx
6.044s
useConfirm > Basic functionality
should initially render with dialog closed
passed
0.174s
useConfirm > confirm function
should open dialog when confirm is called
passed
0.079s
useConfirm > confirm function
should display correct title and message
passed
0.068s
useConfirm > confirm function
should use default confirm and cancel text
passed
0.033s
useConfirm > confirm function
should use custom confirm and cancel text
passed
0.043s
useConfirm > confirm function
should use default info variant
passed
0.04s
useConfirm > confirm function
should use custom variant
passed
0.027s
useConfirm > Dialog interaction
should resolve with true when confirm button is clicked
passed
0.058s
useConfirm > Dialog interaction
should resolve with false when cancel button is clicked
passed
0.031s
useConfirm > Dialog interaction
should close dialog after confirm
passed
0.057s
useConfirm > Dialog interaction
should close dialog after cancel
passed
0.03s
useConfirm > Multiple confirmations
should handle sequential confirmations
passed
0.124s
useConfirm > Multiple confirmations
should update dialog content for new confirmation
passed
0.103s
useConfirm > Edge cases
should handle custom text with all options
passed
0.035s
useDeleteConfirm > Basic functionality
should initially render with dialog closed
passed
0.007s
useDeleteConfirm > Basic functionality
should open dialog with delete-specific content
passed
0.026s
useDeleteConfirm > Basic functionality
should resolve with true when delete is confirmed
passed
0.135s
useDeleteConfirm > Basic functionality
should resolve with false when delete is cancelled
passed
0.051s
useDeleteConfirm > Basic functionality
should handle different item names
passed
0.079s
useDeleteConfirm > Basic functionality
should close dialog after confirmation
passed
0.086s
useClearConfirm > Basic functionality
should initially render with dialog closed
passed
0.007s
useClearConfirm > Basic functionality
should open dialog with clear-specific content
passed
0.042s
useClearConfirm > Basic functionality
should resolve with true when clear is confirmed
passed
0.061s
useClearConfirm > Basic functionality
should resolve with false when clear is cancelled
passed
0.065s
useClearConfirm > Basic functionality
should handle different item names
passed
0.033s
useClearConfirm > Basic functionality
should close dialog after confirmation
passed
0.076s
Integration tests
should handle rapid confirmations correctly
passed
0.061s
Integration tests
should properly handle confirm result promise resolution
passed
0.064s
Integration tests
should properly handle cancel result promise resolution
passed
0.152s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\__tests__\cart\SingleItem.test.tsx
9.817s
SingleItem Component
renders cart item with correct details
passed
0.307s
SingleItem Component
displays correct total price
passed
0.049s
SingleItem Component
renders product image
passed
0.254s
SingleItem Component
increases quantity when plus button is clicked
passed
0.155s
SingleItem Component
decreases quantity when minus button is clicked
passed
0.075s
SingleItem Component
does not decrease quantity below 1
passed
0.029s
SingleItem Component
removes item from cart when delete button is clicked
passed
0.036s
SingleItem Component
updates displayed quantity immediately on increase
passed
0.174s
SingleItem Component
updates displayed quantity immediately on decrease
passed
0.167s
SingleItem Component
has proper accessibility labels on buttons
passed
0.066s
SingleItem Component
calculates total price correctly when quantity changes
passed
0.09s
SingleItem Component
displays placeholder image when no image is provided
passed
0.104s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\Stepper\__tests__\Stepper.test.tsx
8.437s
Stepper Component > Rendering
renders all steps
passed
0.258s
Stepper Component > Rendering
renders step descriptions
passed
0.054s
Stepper Component > Rendering
renders step numbers by default
passed
0.055s
Stepper Component > Rendering
renders custom icons when provided
passed
0.026s
Stepper Component > Rendering
has navigation role
passed
0.184s
Stepper Component > Rendering
has Progress aria-label
passed
0.027s
Stepper Component > Rendering
forwards ref to container div
passed
0.054s
Stepper Component > Step States
marks current step correctly
passed
0.052s
Stepper Component > Step States
marks completed steps correctly
passed
0.036s
Stepper Component > Step States
shows check icon for completed steps
passed
0.02s
Stepper Component > Step States
styles current step differently
passed
0.013s
Stepper Component > Step States
styles upcoming steps with gray text
passed
0.014s
Stepper Component > Clickable Steps
does not call onStepClick when clickable is false
passed
0.097s
Stepper Component > Clickable Steps
calls onStepClick for completed steps when clickable
passed
0.063s
Stepper Component > Clickable Steps
does not call onStepClick for current step
passed
0.022s
Stepper Component > Clickable Steps
does not call onStepClick for upcoming steps
passed
0.057s
Stepper Component > Clickable Steps
applies hover styles to clickable completed steps
passed
0.025s
Stepper Component > Clickable Steps
disables non-clickable step buttons
passed
0.048s
Stepper Component > Orientation
renders horizontal layout by default
passed
0.013s
Stepper Component > Orientation
renders vertical layout when specified
passed
0.011s
Stepper Component > Orientation
adjusts connector line for horizontal layout
passed
0.028s
Stepper Component > Orientation
adjusts connector line for vertical layout
passed
0.011s
Stepper Component > Show Description
shows descriptions by default
passed
0.039s
Stepper Component > Show Description
hides descriptions when showDescription is false
passed
0.034s
Stepper Component > Connector Lines
renders connector lines between steps
passed
0.084s
Stepper Component > Connector Lines
colors completed connectors with primary
passed
0.018s
Stepper Component > Connector Lines
colors incomplete connectors with gray
passed
0.016s
Stepper Component > Connector Lines
has aria-hidden on connectors
passed
0.017s
Stepper Component > Custom className
applies custom className to container
passed
0.03s
Stepper Component > Step Transitions
updates visual state when currentStep changes
passed
0.09s
Stepper Component > Accessibility
has no accessibility violations
passed
0.369s
Stepper Component > Accessibility
has no accessibility violations (vertical)
passed
0.249s
Stepper Component > Accessibility
has no accessibility violations (clickable)
passed
0.221s
Stepper Component > Accessibility
has appropriate aria-current on current step
passed
0.032s
Stepper Component > Accessibility
has appropriate aria-labels on step buttons
passed
0.101s
Stepper Component > Accessibility
step buttons are keyboard accessible
passed
0.074s
Stepper Component > Edge Cases
handles single step
passed
0.014s
Stepper Component > Edge Cases
handles steps without descriptions
passed
0.026s
Stepper Component > Edge Cases
handles currentStep at 0
passed
0.098s
Stepper Component > Edge Cases
handles currentStep at last step
passed
0.029s
Stepper Component > Edge Cases
handles currentStep beyond last step
passed
0.122s
Stepper Component > Edge Cases
handles many steps
passed
0.04s
Stepper Component > Focus and Keyboard Navigation
has focus ring styles on buttons
passed
0.032s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\analytics\services\__tests__\revenue.service.test.ts
6.358s
Revenue Service > getRevenueMetrics
should return all revenue metrics
passed
0.13s
Revenue Service > getRevenueMetrics
should calculate trend percentage correctly
passed
0.004s
Revenue Service > getRevenueMetrics
should handle zero revenue
passed
0.003s
Revenue Service > getRevenueTrend
should return daily trend data
passed
0.015s
Revenue Service > getRevenueTrend
should aggregate by week when granularity is week
passed
0.007s
Revenue Service > getRevenueTrend
should calculate average order value for each period
passed
0.013s
Revenue Service > getRevenueForecast
should return forecast with predictions
passed
0.011s
Revenue Service > getRevenueForecast
should return empty predictions with insufficient data
passed
0.012s
Revenue Service > getRevenueForecast
should include confidence intervals in predictions
passed
0.008s
Revenue Service > getRevenueByCategory
should return revenue breakdown by category
passed
0.004s
Revenue Service > getRevenueByCategory
should handle products without category
passed
0.002s
Revenue Service > getRevenueByCategory
should sort categories by revenue descending
passed
0.002s
Revenue Service > getTopProductsByRevenue
should return top products by revenue
passed
0.003s
Revenue Service > getTopProductsByRevenue
should respect the limit parameter
passed
0.004s
Revenue Service > getTopProductsByRevenue
should calculate units sold correctly
passed
0.014s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\shop\ShopSidebar\__tests__\PriceDropdown.test.tsx
5.051s
PriceDropdown > Rendering
renders the dropdown with title
passed
0.248s
PriceDropdown > Rendering
renders toggle button with proper accessibility attributes
passed
0.158s
PriceDropdown > Rendering
renders range slider
passed
0.017s
PriceDropdown > Rendering
displays initial min price of 0
passed
0.014s
PriceDropdown > Rendering
displays initial max price of 100
passed
0.013s
PriceDropdown > Rendering
displays dollar signs for price amounts
passed
0.031s
PriceDropdown > Dropdown toggle
is expanded by default
passed
0.085s
PriceDropdown > Dropdown toggle
collapses when toggle button is clicked
passed
0.114s
PriceDropdown > Dropdown toggle
expands when collapsed and toggle is clicked again
passed
0.167s
PriceDropdown > Dropdown toggle
toggles when clicking the header area
passed
0.095s
PriceDropdown > Price range selection
updates min price when slider changes
passed
0.055s
PriceDropdown > Price range selection
updates max price when slider changes
passed
0.034s
PriceDropdown > Price range selection
floors the min value
passed
0.016s
PriceDropdown > Price range selection
ceils the max value
passed
0.031s
PriceDropdown > Price display format
shows min amount in correct format
passed
0.016s
PriceDropdown > Price display format
shows max amount in correct format
passed
0.02s
PriceDropdown > Accessibility
has accessible toggle button with aria-expanded
passed
0.021s
PriceDropdown > Accessibility
toggle button updates aria-expanded when clicked
passed
0.144s
PriceDropdown > Accessibility
range slider has id for accessibility
passed
0.014s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\orders\__tests__\route.test.ts
7.363s
POST /api/orders > Authentication
requires authentication
passed
0.024s
POST /api/orders > Order creation
creates order from cart items
passed
0.041s
POST /api/orders > Order creation
calculates total correctly with multiple items
passed
0.006s
POST /api/orders > Order creation
returns error when cart is empty
passed
0.01s
POST /api/orders > Order creation
clears cart after order creation
passed
0.01s
POST /api/orders > Validation
rejects missing shipping address
passed
0.008s
POST /api/orders > Validation
rejects invalid shipping address fields
passed
0.017s
POST /api/orders > Validation
rejects missing billing address
passed
0.007s
POST /api/orders > Error handling
returns 500 on database error
passed
0.145s
GET /api/orders > Authentication
requires authentication
passed
0.014s
GET /api/orders > Order retrieval
returns user's orders
passed
0.019s
GET /api/orders > Order retrieval
returns orders sorted by date (newest first)
passed
0.007s
GET /api/orders > Order retrieval
returns empty array for user with no orders
passed
0.004s
GET /api/orders > Order retrieval
only returns orders belonging to the authenticated user
passed
0.009s
GET /api/orders > Error handling
returns 500 on database error
passed
0.009s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\products\[id]\reviews\__tests__\route.test.ts
6.349s
GET /api/products/[id]/reviews
returns reviews for a product
passed
0.028s
GET /api/products/[id]/reviews
returns 400 for invalid product ID
passed
0.022s
GET /api/products/[id]/reviews
supports pagination parameters
passed
0.01s
GET /api/products/[id]/reviews
supports sorting by rating
passed
0.014s
GET /api/products/[id]/reviews
includes helpful counts in response
passed
0.009s
GET /api/products/[id]/reviews
supports sorting by rating_low
passed
0.005s
GET /api/products/[id]/reviews
supports sorting by helpful
passed
0.008s
GET /api/products/[id]/reviews
returns 400 for invalid query parameters
passed
0.005s
GET /api/products/[id]/reviews
returns 500 on database error
passed
0.17s
POST /api/products/[id]/reviews > Authentication
returns 401 for unauthenticated request
passed
0.006s
POST /api/products/[id]/reviews > Authentication
returns 404 when user not found
passed
0.005s
POST /api/products/[id]/reviews > Validation
returns 400 when rating is missing
passed
0.027s
POST /api/products/[id]/reviews > Validation
returns 400 when rating is out of range
passed
0.015s
POST /api/products/[id]/reviews > Validation
returns 400 when comment is too short
passed
0.006s
POST /api/products/[id]/reviews > Business logic
returns 404 when product not found
passed
0.007s
POST /api/products/[id]/reviews > Business logic
returns 409 when user already reviewed product
passed
0.004s
POST /api/products/[id]/reviews > Successful creation
creates a review successfully
passed
0.004s
POST /api/products/[id]/reviews > Successful creation
creates a review without comment
passed
0.044s
POST /api/products/[id]/reviews > Error handling
returns 400 for invalid product ID in POST
passed
0.009s
POST /api/products/[id]/reviews > Error handling
returns 500 on database error during creation
passed
0.021s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\api\__tests__\errors.test.ts
6.476s
API Error System > ERROR_CODES
should have all expected error codes
passed
0.021s
API Error System > ApiError
should create an error with code, message, and status
passed
0.015s
API Error System > ApiError
should include details when provided
passed
0.009s
API Error System > ApiError > static factory methods
validation() creates 400 error
passed
0.003s
API Error System > ApiError > static factory methods
invalidId() creates 400 error with param name
passed
0.005s
API Error System > ApiError > static factory methods
notFound() creates 404 error
passed
0.016s
API Error System > ApiError > static factory methods
notFound() with ID includes ID in message
passed
0.004s
API Error System > ApiError > static factory methods
unauthorized() creates 401 error
passed
0.005s
API Error System > ApiError > static factory methods
forbidden() creates 403 error
passed
0.005s
API Error System > ApiError > static factory methods
adminRequired() creates 403 error
passed
0.002s
API Error System > ApiError > static factory methods
conflict() creates 409 error
passed
0.009s
API Error System > ApiError > static factory methods
duplicate() creates 409 error with resource name
passed
0.007s
API Error System > ApiError > static factory methods
rateLimited() creates 429 error
passed
0.002s
API Error System > ApiError > static factory methods
internal() creates 500 error
passed
0.003s
API Error System > ApiError > static factory methods
database() creates 500 error
passed
0.003s
API Error System > ApiError > static factory methods
insufficientStock() creates 422 error
passed
0.004s
API Error System > ApiError > static factory methods
cartEmpty() creates 422 error
passed
0.021s
API Error System > handleApiError
should handle ApiError instances
passed
0.016s
API Error System > handleApiError
should handle ZodError
passed
0.014s
API Error System > handleApiError
should handle generic errors
passed
0.115s
API Error System > handleApiError
should handle unknown error types
passed
0.078s
API Error System > isApiError
should return true for ApiError instances
passed
0.001s
API Error System > isApiError
should return false for regular errors
passed
0.001s
API Error System > isApiError
should return false for non-errors
passed
0.023s
API Error System > handleValidationError
should throw ApiError with VALIDATION_ERROR code
passed
0.015s
API Error System > handleValidationError
should include field details in error
passed
0.007s
API Error System > validateBody
should return parsed data for valid input
passed
0.005s
API Error System > validateBody
should throw ApiError for invalid input
passed
0.004s
API Error System > validateBody
should throw for missing required fields
passed
0.04s
API Error System > validateBody
should strip unknown fields with strict schema
passed
0.009s
API Error System > validateQuery
should parse URLSearchParams
passed
0.006s
API Error System > validateQuery
should parse plain object
passed
0.002s
API Error System > validateQuery
should handle optional params
passed
0.004s
API Error System > validateQuery
should throw ApiError for invalid query params
passed
0.005s
API Error System > validateParams
should return parsed params for valid input
passed
0.051s
API Error System > validateParams
should throw ApiError for missing params
passed
0.007s
API Error System > validateParams
should throw ApiError for invalid params
passed
0.005s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\hooks\__tests__\useAddresses.test.ts
7.406s
useAddresses
initializes with loading state
passed
0.119s
useAddresses
does not fetch when not authenticated
passed
0.14s
useAddresses
fetches addresses when authenticated
passed
0.194s
useAddresses
handles fetch error gracefully
passed
0.255s
useAddresses
handles non-ok response
passed
0.093s
useAddresses
returns shipping addresses array
passed
0.099s
useAddresses
returns default shipping address
passed
0.137s
useAddresses
returns first shipping address when no default
passed
0.119s
useAddresses
returns billing addresses array
passed
0.21s
useAddresses
returns default billing address
passed
0.192s
useAddresses
returns undefined for missing address types
passed
0.135s
useAddresses
refreshAddresses updates addresses list
passed
0.383s
useAddresses
refreshAddresses handles errors
passed
0.094s
useAddresses
setAddressAsDefault calls API and refreshes
passed
0.067s
useAddresses
re-fetches when authentication changes
passed
0.081s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\admin\monitoring\__tests__\SortableTableHeader.test.tsx
6.987s
SortableTableHeader
renders column label
passed
0.127s
SortableTableHeader
renders as th element
passed
0.138s
SortableTableHeader
calls onSort when clicked
passed
0.195s
SortableTableHeader
shows chevron-down icon when sorting descending and active
passed
0.012s
SortableTableHeader
shows chevron-up icon when sorting ascending and active
passed
0.021s
SortableTableHeader
shows inactive chevron when not the active sort column
passed
0.01s
SortableTableHeader
shows active chevron when is the active sort column
passed
0.009s
SortableTableHeader
sets aria-sort to ascending when active and ascending
passed
0.031s
SortableTableHeader
sets aria-sort to descending when active and descending
passed
0.037s
SortableTableHeader
sets aria-sort to none when not active column
passed
0.016s
SortableTableHeader
applies custom className
passed
0.034s
SortableTableHeader
has cursor-pointer style for clickability
passed
0.03s
SortableTableHeader
passes sortKey to onSort callback
passed
0.109s
SortableTableHeader
renders different labels correctly
passed
0.009s
SortableTableHeader
can handle rapid clicks
passed
0.25s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\hooks\__tests__\useUserProfile.test.ts
5.423s
useUserProfile
initializes with loading state
passed
0.101s
useUserProfile
does not fetch when not authenticated
passed
0.18s
useUserProfile
fetches profile when authenticated
passed
0.169s
useUserProfile
handles fetch error gracefully
passed
0.28s
useUserProfile
handles non-ok response
passed
0.114s
useUserProfile > updateProfile
updates profile successfully
passed
0.121s
useUserProfile > updateProfile
sets savingProfile during update
passed
0.093s
useUserProfile > updateProfile
handles update error from API
passed
0.101s
useUserProfile > updateProfile
handles network error during update
passed
0.075s
useUserProfile > updateProfile
clears previous message before update
passed
0.101s
useUserProfile > setProfileMessage
allows setting custom messages
passed
0.073s
useUserProfile > setProfileMessage
allows clearing messages
passed
0.088s
useUserProfile
re-fetches when authentication changes
passed
0.136s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\Toast\__tests__\Toast.test.tsx
6.711s
ToastProvider
provides toast context to children
passed
0.118s
ToastProvider
adds toast when addToast is called
passed
0.112s
ToastProvider
renders toast with info variant by default
passed
0.101s
ToastProvider
renders toast with success variant
passed
0.041s
ToastProvider
renders toast with warning variant
passed
0.034s
ToastProvider
renders toast with error variant
passed
0.032s
ToastProvider
renders toast with title
passed
0.027s
ToastProvider
removes toast automatically after default duration
passed
0.032s
ToastProvider
respects custom duration
passed
0.046s
ToastProvider
duration 0 defaults to 5000ms (implementation detail)
passed
0.027s
ToastProvider
removes toast when close button is clicked
passed
0.032s
ToastProvider
can display multiple toasts
passed
0.06s
ToastProvider
removes correct toast when multiple are displayed
passed
0.068s
ToastProvider
has proper accessibility attributes
passed
0.037s
ToastProvider
does not render container when no toasts
passed
0.01s
ToastContext without provider
returns undefined when used outside provider
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\admin\monitoring\SnoozeDropdown.test.tsx
9.688s
SnoozeDropdown
renders snooze button
passed
0.193s
SnoozeDropdown
shows Snoozed text when currently snoozed
passed
0.013s
SnoozeDropdown
opens dropdown on click
passed
0.056s
SnoozeDropdown
shows snooze duration options
passed
0.06s
SnoozeDropdown
calls onSnooze with calculated date when option selected
passed
0.074s
SnoozeDropdown
shows unsnooze option when snoozed
passed
0.043s
SnoozeDropdown
calls onSnooze with null when unsnoozed
passed
0.024s
SnoozeDropdown
is disabled when disabled prop is true
passed
0.042s
SnoozeDropdown
shows custom date picker when Custom is selected
passed
0.036s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\admin\monitoring\ErrorCommentsTab.test.tsx
9.587s
ErrorCommentsTab
renders comments tab
passed
0.287s
ErrorCommentsTab
displays comments
passed
0.083s
ErrorCommentsTab
displays comment authors
passed
0.019s
ErrorCommentsTab
shows empty state when no comments
passed
0.052s
ErrorCommentsTab
renders comment input
passed
0.031s
ErrorCommentsTab
disables submit button when input is empty
passed
0.085s
ErrorCommentsTab
enables submit button when input has content
passed
0.058s
ErrorCommentsTab
calls onAddComment when form is submitted
passed
0.028s
ErrorCommentsTab
clears input after successful submit
passed
0.041s
ErrorCommentsTab
shows loading state when isAdding is true
passed
0.063s
ErrorCommentsTab
shows load more button when hasMore is true
passed
0.014s
ErrorCommentsTab
shows total count when provided
passed
0.013s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\core\__tests__\cache.test.ts
6.603s
Cache utility > setCachedSync and getCachedSync
stores and retrieves simple value
passed
0.048s
Cache utility > setCachedSync and getCachedSync
stores and retrieves object value
passed
0.004s
Cache utility > setCachedSync and getCachedSync
stores and retrieves array value
passed
0.002s
Cache utility > setCachedSync and getCachedSync
stores null value
passed
0.002s
Cache utility > setCachedSync and getCachedSync
stores boolean values
passed
0.002s
Cache utility > setCachedSync and getCachedSync
stores number values including zero
passed
0.003s
Cache utility > setCachedSync and getCachedSync
returns null for non-existent key
passed
0.002s
Cache utility > setCachedSync and getCachedSync
overwrites existing value
passed
0.002s
Cache utility > TTL (Time To Live)
uses default TTL of 5 minutes
passed
0.002s
Cache utility > TTL (Time To Live)
accepts custom TTL in milliseconds
passed
0.001s
Cache utility > TTL (Time To Live)
returns null for expired entry
passed
0.137s
Cache utility > TTL (Time To Live)
deletes expired entry on access
passed
0.103s
Cache utility > clearCache
clears specific key
passed
0.002s
Cache utility > clearCache
clears all keys when no key provided
passed
0.006s
Cache utility > clearCache
does nothing for non-existent key
passed
0.002s
Cache utility > getCacheStats
returns empty stats for empty cache
passed
0.003s
Cache utility > getCacheStats
returns correct size
passed
0.002s
Cache utility > getCacheStats
returns all keys
passed
0.003s
Cache utility > cleanupExpiredEntries
returns 0 when no entries expired
passed
0.007s
Cache utility > cleanupExpiredEntries
removes expired entries
passed
0.112s
Cache utility > cleanupExpiredEntries
returns 0 for empty cache
passed
0.005s
Cache utility > Edge cases
handles empty string key
passed
0.002s
Cache utility > Edge cases
handles empty string value
passed
0.002s
Cache utility > Edge cases
handles special characters in key
passed
0.001s
Cache utility > Edge cases
handles large objects
passed
0.003s
Cache utility > Type safety
preserves type information
passed
0.002s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\hooks\__tests__\useProducts.test.ts
5.149s
useProducts > useProducts hook
fetches products on mount
passed
0.227s
useProducts > useProducts hook
handles fetch error
passed
0.179s
useProducts > useProducts hook
handles network error
passed
0.205s
useProducts > useProducts hook
builds query params from filters
passed
0.018s
useProducts > useProducts hook
includes latest filter in query
passed
0.035s
useProducts > useProducts hook
includes bestseller filter in query
passed
0.009s
useProducts > useProducts hook
includes exclude filter in query
passed
0.081s
useProducts > useProducts hook
provides refetch function
passed
0.102s
useProducts > useProducts hook
returns pagination data
passed
0.142s
useProducts > useProducts hook
handles empty products array in response
passed
0.173s
useProducts > useNewArrivals
fetches latest products with default limit
passed
0.013s
useProducts > useNewArrivals
accepts custom limit
passed
0.012s
useProducts > useBestSellers
fetches bestseller products with default limit
passed
0.022s
useProducts > useRandomProducts
fetches random products with exclusion
passed
0.051s
useProducts > useProductsByCategory
fetches products by category
passed
0.016s
useProducts > useProductSearch
fetches products by search term
passed
0.047s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\product\Reviews\__tests__\ReviewCard.test.tsx
7.103s
ReviewCard > Rendering
renders review content correctly
passed
0.409s
ReviewCard > Rendering
renders star rating
passed
0.35s
ReviewCard > Rendering
renders user initial when no image
passed
0.046s
ReviewCard > Rendering
renders user image when provided
passed
0.174s
ReviewCard > Rendering
renders Anonymous for null user name
passed
0.027s
ReviewCard > Helpful actions
shows helpful actions when showActions is true
passed
0.047s
ReviewCard > Helpful actions
hides helpful actions when showActions is false
passed
0.019s
ReviewCard > Helpful actions
calls onHelpful with true when Yes clicked
passed
0.055s
ReviewCard > Helpful actions
calls onHelpful with false when No clicked
passed
0.068s
ReviewCard > Helpful actions
does not call onHelpful when loading
passed
0.03s
ReviewCard > Helpful actions
highlights Yes button when userVote is true
passed
0.061s
ReviewCard > Helpful actions
highlights No button when userVote is false
passed
0.027s
ReviewCard > No comment
does not render comment when null
passed
0.061s
ReviewCardSkeleton
renders loading skeleton
passed
0.029s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\alerts\AlertHistoryTable\__tests__\AlertHistoryTable.test.tsx
5.353s
AlertHistoryTable > empty state
renders empty message when no alerts
passed
0.175s
AlertHistoryTable > rendering table
renders table headers
passed
0.226s
AlertHistoryTable > rendering table
renders alert row
passed
0.022s
AlertHistoryTable > rendering table
renders multiple alerts
passed
0.035s
AlertHistoryTable > severity badges
shows critical badge for critical alerts
passed
0.023s
AlertHistoryTable > severity badges
shows warning badge for warning alerts
passed
0.03s
AlertHistoryTable > metric units
displays ms for response_time
passed
0.091s
AlertHistoryTable > metric units
displays ms for p95_latency
passed
0.023s
AlertHistoryTable > metric units
displays % for error_rate
passed
0.027s
AlertHistoryTable > metric units
displays req/min for throughput
passed
0.019s
AlertHistoryTable > resolution status
shows resolved timestamp for resolved alerts
passed
0.027s
AlertHistoryTable > resolution status
shows acknowledged timestamp for acknowledged alerts
passed
0.041s
AlertHistoryTable > resolution status
shows dash for active alerts
passed
0.018s
AlertHistoryTable > missing config
shows Unknown Config when config is missing
passed
0.036s
AlertHistoryTable > className
applies custom className
passed
0.012s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\Select\__tests__\Select.test.tsx
5.614s
Select > Rendering
renders with label
passed
0.23s
Select > Rendering
renders with visually hidden label
passed
0.028s
Select > Rendering
renders placeholder when no value selected
passed
0.018s
Select > Rendering
renders selected option label
passed
0.016s
Select > Rendering
renders with defaultValue
passed
0.013s
Select > Rendering
renders disabled state
passed
0.051s
Select > Rendering
renders error message
passed
0.066s
Select > Rendering
renders helper text
passed
0.022s
Select > Rendering
renders hidden input with name for form submission
passed
0.015s
Select > ARIA Attributes
has correct ARIA attributes when closed
passed
0.039s
Select > ARIA Attributes
has correct ARIA attributes when open
passed
0.086s
Select > ARIA Attributes
options have correct ARIA attributes
passed
0.055s
Select > Mouse Interaction
opens dropdown on click
passed
0.045s
Select > Mouse Interaction
closes dropdown on second click
passed
0.042s
Select > Mouse Interaction
selects option on click
passed
0.042s
Select > Mouse Interaction
does not select disabled option on click
passed
0.038s
Select > Mouse Interaction
closes on outside click
passed
0.049s
Select > Keyboard Navigation
opens on Enter key
passed
0.042s
Select > Keyboard Navigation
opens on Space key
passed
0.031s
Select > Keyboard Navigation
opens on ArrowDown key
passed
0.031s
Select > Keyboard Navigation
opens on ArrowUp key
passed
0.03s
Select > Keyboard Navigation
closes on Escape key
passed
0.033s
Select > Keyboard Navigation
navigates with ArrowDown key
passed
0.095s
Select > Keyboard Navigation
navigates with ArrowUp key
passed
0.047s
Select > Keyboard Navigation
navigates to first option with Home key
passed
0.059s
Select > Keyboard Navigation
navigates to last option with End key
passed
0.025s
Select > Keyboard Navigation
selects option on Enter key when open
passed
0.07s
Select > Keyboard Navigation
skips disabled options when navigating
passed
0.044s
Select > Keyboard Navigation
closes on Tab key
passed
0.059s
Select > Type-ahead Search
filters options when typing
passed
0.038s
Select > Type-ahead Search
selects matching option when closed
passed
0.034s
Select > Controlled vs Uncontrolled
works as controlled component
passed
0.039s
Select > Controlled vs Uncontrolled
works as uncontrolled component
passed
0.03s
Select > Variants
renders default variant
passed
0.03s
Select > Variants
renders minimal variant
passed
0.021s
Select > Variants
renders header variant
passed
0.015s
Select > Accessibility
announces selection to screen readers
passed
0.039s
Select > Accessibility
supports custom id
passed
0.02s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\Image\__tests__\Image.test.tsx
5.545s
Image Component > Rendering
renders image with correct alt text
passed
0.329s
Image Component > Rendering
renders with correct src
passed
0.035s
Image Component > Rendering
renders container with correct classes
passed
0.021s
Image Component > Loading State
shows skeleton when loading
passed
0.014s
Image Component > Loading State
hides skeleton after image loads
passed
0.045s
Image Component > Loading State
calls onLoadComplete callback
passed
0.049s
Image Component > Error State
shows fallback on error
passed
0.071s
Image Component > Error State
calls onLoadError callback
passed
0.013s
Image Component > Error State
uses default fallback when src is null
passed
0.012s
Image Component > Aspect Ratio
applies square aspect ratio class
passed
0.008s
Image Component > Aspect Ratio
applies 16:9 aspect ratio class
passed
0.008s
Image Component > Aspect Ratio
applies 4:3 aspect ratio class
passed
0.008s
Image Component > Object Fit
applies cover object fit by default
passed
0.008s
Image Component > Object Fit
applies contain object fit
passed
0.008s
Image Component > Placeholder Types
applies blur placeholder
passed
0.008s
Image Component > Placeholder Types
applies skeleton placeholder
passed
0.007s
Image Component > Placeholder Types
no placeholder when set to none
passed
0.008s
Image Component > Dark Mode
has dark mode skeleton classes
passed
0.007s
Image Component > Custom Classes
merges custom className with base classes
passed
0.008s
Image Component > Accessibility
has no accessibility violations
passed
0.257s
Image Component > Accessibility
has proper alt text
passed
0.013s
Image Component > Accessibility
skeleton is hidden from screen readers
passed
0.015s
HeroImage Component
renders hero image
passed
0.014s
HeroImage Component
applies 16:9 aspect ratio by default
passed
0.009s
HeroImage Component
applies 21:9 ultrawide aspect ratio
passed
0.025s
HeroImage Component
uses blur placeholder by default
passed
0.007s
ThumbnailImage Component
renders with default size (80px)
passed
0.008s
ThumbnailImage Component
renders with custom size
passed
0.006s
ThumbnailImage Component
shows skeleton by default
passed
0.007s
CardImage Component
renders with medium size by default (300x300)
passed
0.011s
CardImage Component
renders with small size (200x200)
passed
0.008s
CardImage Component
renders with large size (400x400)
passed
0.008s
CardImage Component
uses blur placeholder by default
passed
0.037s
Console Log
    at console.error (C:\Users\me\Documents\Projects\elite_events_nextjs\jest.setup.ts:20:17)
    at validateProperty (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:3001:19)
    at warnUnknownProperties (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:3146:9)
    at validatePropertiesInDevelopment (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:19868:9)
    at setInitialProperties (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:20491:7)
    at completeWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:12662:18)
    at runWithFiberInDEV (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:874:13)
    at completeUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17777:19)
    at performUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17658:11)
    at workLoopSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17469:41)
    at renderRootSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17450:11)
    at performWorkOnRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:16504:11)
    at performWorkOnRootViaSchedulerTask (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:18957:7)
    at flushActQueue (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:590:34)
    at process.env.NODE_ENV.exports.act (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:884:10)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\act-compat.js:47:25
    at renderRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:190:26)
    at render (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:292:10)
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\Image\__tests__\Image.test.tsx:56:13)
    at Promise.finally.completed (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1557:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1497:10)
    at _callCircusTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1007:40)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at _runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:947:3)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:849:7
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:862:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at run (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:761:3)
    at runAndTransformResultsToJestFormat (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1918:21)
    at jestAdapter (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\runner.js:101:19)
    at runTestInternal (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:275:16)
    at runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:343:7)
    at Object.worker (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:497:12)
React does not recognize the `blurDataURL` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `blurdataurl` instead. If you accidentally passed it from a parent component, remove it from the DOM element.
    at console.error (C:\Users\me\Documents\Projects\elite_events_nextjs\jest.setup.ts:20:17)
    at validateProperty (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:3070:27)
    at warnUnknownProperties (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:3146:9)
    at validatePropertiesInDevelopment (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:19868:9)
    at setInitialProperties (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:20491:7)
    at completeWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:12662:18)
    at runWithFiberInDEV (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:874:13)
    at completeUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17777:19)
    at performUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17658:11)
    at workLoopSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17469:41)
    at renderRootSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17450:11)
    at performWorkOnRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:16504:11)
    at performWorkOnRootViaSchedulerTask (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:18957:7)
    at flushActQueue (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:590:34)
    at process.env.NODE_ENV.exports.act (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:884:10)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\act-compat.js:47:25
    at renderRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:190:26)
    at render (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:292:10)
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\Image\__tests__\Image.test.tsx:419:11)
    at Promise.finally.completed (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1557:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1497:10)
    at _callCircusTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1007:40)
    at _runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:947:3)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:849:7
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:862:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at run (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:761:3)
    at runAndTransformResultsToJestFormat (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1918:21)
    at jestAdapter (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\runner.js:101:19)
    at runTestInternal (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:275:16)
    at runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:343:7)
    at Object.worker (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:497:12)
Received `true` for a non-boolean attribute `priority`.

If you want to write it to the DOM, pass a string instead: priority="true" or priority={value.toString()}.
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\PriceDisplay\__tests__\PriceDisplay.test.tsx
5.594s
PriceDisplay > basic rendering
should render price
passed
0.133s
PriceDisplay > basic rendering
should render discounted price when lower than price
passed
0.011s
PriceDisplay > basic rendering
should show original price with strikethrough when discounted
passed
0.028s
PriceDisplay > basic rendering
should not show discount when discountedPrice equals price
passed
0.009s
PriceDisplay > basic rendering
should not show discount when discountedPrice is higher than price
passed
0.009s
PriceDisplay > sizes
should apply small size styles
passed
0.009s
PriceDisplay > sizes
should apply medium size styles (default)
passed
0.008s
PriceDisplay > sizes
should apply large size styles
passed
0.008s
PriceDisplay > sizes
should apply extra-large size styles
passed
0.01s
PriceDisplay > layout
should apply horizontal layout by default
passed
0.009s
PriceDisplay > layout
should apply vertical layout when specified
passed
0.011s
PriceDisplay > savings badge
should not show savings by default
passed
0.008s
PriceDisplay > savings badge
should show savings badge when showSavings is true
passed
0.013s
PriceDisplay > savings badge
should not show savings badge when no discount
passed
0.008s
PriceDisplay > savings badge
should apply correct styles to savings badge
passed
0.009s
PriceDisplay > percentage badge
should not show percentage by default
passed
0.009s
PriceDisplay > percentage badge
should show percentage badge when showPercentage is true
passed
0.009s
PriceDisplay > percentage badge
should calculate correct percentage
passed
0.011s
PriceDisplay > percentage badge
should round percentage to whole number
passed
0.011s
PriceDisplay > percentage badge
should not show percentage badge when no discount
passed
0.03s
PriceDisplay > percentage badge
should apply correct styles to percentage badge
passed
0.01s
PriceDisplay > both badges
should show both savings and percentage when enabled
passed
0.011s
PriceDisplay > custom className
should apply custom className
passed
0.007s
PriceDisplay > formatting
should format large prices with commas
passed
0.006s
PriceDisplay > formatting
should format very large prices
passed
0.007s
PriceDisplay > formatting
should format whole dollar amounts
passed
0.007s
PriceDisplayCompact
should render with small size
passed
0.009s
PriceDisplayCompact
should show discount when provided
passed
0.01s
PriceDisplayWithSavings
should show savings badge
passed
0.01s
PriceDisplayWithSavings
should accept size prop
passed
0.011s
PriceDisplayWithSavings
should not show savings when no discount
passed
0.007s
PriceDisplayWithPercentage
should show percentage badge
passed
0.012s
PriceDisplayWithPercentage
should accept size prop
passed
0.009s
PriceDisplayWithPercentage
should not show percentage when no discount
passed
0.009s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\ConfirmDialog\__tests__\ConfirmDialog.test.tsx
5.25s
ConfirmDialog > Rendering
renders when isOpen is true
passed
0.265s
ConfirmDialog > Rendering
does not render when isOpen is false
passed
0.009s
ConfirmDialog > Rendering
renders default button text
passed
0.025s
ConfirmDialog > Rendering
renders custom button text
passed
0.017s
ConfirmDialog > Variants
renders info variant by default
passed
0.029s
ConfirmDialog > Variants
renders danger variant
passed
0.037s
ConfirmDialog > Variants
renders warning variant
passed
0.018s
ConfirmDialog > User interactions
calls onConfirm when confirm button is clicked
passed
0.033s
ConfirmDialog > User interactions
calls onCancel when cancel button is clicked
passed
0.016s
ConfirmDialog > User interactions
calls onCancel when clicking outside dialog
passed
0.091s
ConfirmDialog > User interactions
does not call onCancel when clicking inside dialog
passed
0.028s
ConfirmDialog > Keyboard interactions
calls onCancel when Escape key is pressed
passed
0.014s
ConfirmDialog > Keyboard interactions
calls onConfirm when Enter key is pressed (not on button)
passed
0.052s
ConfirmDialog > Keyboard interactions
does not call onConfirm when Enter is pressed on a button
passed
0.015s
ConfirmDialog > Accessibility
has proper ARIA attributes
passed
0.053s
ConfirmDialog > Accessibility
has accessible button labels
passed
0.051s
ConfirmDialog > Accessibility
has accessible button labels with custom text
passed
0.014s
ConfirmDialog > Accessibility
auto-focuses confirm button when opened
passed
0.05s
ConfirmDialog > Focus trap
traps focus within dialog
passed
0.045s
ConfirmDialog > Cleanup
removes event listeners when dialog closes
passed
0.015s
ConfirmDialog > Cleanup
removes event listeners on unmount
passed
0.017s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\dev-ticket\__tests__\ticket-utils.test.ts
5.593s
Dev Ticket Utilities > isValidStatusTransition
returns true for same status (no change)
passed
0.023s
Dev Ticket Utilities > isValidStatusTransition > from OPEN status
allows transition to IN_PROGRESS
passed
0.002s
Dev Ticket Utilities > isValidStatusTransition > from OPEN status
allows transition to BLOCKED
passed
0.005s
Dev Ticket Utilities > isValidStatusTransition > from OPEN status
allows transition to ON_HOLD
passed
0.008s
Dev Ticket Utilities > isValidStatusTransition > from OPEN status
allows transition to CANCELLED
passed
0.001s
Dev Ticket Utilities > isValidStatusTransition > from OPEN status
allows transition to WONT_FIX
passed
0.005s
Dev Ticket Utilities > isValidStatusTransition > from OPEN status
does not allow direct transition to COMPLETED
passed
0.001s
Dev Ticket Utilities > isValidStatusTransition > from OPEN status
does not allow direct transition to IN_REVIEW
passed
0.002s
Dev Ticket Utilities > isValidStatusTransition > from OPEN status
does not allow direct transition to TESTING
passed
0.031s
Dev Ticket Utilities > isValidStatusTransition > from IN_PROGRESS status
allows transition to IN_REVIEW
passed
0.037s
Dev Ticket Utilities > isValidStatusTransition > from IN_PROGRESS status
allows transition to TESTING
passed
0.001s
Dev Ticket Utilities > isValidStatusTransition > from IN_PROGRESS status
allows transition to COMPLETED
passed
0.001s
Dev Ticket Utilities > isValidStatusTransition > from IN_PROGRESS status
allows transition to BLOCKED
passed
0.005s
Dev Ticket Utilities > isValidStatusTransition > from IN_PROGRESS status
allows transition back to OPEN
passed
0.012s
Dev Ticket Utilities > isValidStatusTransition > from COMPLETED status
allows reopening to IN_PROGRESS
passed
0.001s
Dev Ticket Utilities > isValidStatusTransition > from COMPLETED status
allows reopening to IN_REVIEW
passed
0.001s
Dev Ticket Utilities > isValidStatusTransition > from COMPLETED status
does not allow direct transition to OPEN
passed
0.002s
Dev Ticket Utilities > isValidStatusTransition > from CANCELLED status
allows reopening to OPEN
passed
0.001s
Dev Ticket Utilities > isValidStatusTransition > from CANCELLED status
does not allow transition to IN_PROGRESS
passed
0.001s
Dev Ticket Utilities > isValidStatusTransition > from WONT_FIX status
allows reopening to OPEN
passed
0.001s
Dev Ticket Utilities > isValidStatusTransition > from WONT_FIX status
does not allow transition to IN_PROGRESS
passed
0.001s
Dev Ticket Utilities > isValidStatusTransition > from BLOCKED status
allows transition to OPEN
passed
0.001s
Dev Ticket Utilities > isValidStatusTransition > from BLOCKED status
allows transition to IN_PROGRESS
passed
0.002s
Dev Ticket Utilities > isValidStatusTransition > from BLOCKED status
allows transition to ON_HOLD
passed
0.002s
Dev Ticket Utilities > isValidStatusTransition > from BLOCKED status
does not allow direct transition to COMPLETED
passed
0.002s
Dev Ticket Utilities > getValidNextStatuses
returns valid transitions from OPEN
passed
0.005s
Dev Ticket Utilities > getValidNextStatuses
returns valid transitions from IN_PROGRESS
passed
0.027s
Dev Ticket Utilities > getValidNextStatuses
returns valid transitions from COMPLETED
passed
0.002s
Dev Ticket Utilities > getValidNextStatuses
returns valid transitions from CANCELLED
passed
0.003s
Dev Ticket Utilities > isValidParentChildCategory > EPIC category
EPIC can only be root level (null parent)
passed
0.001s
Dev Ticket Utilities > isValidParentChildCategory > EPIC category
EPIC cannot be under another EPIC
passed
0.001s
Dev Ticket Utilities > isValidParentChildCategory > EPIC category
EPIC cannot be under PHASE
passed
0.002s
Dev Ticket Utilities > isValidParentChildCategory > EPIC category
EPIC cannot be under STORY
passed
0.003s
Dev Ticket Utilities > isValidParentChildCategory > EPIC category
EPIC cannot be under TASK
passed
0.001s
Dev Ticket Utilities > isValidParentChildCategory > PHASE category
PHASE can be under EPIC
passed
0.001s
Dev Ticket Utilities > isValidParentChildCategory > PHASE category
PHASE cannot be root level
passed
0.001s
Dev Ticket Utilities > isValidParentChildCategory > PHASE category
PHASE cannot be under another PHASE
passed
0.001s
Dev Ticket Utilities > isValidParentChildCategory > PHASE category
PHASE cannot be under STORY
passed
0.001s
Dev Ticket Utilities > isValidParentChildCategory > STORY category
STORY can be under EPIC
passed
0.002s
Dev Ticket Utilities > isValidParentChildCategory > STORY category
STORY can be under PHASE
passed
0.002s
Dev Ticket Utilities > isValidParentChildCategory > STORY category
STORY cannot be root level
passed
0.004s
Dev Ticket Utilities > isValidParentChildCategory > STORY category
STORY cannot be under another STORY
passed
0.002s
Dev Ticket Utilities > isValidParentChildCategory > STORY category
STORY cannot be under TASK
passed
0.002s
Dev Ticket Utilities > isValidParentChildCategory > TASK category
TASK can be under PHASE
passed
0.001s
Dev Ticket Utilities > isValidParentChildCategory > TASK category
TASK can be under STORY
passed
0.002s
Dev Ticket Utilities > isValidParentChildCategory > TASK category
TASK cannot be root level
passed
0.002s
Dev Ticket Utilities > isValidParentChildCategory > TASK category
TASK cannot be under EPIC directly
passed
0.001s
Dev Ticket Utilities > isValidParentChildCategory > TASK category
TASK cannot be under another TASK
passed
0.001s
Dev Ticket Utilities > isValidParentChildCategory > SUBTASK category
SUBTASK can only be under TASK
passed
0.002s
Dev Ticket Utilities > isValidParentChildCategory > SUBTASK category
SUBTASK cannot be root level
passed
0.003s
Dev Ticket Utilities > isValidParentChildCategory > SUBTASK category
SUBTASK cannot be under EPIC
passed
0.002s
Dev Ticket Utilities > isValidParentChildCategory > SUBTASK category
SUBTASK cannot be under PHASE
passed
0.01s
Dev Ticket Utilities > isValidParentChildCategory > SUBTASK category
SUBTASK cannot be under STORY
passed
0.002s
Dev Ticket Utilities > isValidParentChildCategory > SUBTASK category
SUBTASK cannot be under another SUBTASK
passed
0.002s
Dev Ticket Utilities > buildTicketWhereClause
returns empty where clause for empty filters
passed
0.046s
Dev Ticket Utilities > buildTicketWhereClause > status filter
handles single status filter
passed
0.002s
Dev Ticket Utilities > buildTicketWhereClause > status filter
handles array of statuses
passed
0.002s
Dev Ticket Utilities > buildTicketWhereClause > type filter
handles single type filter
passed
0.002s
Dev Ticket Utilities > buildTicketWhereClause > type filter
handles array of types
passed
0.002s
Dev Ticket Utilities > buildTicketWhereClause > priority filter
handles single priority filter
passed
0.002s
Dev Ticket Utilities > buildTicketWhereClause > priority filter
handles array of priorities
passed
0.007s
Dev Ticket Utilities > buildTicketWhereClause > severity filter
handles single severity filter
passed
0.002s
Dev Ticket Utilities > buildTicketWhereClause > severity filter
handles array of severities
passed
0.002s
Dev Ticket Utilities > buildTicketWhereClause > category filter
handles single category filter
passed
0.002s
Dev Ticket Utilities > buildTicketWhereClause > category filter
handles array of categories
passed
0.002s
Dev Ticket Utilities > buildTicketWhereClause > parent filter
handles root level filter
passed
0.002s
Dev Ticket Utilities > buildTicketWhereClause > parent filter
handles specific parent filter
passed
0.001s
Dev Ticket Utilities > buildTicketWhereClause > assignee filter
handles unassigned filter
passed
0.001s
Dev Ticket Utilities > buildTicketWhereClause > assignee filter
handles specific assignee filter
passed
0.001s
Dev Ticket Utilities > buildTicketWhereClause > project filter
handles project filter
passed
0.007s
Dev Ticket Utilities > buildTicketWhereClause > sprint filter
handles sprint filter
passed
0.002s
Dev Ticket Utilities > buildTicketWhereClause > milestone filter
handles milestone filter
passed
0.002s
Dev Ticket Utilities > buildTicketWhereClause > reporter filter
handles reporter filter
passed
0.003s
Dev Ticket Utilities > buildTicketWhereClause > label filter
handles single label filter
passed
0.002s
Dev Ticket Utilities > buildTicketWhereClause > label filter
handles array of labels filter
passed
0.001s
Dev Ticket Utilities > buildTicketWhereClause > search filter
searches in title, description, and ticketNumber
passed
0.002s
Dev Ticket Utilities > buildTicketWhereClause > date filters
handles createdAfter filter
passed
0.008s
Dev Ticket Utilities > buildTicketWhereClause > date filters
handles createdBefore filter
passed
0.002s
Dev Ticket Utilities > buildTicketWhereClause > date filters
handles both created date filters
passed
0.001s
Dev Ticket Utilities > buildTicketWhereClause > date filters
handles dueAfter filter
passed
0.001s
Dev Ticket Utilities > buildTicketWhereClause > date filters
handles dueBefore filter
passed
0.002s
Dev Ticket Utilities > buildTicketWhereClause > soft delete filters
excludes deleted tickets by default
passed
0.002s
Dev Ticket Utilities > buildTicketWhereClause > soft delete filters
includes deleted tickets when includeDeleted is true
passed
0.002s
Dev Ticket Utilities > buildTicketWhereClause > soft delete filters
shows only deleted tickets when onlyDeleted is true
passed
0.002s
Dev Ticket Utilities > buildTicketWhereClause > hierarchy level filter
handles hierarchy level filter
passed
0.001s
Dev Ticket Utilities > buildTicketWhereClause > combined filters
handles multiple filters together
passed
0.003s
Dev Ticket Utilities > buildTicketOrderByClause
defaults to createdAt desc when no sort provided
passed
0.003s
Dev Ticket Utilities > buildTicketOrderByClause
defaults to desc direction when not specified
passed
0.001s
Dev Ticket Utilities > buildTicketOrderByClause > sort fields
handles createdAt sort
passed
0.001s
Dev Ticket Utilities > buildTicketOrderByClause > sort fields
handles updatedAt sort
passed
0.001s
Dev Ticket Utilities > buildTicketOrderByClause > sort fields
handles priority sort
passed
0.002s
Dev Ticket Utilities > buildTicketOrderByClause > sort fields
handles status sort
passed
0.002s
Dev Ticket Utilities > buildTicketOrderByClause > sort fields
handles dueDate sort
passed
0.002s
Dev Ticket Utilities > buildTicketOrderByClause > sort fields
handles title sort
passed
0.001s
Dev Ticket Utilities > buildTicketOrderByClause > sort fields
handles ticketNumber sort
passed
0.002s
Dev Ticket Utilities > buildTicketOrderByClause > sort fields
handles category sort
passed
0.001s
Dev Ticket Utilities > buildTicketOrderByClause > sort fields
handles hierarchyLevel sort
passed
0.001s
Dev Ticket Utilities > buildTicketOrderByClause > sort directions
handles ascending sort
passed
0.001s
Dev Ticket Utilities > buildTicketOrderByClause > sort directions
handles descending sort
passed
0.03s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\Badge\__tests__\Badge.test.tsx
5.534s
Badge > rendering
should render children content
passed
0.137s
Badge > rendering
should render as a span element
passed
0.011s
Badge > variants
should apply default variant styles
passed
0.009s
Badge > variants
should apply primary variant styles
passed
0.019s
Badge > variants
should apply secondary variant styles
passed
0.009s
Badge > variants
should apply success variant styles
passed
0.01s
Badge > variants
should apply warning variant styles
passed
0.009s
Badge > variants
should apply error variant styles
passed
0.007s
Badge > variants
should apply discount variant styles
passed
0.008s
Badge > variants
should apply new variant styles
passed
0.009s
Badge > variants
should apply featured variant styles
passed
0.012s
Badge > sizes
should apply small size styles
passed
0.007s
Badge > sizes
should apply medium size styles (default)
passed
0.01s
Badge > sizes
should apply large size styles
passed
0.008s
Badge > dot indicator
should not render dot by default
passed
0.024s
Badge > dot indicator
should render dot when dot prop is true
passed
0.008s
Badge > dot indicator
should apply correct dot color for variant
passed
0.008s
Badge > dot indicator
should apply error dot color
passed
0.006s
Badge > pill shape
should apply rounded corners by default
passed
0.009s
Badge > pill shape
should apply pill shape when pill prop is true
passed
0.007s
Badge > custom className
should apply custom className
passed
0.008s
Badge > custom className
should merge custom className with default classes
passed
0.023s
Badge > ref forwarding
should forward ref to span element
passed
0.008s
Badge > additional props
should pass through additional props
passed
0.008s
DiscountBadge
should render with discount variant
passed
0.011s
DiscountBadge
should render percentage when provided
passed
0.029s
DiscountBadge
should render children over percentage
passed
0.008s
DiscountBadge
should render 'Sale' when no percentage or children
passed
0.009s
DiscountBadge
should forward ref
passed
0.006s
NewBadge
should render 'New' text
passed
0.008s
NewBadge
should use new variant styles
passed
0.009s
NewBadge
should accept size prop
passed
0.007s
NewBadge
should accept pill prop
passed
0.008s
NewBadge
should forward ref
passed
0.006s
FeaturedBadge
should render 'Featured' text
passed
0.005s
FeaturedBadge
should use featured variant styles
passed
0.011s
FeaturedBadge
should accept size prop
passed
0.006s
FeaturedBadge
should forward ref
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\admin\monitoring\PrioritySelector.test.tsx
9.929s
PrioritySelector
renders selector
passed
0.142s
PrioritySelector
displays current value
passed
0.029s
PrioritySelector
renders label when provided
passed
0.054s
PrioritySelector
calls onChange when selection changes
passed
0.047s
PrioritySelector
contains all priority options
passed
0.034s
PrioritySelector
is disabled when disabled prop is true
passed
0.026s
PrioritySelector
applies custom className
passed
0.01s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\alerts\ActiveAlertsList\__tests__\ActiveAlertsList.test.tsx
5.903s
ActiveAlertsList > empty state
renders all clear message when no alerts
passed
0.123s
ActiveAlertsList > rendering alerts
renders alert list with alerts
passed
0.071s
ActiveAlertsList > rendering alerts
displays alert value and threshold
passed
0.043s
ActiveAlertsList > rendering alerts
displays scope
passed
0.057s
ActiveAlertsList > rendering alerts
renders multiple alerts
passed
0.06s
ActiveAlertsList > severity styling
applies critical styling for critical alerts
passed
0.056s
ActiveAlertsList > severity styling
applies warning styling for warning alerts
passed
0.013s
ActiveAlertsList > actions
shows acknowledge and resolve buttons for active alerts
passed
0.057s
ActiveAlertsList > actions
shows only resolve button for acknowledged alerts
passed
0.017s
ActiveAlertsList > actions
calls onAcknowledge when acknowledge button is clicked
passed
0.151s
ActiveAlertsList > actions
calls onResolve when resolve button is clicked
passed
0.041s
ActiveAlertsList > actions
disables buttons while action is in progress
passed
0.037s
ActiveAlertsList > metric units
displays ms unit for response_time
passed
0.018s
ActiveAlertsList > metric units
displays ms unit for p95_latency
passed
0.016s
ActiveAlertsList > metric units
displays % unit for error_rate
passed
0.03s
ActiveAlertsList > metric units
displays req/min unit for throughput
passed
0.027s
ActiveAlertsList > className
applies custom className
passed
0.039s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\loyalty\__tests__\tiers.test.ts
5.57s
Loyalty Tiers > getActiveTiers
returns tiers from active program
passed
0.012s
Loyalty Tiers > getActiveTiers
returns empty array when no active program
passed
0.007s
Loyalty Tiers > getActiveTiers
returns empty array when program has no tiers
passed
0.013s
Loyalty Tiers > calculateCurrentTier
returns null when no loyalty record
passed
0.002s
Loyalty Tiers > calculateCurrentTier
returns Bronze tier for 0 points
passed
0.029s
Loyalty Tiers > calculateCurrentTier
returns Silver tier for 1000 points
passed
0.003s
Loyalty Tiers > calculateCurrentTier
returns Gold tier for 5000+ points
passed
0.002s
Loyalty Tiers > calculateCurrentTier
returns highest qualifying tier
passed
0.002s
Loyalty Tiers > calculateCurrentTier
returns null when no tiers available
passed
0.007s
Loyalty Tiers > getTierStatus
returns empty status when no loyalty record
passed
0.003s
Loyalty Tiers > getTierStatus
returns status for Bronze tier user
passed
0.004s
Loyalty Tiers > getTierStatus
returns status for Silver tier user
passed
0.008s
Loyalty Tiers > getTierStatus
returns status for Gold tier user (highest tier)
passed
0.003s
Loyalty Tiers > getTierStatus
calculates progress correctly near tier threshold
passed
0.002s
Loyalty Tiers > getTierStatus
returns 0 progress for new user
passed
0.003s
Loyalty Tiers > checkTierUpgrade
returns no upgrade when no loyalty record
passed
0.003s
Loyalty Tiers > checkTierUpgrade
upgrades from Bronze to Silver
passed
0.007s
Loyalty Tiers > checkTierUpgrade
upgrades from Silver to Gold
passed
0.003s
Loyalty Tiers > checkTierUpgrade
does not upgrade when already at correct tier
passed
0.003s
Loyalty Tiers > checkTierUpgrade
upgrades from null tier to Bronze
passed
0.003s
Loyalty Tiers > checkTierUpgrade
skips multiple tiers if points allow
passed
0.019s
Loyalty Tiers > checkTierUpgrade
does not downgrade tiers
passed
0.002s
Loyalty Tiers > getTierPerks
returns perks for a tier
passed
0.002s
Loyalty Tiers > getTierPerks
returns empty object when tier not found
passed
0.002s
Loyalty Tiers > getTierPerks
returns empty object when tier has no perks
passed
0.001s
Loyalty Tiers > hasTierPerk
returns true when user has the perk
passed
0.002s
Loyalty Tiers > hasTierPerk
returns false when user does not have the perk
passed
0.002s
Loyalty Tiers > hasTierPerk
returns false when no current tier
passed
0.002s
Loyalty Tiers > hasTierPerk
returns false when tier has no perks
passed
0.004s
Loyalty Tiers > getUsersInTier
returns user IDs in a tier
passed
0.004s
Loyalty Tiers > getUsersInTier
returns empty array when no users in tier
passed
0.005s
Loyalty Tiers > getTierDistribution
returns distribution of users across tiers
passed
0.002s
Loyalty Tiers > getTierDistribution
excludes 'No Tier' when count is 0
passed
0.03s
Loyalty Tiers > getTierDistribution
returns empty array when no tiers
passed
0.003s
Loyalty Tiers > Error handling
handles database errors in calculateCurrentTier
passed
0.14s
Loyalty Tiers > Error handling
handles database errors in checkTierUpgrade
passed
0.004s
Loyalty Tiers > Error handling
handles database errors in getTierStatus
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\workflows\__tests__\route.test.ts
4.666s
GET /api/admin/workflows > Authentication & Authorization
returns 401 when not authenticated
passed
0.016s
GET /api/admin/workflows > Authentication & Authorization
returns 403 when user is not admin
passed
0.005s
GET /api/admin/workflows > Successful retrieval
returns paginated workflows for admin
passed
0.029s
GET /api/admin/workflows > Successful retrieval
includes stats when requested
passed
0.015s
GET /api/admin/workflows > Successful retrieval
filters by trigger type
passed
0.019s
GET /api/admin/workflows > Successful retrieval
filters by active status
passed
0.004s
GET /api/admin/workflows > Successful retrieval
handles pagination correctly
passed
0.003s
GET /api/admin/workflows > Error handling
returns 500 on database error
passed
0.096s
POST /api/admin/workflows > Authentication & Authorization
returns 401 when not authenticated
passed
0.009s
POST /api/admin/workflows > Authentication & Authorization
returns 403 when not admin
passed
0.003s
POST /api/admin/workflows > Validation
returns 400 for missing required fields
passed
0.01s
POST /api/admin/workflows > Validation
returns 400 for invalid trigger type
passed
0.025s
POST /api/admin/workflows > Validation
returns 400 for empty workflow name
passed
0.007s
POST /api/admin/workflows > Successful creation
creates workflow successfully
passed
0.005s
POST /api/admin/workflows > Successful creation
creates workflow with all trigger types
passed
0.032s
POST /api/admin/workflows > Successful creation
creates draft workflow by default
passed
0.004s
POST /api/admin/workflows > Error handling
returns 500 on database error
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\users\__tests__\route.test.ts
5.443s
GET /api/admin/users > Authentication & Authorization
requires authentication
passed
0.014s
GET /api/admin/users > Authentication & Authorization
requires admin role
passed
0.004s
GET /api/admin/users > Authentication & Authorization
allows admin access
passed
0.006s
GET /api/admin/users > User listing
returns paginated users with default settings
passed
0.007s
GET /api/admin/users > User listing
handles custom pagination parameters
passed
0.006s
GET /api/admin/users > User listing
includes user counts for orders, reviews, and addresses
passed
0.005s
GET /api/admin/users > User listing
does not expose sensitive fields like password
passed
0.004s
GET /api/admin/users > Filtering
filters users by role
passed
0.024s
GET /api/admin/users > Filtering
filters users by admin role
passed
0.003s
GET /api/admin/users > Filtering
searches users by email
passed
0.004s
GET /api/admin/users > Filtering
searches users by name
passed
0.011s
GET /api/admin/users > Filtering
combines role and search filters
passed
0.005s
GET /api/admin/users > Sorting
sorts by createdAt descending by default
passed
0.004s
GET /api/admin/users > Sorting
sorts by custom field ascending
passed
0.011s
GET /api/admin/users > Sorting
sorts by name descending
passed
0.005s
GET /api/admin/users > Edge cases
handles empty user list
passed
0.003s
GET /api/admin/users > Edge cases
handles large page numbers gracefully
passed
0.003s
GET /api/admin/users > Edge cases
handles users with locked accounts
passed
0.012s
GET /api/admin/users > Edge cases
handles users with unverified emails
passed
0.018s
GET /api/admin/users > Error handling
returns 500 on database error during user fetch
passed
0.132s
GET /api/admin/users > Error handling
returns 500 on database error during count
passed
0.005s
GET /api/admin/users > Error handling
handles unexpected errors gracefully
passed
0.064s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\admin\monitoring\ErrorHistoryTab.test.tsx
6.261s
ErrorHistoryTab
renders history tab
passed
0.15s
ErrorHistoryTab
displays history entries
passed
0.071s
ErrorHistoryTab
displays user email for each entry
passed
0.053s
ErrorHistoryTab
shows action labels
passed
0.078s
ErrorHistoryTab
shows new values when present
passed
0.024s
ErrorHistoryTab
shows empty state when no history
passed
0.045s
ErrorHistoryTab
handles SNOOZED action with date formatting
passed
0.014s
ErrorHistoryTab
handles STATUS_CHANGED action
passed
0.047s
ErrorHistoryTab
handles COMMENTED action
passed
0.015s
ErrorHistoryTab
handles REOPENED action
passed
0.031s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\loyalty\__tests__\points.test.ts
5.023s
Loyalty Points > calculatePointsForPurchase
calculates base points without program
passed
0.011s
Loyalty Points > calculatePointsForPurchase
calculates base points with program
passed
0.004s
Loyalty Points > calculatePointsForPurchase
applies tier multiplier correctly
passed
0.004s
Loyalty Points > calculatePointsForPurchase
applies bonus rules correctly - active rule adds bonus points
passed
0.003s
Loyalty Points > calculatePointsForPurchase
applies multiple bonus rules correctly
passed
0.004s
Loyalty Points > calculatePointsForPurchase
skips inactive bonus rules
passed
0.006s
Loyalty Points > calculatePointsForPurchase
rounds down fractional points
passed
0.003s
Loyalty Points > earnPoints
creates loyalty record if not exists
passed
0.015s
Loyalty Points > earnPoints
awards points and creates transaction
passed
0.004s
Loyalty Points > earnPoints
uses default description if not provided
passed
0.004s
Loyalty Points > expirePoints
returns 0 when no loyalty record exists
passed
0.003s
Loyalty Points > expirePoints
returns 0 when no expired transactions
passed
0.002s
Loyalty Points > expirePoints
expires points and creates expiration transactions
passed
0.004s
Loyalty Points > adjustPoints
creates loyalty record if not exists
passed
0.004s
Loyalty Points > adjustPoints
adjusts points positively
passed
0.003s
Loyalty Points > adjustPoints
adjusts points negatively
passed
0.003s
Loyalty Points > adjustPoints
adjusts lifetime points when specified
passed
0.003s
Loyalty Points > adjustPoints
does not adjust lifetime for negative adjustments
passed
0.003s
Loyalty Points > getPointsValue
returns value based on program redemption rate
passed
0.002s
Loyalty Points > getPointsValue
uses default rate when no program exists
passed
0.003s
Loyalty Points > getPointsValue
rounds to 2 decimal places
passed
0.003s
Loyalty Points > getPointsValue
handles zero points
passed
0.004s
Loyalty Points > Error handling
handles database errors in calculatePointsForPurchase
passed
0.08s
Loyalty Points > Error handling
handles database errors in earnPoints
passed
0.011s
Loyalty Points > Error handling
handles database errors in expirePoints
passed
0.006s
Loyalty Points > Error handling
handles database errors in adjustPoints
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\security\__tests__\rate-limit.test.ts
5.04s
Rate Limit utility > checkRateLimit
allows first request
passed
0.008s
Rate Limit utility > checkRateLimit
allows requests under limit
passed
0.005s
Rate Limit utility > checkRateLimit
allows exactly at limit
passed
0.005s
Rate Limit utility > checkRateLimit
rejects after exceeding limit
passed
0.003s
Rate Limit utility > checkRateLimit
uses default values when not specified
passed
0.013s
Rate Limit utility > checkRateLimit
resets after window expires
passed
0.116s
Rate Limit utility > checkRateLimit
tracks different identifiers separately
passed
0.002s
Rate Limit utility > checkRateLimit
increments count on each request
passed
0.002s
Rate Limit utility > getRateLimitInfo
returns full limit for new identifier
passed
0.002s
Rate Limit utility > getRateLimitInfo
returns correct remaining count
passed
0.001s
Rate Limit utility > getRateLimitInfo
returns 0 remaining when exhausted
passed
0.002s
Rate Limit utility > getRateLimitInfo
includes reset time as ISO string
passed
0.002s
Rate Limit utility > getRateLimitInfo
includes retryAfter when rate limited
passed
0.002s
Rate Limit utility > getRateLimitInfo
returns null retryAfter when not rate limited
passed
0.001s
Rate Limit utility > getRateLimitInfo
returns full remaining after window expires
passed
0.111s
Rate Limit utility > clearRateLimit
clears rate limit for identifier
passed
0.003s
Rate Limit utility > clearRateLimit
does not affect other identifiers
passed
0.008s
Rate Limit utility > cleanupExpiredEntries
returns 0 when no entries expired
passed
0.009s
Rate Limit utility > cleanupExpiredEntries
removes expired entries
passed
0.153s
Rate Limit utility > rateLimitPresets
has signup preset (strict)
passed
0.005s
Rate Limit utility > rateLimitPresets
has moderate preset
passed
0.002s
Rate Limit utility > rateLimitPresets
has standard preset
passed
0.002s
Rate Limit utility > rateLimitPresets
has generous preset
passed
0.002s
Rate Limit utility > rateLimitPresets
presets work with checkRateLimit
passed
0.009s
Rate Limit utility > Edge cases
handles limit of 1
passed
0.027s
Rate Limit utility > Edge cases
handles limit of 0 (always rate limited)
passed
0.002s
Rate Limit utility > Edge cases
handles very short window
passed
0.091s
Rate Limit utility > Edge cases
handles special characters in identifier
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\SLOCard\__tests__\SLOCard.test.tsx
4.901s
SLOCard > rendering
renders the component
passed
0.12s
SLOCard > rendering
displays SLO name
passed
0.017s
SLOCard > rendering
displays current value
passed
0.086s
SLOCard > rendering
displays target value
passed
0.014s
SLOCard > rendering
displays window
passed
0.029s
SLOCard > rendering
displays status badge
passed
0.092s
SLOCard > rendering
displays error budget remaining
passed
0.011s
SLOCard > status colors
applies green styling for healthy status
passed
0.044s
SLOCard > status colors
applies yellow styling for warning status
passed
0.028s
SLOCard > status colors
applies red styling for critical status
passed
0.009s
SLOCard > sparkline
does not render sparkline when no data provided
passed
0.01s
SLOCard > sparkline
renders sparkline when data provided
passed
0.05s
SLOCard > sparkline
renders sparklines components when data provided
passed
0.012s
SLOCard > trend indicator
does not render trend indicator when not provided
passed
0.061s
SLOCard > trend indicator
renders trend indicator when provided
passed
0.011s
SLOCard > trend indicator
displays positive change for upward trend
passed
0.011s
SLOCard > trend indicator
displays negative change for downward trend
passed
0.022s
SLOCard > trend indicator
displays change without plus for stable trend
passed
0.013s
SLOCard > history link
does not render history link when not provided
passed
0.014s
SLOCard > history link
renders history link when provided
passed
0.027s
SLOCard > error budget warning
applies red styling when budget is low (over 80% consumed)
passed
0.012s
SLOCard > error budget warning
applies normal styling when budget is healthy
passed
0.021s
SLOCard > progress bar
renders progress bar with correct role
passed
0.205s
SLOCard > progress bar
sets aria values correctly
passed
0.027s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\hooks\__tests__\useProductActions.test.tsx
6.521s
useProductActions > addToCart
should dispatch addItemToCart action
passed
0.153s
useProductActions > addToCart
should add item with default quantity of 1
passed
0.058s
useProductActions > addToCart
should add item with custom quantity
passed
0.016s
useProductActions > addToCart
should track addToCart event
passed
0.062s
useProductActions > addToCart
should show success toast
passed
0.063s
useProductActions > addToWishlist
should dispatch addItemToWishlist action
passed
0.113s
useProductActions > addToWishlist
should track addToWishlist event
passed
0.06s
useProductActions > addToWishlist
should show success toast
passed
0.09s
useProductActions > showQuickView
should dispatch updateQuickView action
passed
0.024s
useProductActions > showQuickView
should open modal
passed
0.025s
useProductActions > viewDetails
should dispatch updateProductDetails action
passed
0.077s
useProductActions > viewDetails
should track productView event
passed
0.013s
useProductActions > addToCompare
should show info toast for upcoming feature
passed
0.018s
useProductActions > Function stability
should return stable function references for non-tracking functions
passed
0.052s
useProductActionsWithoutToast
should add to cart without showing toast
passed
0.029s
useProductActionsWithoutToast
should add to wishlist without showing toast
passed
0.046s
useProductActionsWithoutToast
should still track events
passed
0.011s
useProductActionsWithoutToast
should show quick view and open modal
passed
0.008s
useProductActionsWithoutToast
should view details and track event
passed
0.007s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\hooks\__tests__\useSupport.test.tsx
6.079s
usePolling
calls callback at specified interval
passed
0.054s
usePolling
does not call callback when disabled
passed
0.009s
usePolling
cleans up interval on unmount
passed
0.012s
usePolling
returns manual trigger function
passed
0.011s
usePolling
uses updated callback when changed
passed
0.012s
usePolling
stops polling when enabled becomes false
passed
0.011s
useCreateTicket
creates ticket successfully
passed
0.016s
useCreateTicket
handles error on ticket creation
passed
0.13s
useCreateTicket
resets state
passed
0.008s
useSendTicketMessage
sends message successfully
passed
0.009s
useSendTicketMessage
handles error when sending message
passed
0.007s
useSendTicketMessage
sends internal message
passed
0.015s
useUpdateTicket
updates ticket successfully
passed
0.007s
useUpdateTicket
handles update error
passed
0.007s
useBulkTicketActions
performs bulk update successfully
passed
0.008s
useBulkTicketActions
handles bulk update error
passed
0.012s
useArticleVote
submits helpful vote
passed
0.007s
useArticleVote
submits not helpful vote
passed
0.005s
useArticleVote
handles vote error
passed
0.007s
useTicketSurvey
submits survey successfully
passed
0.008s
useTicketSurvey
submits survey with just rating
passed
0.007s
useTicketSurvey
handles survey submission error
passed
0.007s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\monitoring\__tests__\trackedQuery.test.ts
3.999s
trackedQuery > basic functionality
executes query function and returns result
passed
0.01s
trackedQuery > basic functionality
records database metric for successful query
passed
0.008s
trackedQuery > basic functionality
calculates row count for array results
passed
0.003s
trackedQuery > basic functionality
does not calculate row count for non-array results
passed
0.003s
trackedQuery > duration tracking
measures query duration
passed
0.088s
trackedQuery > slow query warnings
logs warning for queries exceeding threshold
passed
0.003s
trackedQuery > slow query warnings
uses custom warn threshold when provided
passed
0.002s
trackedQuery > slow query warnings
does not warn for fast queries
passed
0.002s
trackedQuery > log levels
logs debug for all queries when logLevel is "always"
passed
0.002s
trackedQuery > log levels
does not log for successful fast queries when logLevel is "slow"
passed
0.002s
trackedQuery > log levels
does not log anything when logLevel is "never"
passed
0.002s
trackedQuery > error handling
records failed metric on query error
passed
0.053s
trackedQuery > error handling
logs error on query failure
passed
0.004s
trackedQuery > error handling
preserves original error when rethrowing
passed
0.019s
trackedQuery > error handling
handles non-Error objects in rejection
passed
0.002s
trackedQuery > options
accepts explicit operation type
passed
0.002s
trackedQuery > options
accepts explicit table name
passed
0.002s
trackedQuery > options
includes requestId when provided
passed
0.002s
trackedQuery > options
includes userId when provided
passed
0.002s
trackedQuery > options
disables row count when includeRowCount is false
passed
0.002s
trackedQueryWithMetrics
returns data along with metrics
passed
0.002s
trackedQueryWithMetrics
returns undefined rowCount for non-array results
passed
0.001s
trackedQueryWithMetrics
records metric just like trackedQuery
passed
0.001s
trackedQueryWithMetrics
throws and logs error on failure
passed
0.003s
createQueryTracker
creates a tracker function with context
passed
0.014s
createQueryTracker
uses context warnThreshold by default
passed
0.002s
createQueryTracker
allows override of warnThreshold per query
passed
0.002s
createQueryTracker
tracks multiple queries with same context
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\Checkbox\__tests__\Checkbox.test.tsx
5.946s
Checkbox > Rendering
renders checkbox input
passed
0.657s
Checkbox > Rendering
renders with label
passed
0.025s
Checkbox > Rendering
renders unchecked by default
passed
0.042s
Checkbox > Rendering
renders checked when checked prop is true
passed
0.036s
Checkbox > Rendering
renders with helper text
passed
0.012s
Checkbox > Rendering
renders with error message
passed
0.019s
Checkbox > Rendering
shows error message instead of helper text when both provided
passed
0.012s
Checkbox > Sizes
renders small size
passed
0.021s
Checkbox > Sizes
renders medium size (default)
passed
0.023s
Checkbox > Sizes
renders large size
passed
0.017s
Checkbox > Sizes
applies correct label size for sm
passed
0.019s
Checkbox > Sizes
applies correct label size for lg
passed
0.008s
Checkbox > States
applies default state border
passed
0.014s
Checkbox > States
applies success state border
passed
0.017s
Checkbox > States
applies error state border
passed
0.014s
Checkbox > States
applies warning state border
passed
0.042s
Checkbox > States
applies error state when error prop is provided
passed
0.016s
Checkbox > States
error prop overrides state prop
passed
0.027s
Checkbox > Disabled state
renders as disabled
passed
0.014s
Checkbox > Disabled state
applies disabled styling
passed
0.016s
Checkbox > Disabled state
applies disabled cursor to label container
passed
0.008s
Checkbox > Disabled state
does not call onChange when disabled
passed
0.031s
Checkbox > User interactions
calls onChange when clicked
passed
0.021s
Checkbox > User interactions
calls onChange with false when unchecked
passed
0.019s
Checkbox > User interactions
calls onChange when label is clicked
passed
0.013s
Checkbox > Accessibility
has proper aria-invalid when in error state
passed
0.016s
Checkbox > Accessibility
has aria-describedby for error
passed
0.015s
Checkbox > Accessibility
has aria-describedby for helper text
passed
0.016s
Checkbox > Accessibility
generates unique id when not provided
passed
0.014s
Checkbox > Accessibility
uses provided id
passed
0.018s
Checkbox > Ref forwarding
forwards ref to checkbox input
passed
0.013s
Checkbox > Custom classNames
applies custom className to checkbox
passed
0.015s
Checkbox > Custom classNames
applies custom labelClassName
passed
0.009s
Checkbox > Additional props
passes additional props to input
passed
0.009s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\__tests__\analytics.test.ts
4.606s
analytics > getDashboardOverview
returns cached result if available
passed
0.011s
analytics > getDashboardOverview
calculates metrics when cache miss
passed
0.004s
analytics > getDashboardOverview
calculates growth percentages correctly
passed
0.031s
analytics > getDashboardOverview
handles zero previous values
passed
0.002s
analytics > getOrderMetrics
returns correct metrics for orders
passed
0.003s
analytics > getOrderMetrics
handles empty orders
passed
0.002s
analytics > getOrderMetrics
rounds revenue to 2 decimal places
passed
0.002s
analytics > getSalesAnalytics
returns daily sales for specified period
passed
0.004s
analytics > getSalesAnalytics
determines trend correctly - up
passed
0.002s
analytics > getSalesAnalytics
determines trend correctly - down
passed
0.002s
analytics > getSalesAnalytics
determines trend correctly - stable
passed
0.002s
analytics > getSalesAnalytics
uses default 30 days
passed
0.002s
analytics > getCustomerAnalytics
calculates customer metrics correctly
passed
0.017s
analytics > getCustomerAnalytics
segments customers correctly
passed
0.003s
analytics > getCustomerAnalytics
calculates average lifetime value
passed
0.002s
analytics > getCustomerAnalytics
returns top customers sorted by total spent
passed
0.003s
analytics > getCustomerAnalytics
builds acquisition trend for 30 days
passed
0.007s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\hooks\__tests__\useTheme.test.tsx
6.117s
ThemeContext > ThemeProvider
renders children
passed
0.116s
ThemeContext > ThemeProvider
uses system theme as default
passed
0.028s
ThemeContext > ThemeProvider
uses custom default theme when provided
passed
0.014s
ThemeContext > ThemeProvider
loads theme from localStorage on mount
passed
0.065s
ThemeContext > ThemeProvider
ignores invalid localStorage values
passed
0.025s
ThemeContext > useTheme
throws error when used outside provider
passed
0.201s
ThemeContext > useTheme
returns current theme
passed
0.012s
ThemeContext > useTheme
returns resolved theme for light mode
passed
0.053s
ThemeContext > useTheme
returns resolved theme for dark mode
passed
0.011s
ThemeContext > useTheme
resolves system theme to light when system prefers light
passed
0.042s
ThemeContext > useTheme
resolves system theme to dark when system prefers dark
passed
0.012s
ThemeContext > setTheme
sets theme to light
passed
0.049s
ThemeContext > setTheme
sets theme to dark
passed
0.026s
ThemeContext > setTheme
sets theme to system
passed
0.018s
ThemeContext > setTheme
saves theme to localStorage
passed
0.035s
ThemeContext > setTheme
applies theme to document element
passed
0.022s
ThemeContext > toggleTheme
toggles from light to dark
passed
0.024s
ThemeContext > toggleTheme
toggles from dark to light
passed
0.015s
ThemeContext > toggleTheme
toggles from system (light) to dark
passed
0.028s
ThemeContext > toggleTheme
toggles from system (dark) to light
passed
0.015s
ThemeContext > System theme changes
listens for system theme changes when theme is system
passed
0.013s
ThemeContext > System theme changes
does not listen for system changes when theme is explicit
passed
0.01s
ThemeContext > Document updates
sets data-theme attribute on document element
passed
0.01s
ThemeContext > Document updates
adds theme-loaded class when mounted
passed
0.015s
ThemeContext > Error handling
handles localStorage errors gracefully when loading
passed
0.035s
ThemeContext > Error handling
handles localStorage errors gracefully when saving
passed
0.068s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\Tooltip\__tests__\Tooltip.test.tsx
5.173s
Tooltip
renders children correctly
passed
0.11s
Tooltip
shows tooltip on hover
passed
0.206s
Tooltip
hides tooltip on mouse leave
passed
0.074s
Tooltip
shows tooltip on focus
passed
0.069s
Tooltip
hides tooltip on blur
passed
0.053s
Tooltip
renders with different positions
passed
0.12s
Tooltip
does not show tooltip when content is empty
passed
0.008s
Tooltip
applies custom className
passed
0.064s
Tooltip
respects delay prop
passed
0.034s
Tooltip
clears timeout on mouse leave before delay completes
passed
0.028s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\core\__tests__\logger.test.ts
6.381s
logger > logInfo
should log info messages with correct format
passed
0.009s
logger > logInfo
should include data when provided
passed
0.003s
logger > logInfo
should handle different context values
passed
0.034s
logger > logWarn
should log warning messages with correct format
passed
0.002s
logger > logWarn
should include data when provided
passed
0.002s
logger > logError
should log error messages with correct format
passed
0.002s
logger > logError
should extract error details from Error objects
passed
0.1s
logger > logError
should handle non-Error objects
passed
0.001s
logger > logError
should handle string errors
passed
0.001s
logger > logDebug
should log debug messages in development mode
passed
0.002s
logger > logDebug
should not log debug messages in production mode
passed
0.003s
logger > logDebug
should not log debug messages in test mode
passed
0.002s
logger > logDebug
should include data in development mode
passed
0.002s
logger > logRequest
should log basic request
passed
0.002s
logger > logRequest
should include status code
passed
0.002s
logger > logRequest
should include user ID
passed
0.002s
logger > logRequest
should include duration
passed
0.001s
logger > logRequest
should handle POST requests
passed
0.001s
logger > logAuth
should log successful auth event
passed
0.001s
logger > logAuth
should log failed auth event
passed
0.001s
logger > logAuth
should handle different auth events
passed
0.002s
logger > logDatabase
should log database operation
passed
0.003s
logger > logDatabase
should include duration
passed
0.002s
logger > logRateLimit
should log rate limit warning
passed
0.002s
logger > logRateLimit
should handle user identifier
passed
0.002s
logger > logger object
should expose all logging methods
passed
0.003s
logger > logger object
should work when called through logger object
passed
0.035s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\EndpointPerformanceTable\EndpointPerformanceTable.test.tsx
5.094s
EndpointPerformanceTable > Rendering
renders without crashing
passed
0.175s
EndpointPerformanceTable > Rendering
displays the table title
passed
0.036s
EndpointPerformanceTable > Rendering
displays endpoint names
passed
0.07s
EndpointPerformanceTable > Rendering
displays HTTP methods
passed
0.066s
EndpointPerformanceTable > Rendering
displays request counts
passed
0.033s
EndpointPerformanceTable > Rendering
displays formatted durations
passed
0.051s
EndpointPerformanceTable > Percentiles
shows percentile columns when showPercentiles is true
passed
0.05s
EndpointPerformanceTable > Percentiles
hides percentile columns when showPercentiles is false
passed
0.046s
EndpointPerformanceTable > Percentiles
displays percentile values when available
passed
0.031s
EndpointPerformanceTable > Loading State
displays loading skeleton when isLoading is true
passed
0.012s
EndpointPerformanceTable > Empty State
displays empty message when no endpoints
passed
0.011s
EndpointPerformanceTable > Max Rows
limits displayed rows when maxRows is set
passed
0.053s
EndpointPerformanceTable > Max Rows
shows count message when rows are limited
passed
0.041s
EndpointPerformanceTable > Click Handler
calls onEndpointClick when row is clicked
passed
0.026s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\pricing\[id]\__tests__\route.test.ts
5.073s
GET /api/admin/pricing/[id] > Authentication & Authorization
returns 401 when not authenticated
passed
0.014s
GET /api/admin/pricing/[id] > Authentication & Authorization
returns 403 when user is not admin
passed
0.018s
GET /api/admin/pricing/[id] > Successful retrieval
returns a pricing rule by id
passed
0.006s
GET /api/admin/pricing/[id] > Successful retrieval
returns 404 when rule not found
passed
0.006s
GET /api/admin/pricing/[id] > Successful retrieval
returns 400 for invalid id
passed
0.005s
PUT /api/admin/pricing/[id] > Authentication & Authorization
returns 401 when not authenticated
passed
0.012s
PUT /api/admin/pricing/[id] > Authentication & Authorization
returns 403 when not admin
passed
0.024s
PUT /api/admin/pricing/[id] > Successful update
updates rule name
passed
0.016s
PUT /api/admin/pricing/[id] > Successful update
updates discount value
passed
0.01s
PUT /api/admin/pricing/[id] > Successful update
toggles active status
passed
0.006s
PUT /api/admin/pricing/[id] > Successful update
updates target products
passed
0.023s
PUT /api/admin/pricing/[id] > Validation
returns 400 for invalid discount type
passed
0.007s
PUT /api/admin/pricing/[id] > Validation
returns 400 for negative discount value
passed
0.005s
PUT /api/admin/pricing/[id] > Validation
returns 404 when rule not found
passed
0.005s
DELETE /api/admin/pricing/[id] > Authentication & Authorization
returns 401 when not authenticated
passed
0.004s
DELETE /api/admin/pricing/[id] > Authentication & Authorization
returns 403 when not admin
passed
0.004s
DELETE /api/admin/pricing/[id] > Successful deletion
deletes a pricing rule
passed
0.03s
DELETE /api/admin/pricing/[id] > Successful deletion
returns 404 when rule not found
passed
0.004s
DELETE /api/admin/pricing/[id] > Successful deletion
returns 400 for invalid id
passed
0.006s
DELETE /api/admin/pricing/[id] > Error handling
returns 500 on database error
passed
0.112s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\promotions\__tests__\route.test.ts
4.879s
GET /api/admin/promotions > Authentication & Authorization
returns 401 when not authenticated
passed
0.015s
GET /api/admin/promotions > Authentication & Authorization
returns 403 when authenticated but not admin
passed
0.005s
GET /api/admin/promotions > Successful retrieval
returns paginated promotions for admin
passed
0.04s
GET /api/admin/promotions > Successful retrieval
filters by search term
passed
0.008s
GET /api/admin/promotions > Successful retrieval
filters by promotion type
passed
0.016s
GET /api/admin/promotions > Successful retrieval
filters by active status
passed
0.005s
GET /api/admin/promotions > Successful retrieval
filters by expired status
passed
0.004s
GET /api/admin/promotions > Successful retrieval
computes correct status for scheduled promotions
passed
0.004s
GET /api/admin/promotions > Successful retrieval
handles pagination correctly
passed
0.005s
GET /api/admin/promotions > Error handling
returns 500 on database error
passed
0.099s
POST /api/admin/promotions > Authentication & Authorization
returns 401 when not authenticated
passed
0.004s
POST /api/admin/promotions > Authentication & Authorization
returns 403 when not admin
passed
0.003s
POST /api/admin/promotions > Validation
returns 400 for missing required fields
passed
0.018s
POST /api/admin/promotions > Validation
returns 400 for invalid discount value
passed
0.007s
POST /api/admin/promotions > Validation
returns 400 for invalid date range (end before start)
passed
0.006s
POST /api/admin/promotions > Successful creation
creates basic promotion successfully
passed
0.007s
POST /api/admin/promotions > Successful creation
creates promotion with target products
passed
0.01s
POST /api/admin/promotions > Error handling
returns 500 on database error
passed
0.007s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\ui\Card\__tests__\Card.test.tsx
6.268s
Card > Basic rendering
renders children content
passed
0.183s
Card > Basic rendering
renders with default variant (default)
passed
0.026s
Card > Variants
renders default variant
passed
0.013s
Card > Variants
renders bordered variant
passed
0.013s
Card > Variants
renders elevated variant
passed
0.01s
Card > Variants
renders ghost variant
passed
0.008s
Card > Variants
renders shadow-1 variant
passed
0.008s
Card > Variants
renders flat variant
passed
0.061s
Card > Padding
renders with no padding
passed
0.013s
Card > Padding
renders with small padding
passed
0.008s
Card > Padding
renders with medium padding (default)
passed
0.019s
Card > Padding
renders with large padding
passed
0.016s
Card > Border radius
renders with no border radius
passed
0.008s
Card > Border radius
renders with small border radius
passed
0.007s
Card > Border radius
renders with medium border radius
passed
0.044s
Card > Border radius
renders with large border radius (default)
passed
0.014s
Card > Interactive states
renders hoverable card
passed
0.01s
Card > Interactive states
renders non-hoverable card by default
passed
0.007s
Card > Interactive states
renders clickable card
passed
0.041s
Card > Interactive states
renders non-clickable card by default
passed
0.006s
Card > Custom className
applies custom className
passed
0.006s
Card > Custom className
merges custom className with default classes
passed
0.006s
Card > Ref forwarding
forwards ref to Card
passed
0.008s
Card > Additional props
passes additional props to div
passed
0.018s
CardHeader
renders children content
passed
0.007s
CardHeader
applies default styles
passed
0.007s
CardHeader
applies custom className
passed
0.045s
CardHeader
forwards ref
passed
0.006s
CardHeader
passes additional props
passed
0.018s
CardBody
renders children content
passed
0.011s
CardBody
applies custom className
passed
0.006s
CardBody
forwards ref
passed
0.009s
CardBody
passes additional props
passed
0.006s
CardFooter
renders children content
passed
0.006s
CardFooter
applies default styles
passed
0.005s
CardFooter
applies custom className
passed
0.012s
CardFooter
forwards ref
passed
0.005s
CardFooter
passes additional props
passed
0.025s
Card composition
renders full card with header, body, and footer
passed
0.01s
Card composition
renders elevated card with hoverable effect
passed
0.006s
Card composition
renders bordered clickable card
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\LiveIndicator\__tests__\LiveIndicator.test.tsx
4.024s
LiveIndicator > rendering
renders the component
passed
0.167s
LiveIndicator > rendering
displays connected status
passed
0.076s
LiveIndicator > rendering
displays connecting status
passed
0.031s
LiveIndicator > rendering
displays reconnecting status
passed
0.022s
LiveIndicator > rendering
displays disconnected status
passed
0.022s
LiveIndicator > rendering
displays polling status
passed
0.029s
LiveIndicator > last update time
displays "just now" for recent updates
passed
0.027s
LiveIndicator > last update time
displays seconds ago for updates within a minute
passed
0.01s
LiveIndicator > last update time
displays minutes ago for updates within an hour
passed
0.057s
LiveIndicator > last update time
does not display update time when lastUpdate is null
passed
0.018s
LiveIndicator > compact mode
renders compact version
passed
0.024s
LiveIndicator > compact mode
does not show LIVE text for non-connected status in compact mode
passed
0.014s
LiveIndicator > reconnect button
shows reconnect button when disconnected
passed
0.019s
LiveIndicator > reconnect button
calls onReconnect when button is clicked
passed
0.04s
LiveIndicator > reconnect button
does not show reconnect button when connected
passed
0.02s
LiveIndicator > reconnect button
does not show reconnect button without callback
passed
0.026s
LiveIndicator > styling
applies custom className
passed
0.023s
LiveIndicator > styling
has animation class for connected status
passed
0.036s
LiveIndicator > styling
has animation class for connecting status
passed
0.009s
LiveIndicator > styling
does not have animation class for disconnected status
passed
0.008s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\analytics\services\__tests__\cohort.service.test.ts
4.834s
Cohort Service > getCohortAnalysis
should return empty cohorts when no users exist
passed
0.146s
Cohort Service > getCohortAnalysis
should calculate cohort retention correctly
passed
0.007s
Cohort Service > getCohortAnalysis
should handle users with no orders
passed
0.005s
Cohort Service > getCohortAnalysis
should calculate average CLV across cohorts
passed
0.006s
Cohort Service > getRetentionMatrix
should return matrix with correct labels
passed
0.02s
Cohort Service > getRetentionMatrix
should pad retention arrays to consistent length
passed
0.003s
Cohort Service > getCustomerSegments
should return all segment categories
passed
0.013s
Cohort Service > getCustomerSegments
should segment high value customers correctly
passed
0.003s
Cohort Service > getCustomerSegments
should identify dormant customers
passed
0.002s
Cohort Service > getCustomerSegments
should calculate average order value per segment
passed
0.002s
Cohort Service > getCustomerSegments
should handle customers with no orders
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\hooks\__tests__\useSupport.test.ts
5.192s
usePolling
calls callback at specified interval when enabled
passed
0.068s
usePolling
does not call callback when disabled
passed
0.019s
usePolling
cleans up interval on unmount
passed
0.013s
usePolling
returns a manual trigger function
passed
0.043s
useTickets
dispatches fetchTickets on mount
passed
0.009s
useTickets
returns tickets state and actions
passed
0.009s
useTickets
dispatches setTicketFilters when setFilters is called
passed
0.013s
useTickets
dispatches clearTicketFilters when clearFilters is called
passed
0.041s
useTicket
dispatches fetchTicket when ticketId is provided
passed
0.007s
useTicket
does not dispatch when ticketId is null
passed
0.005s
useTicket
returns ticket state and refetch function
passed
0.01s
useMyTickets
dispatches fetchMyTickets on mount
passed
0.005s
useMyTickets
returns my tickets state
passed
0.006s
useArticles
dispatches fetchArticles on mount
passed
0.006s
useArticles
returns articles state and actions
passed
0.007s
useArticles
dispatches setArticleCategory when setCategory is called
passed
0.008s
useSupportStats
dispatches fetchStats on mount
passed
0.007s
useSupportStats
returns stats state
passed
0.008s
useChatbot
returns chatbot state and actions
passed
0.01s
useChatbot
dispatches toggleChatbot when toggle is called
passed
0.014s
useChatbot
dispatches sendChatbotMessage when sendMessage is called
passed
0.014s
useChatbot
does not send empty messages
passed
0.007s
useCreateTicket
returns initial state
passed
0.009s
useCreateTicket
creates ticket successfully
passed
0.035s
useCreateTicket
handles creation error
passed
0.107s
useCreateTicket
resets state when reset is called
passed
0.01s
useSendTicketMessage
sends message successfully
passed
0.009s
useSendTicketMessage
handles send error
passed
0.008s
useUpdateTicket
updates ticket successfully
passed
0.008s
useUpdateTicket
handles update error
passed
0.013s
useBulkTicketActions
performs bulk update successfully
passed
0.01s
useBulkTicketActions
handles bulk action error
passed
0.006s
useArticleVote
submits helpful vote successfully
passed
0.009s
useArticleVote
submits not helpful vote successfully
passed
0.008s
useArticleVote
handles vote error
passed
0.01s
useTicketSurvey
submits survey successfully
passed
0.006s
useTicketSurvey
handles survey submission error
passed
0.008s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\api-docs\__tests__\request-chaining.test.ts
5.56s
Request Chaining > createChainFromRequests
should create chain steps from requests
passed
0.008s
Request Chaining > createChainFromRequests
should use default name when not provided
passed
0.002s
Request Chaining > createChainFromRequests
should handle empty requests array
passed
0.002s
Request Chaining > formatChainResults
should format successful chain results
passed
0.004s
Request Chaining > formatChainResults
should format failed chain results
passed
0.011s
Request Chaining > formatChainResults
should format skipped steps
passed
0.002s
Request Chaining > formatChainResults
should format assertion results
passed
0.002s
Request Chaining > ChainStep interface
should allow valid step configuration
passed
0.004s
Request Chaining > VariableExtraction interface
should support JSONPath-like expressions
passed
0.002s
Request Chaining > ChainAssertion operators
should support all assertion operators
passed
0.004s
Request Chaining > Variable interpolation patterns
should recognize variable patterns in strings
passed
0.003s
Request Chaining > JSONPath-like extraction patterns
should recognize valid JSONPath patterns
passed
0.002s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\services\__tests__\support-analytics.service.test.ts
5.129s
SupportAnalyticsService > getChatMetrics
should return chat metrics for the period
passed
0.007s
SupportAnalyticsService > getChatMetrics
should handle no ratings
passed
0.002s
SupportAnalyticsService > getAgentPerformance
should return agent performance metrics
passed
0.01s
SupportAnalyticsService > getAgentPerformance
should return empty array when no agents found
passed
0.002s
SupportAnalyticsService > getDailyMetrics
should return daily metrics trend
passed
0.034s
SupportAnalyticsService > getDailyMetrics
should handle empty data
passed
0.002s
SupportAnalyticsService > getBusiestHours
should return busiest hours sorted by count
passed
0.004s
SupportAnalyticsService > getTopTags
should return top tags sorted by frequency
passed
0.003s
SupportAnalyticsService > getTopTags
should handle conversations without tags
passed
0.002s
SupportAnalyticsService > getCSATScore
should calculate CSAT score correctly
passed
0.012s
SupportAnalyticsService > getCSATScore
should handle no responses
passed
0.003s
SupportAnalyticsService > getCSATScore
should handle all satisfied customers
passed
0.003s
SupportAnalyticsService > getSummary
should return comprehensive analytics summary
passed
0.005s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\api\__tests__\responses.test.ts
6.006s
API Response Helpers > successResponse
should create a success response with data
passed
0.059s
API Response Helpers > successResponse
should accept custom status code
passed
0.006s
API Response Helpers > successResponse
should include meta when provided
passed
0.003s
API Response Helpers > createdResponse
should return 201 status
passed
0.019s
API Response Helpers > paginatedResponse
should include pagination metadata
passed
0.007s
API Response Helpers > paginatedResponse
should calculate hasNext and hasPrev correctly
passed
0.004s
API Response Helpers > paginatedResponse
should handle last page
passed
0.003s
API Response Helpers > noContentResponse
should return 204 status with no body
passed
0.002s
API Response Helpers > errorResponse
should create an error response
passed
0.004s
API Response Helpers > errorResponse
should include details when provided
passed
0.004s
API Response Helpers > errorResponse
should accept custom status code
passed
0.002s
API Response Helpers > validationErrorResponse
should return 400 with VALIDATION_ERROR code
passed
0.015s
API Response Helpers > unauthorizedResponse
should return 401
passed
0.005s
API Response Helpers > unauthorizedResponse
should accept custom message
passed
0.005s
API Response Helpers > forbiddenResponse
should return 403
passed
0.003s
API Response Helpers > notFoundResponse
should return 404 with resource name
passed
0.005s
API Response Helpers > notFoundResponse
should include ID in message when provided
passed
0.006s
API Response Helpers > conflictResponse
should return 409
passed
0.027s
API Response Helpers > rateLimitResponse
should return 429
passed
0.009s
API Response Helpers > internalErrorResponse
should return 500
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\products\__tests__\[id].test.ts
4.663s
GET /api/products/[id]
returns product with details
passed
0.034s
GET /api/products/[id]
returns 404 for non-existent product
passed
0.006s
GET /api/products/[id]
calculates correct average rating with no reviews
passed
0.005s
GET /api/products/[id]
returns 500 on database error
passed
0.145s
PATCH /api/products/[id] > Admin authorization
returns 401 for unauthenticated users
passed
0.004s
PATCH /api/products/[id] > Admin authorization
returns 403 for non-admin users
passed
0.005s
PATCH /api/products/[id] > Product updates
updates product title
passed
0.055s
PATCH /api/products/[id] > Product updates
updates product price
passed
0.008s
PATCH /api/products/[id] > Product updates
updates product stock
passed
0.004s
PATCH /api/products/[id] > Product updates
updates product category
passed
0.006s
PATCH /api/products/[id] > Product updates
handles partial updates (only specified fields)
passed
0.01s
PATCH /api/products/[id] > Error handling
returns 500 on database error
passed
0.006s
DELETE /api/products/[id] > Admin authorization
returns 401 for unauthenticated users
passed
0.02s
DELETE /api/products/[id] > Admin authorization
returns 403 for non-admin users
passed
0.005s
DELETE /api/products/[id] > Product deletion
deletes product successfully
passed
0.004s
DELETE /api/products/[id] > Product deletion
returns 500 on database error
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\contexts\__tests__\CheckoutContext.test.tsx
5.471s
CheckoutContext > useCheckout
throws error when used outside provider
passed
0.287s
CheckoutContext > useCheckout
provides initial state
passed
0.02s
CheckoutContext > useCheckout
allows setting step
passed
0.042s
CheckoutContext > useCheckout
allows setting shipping address
passed
0.011s
CheckoutContext > useCheckout
copies shipping to billing when sameAsShipping is true
passed
0.009s
CheckoutContext > useCheckout
allows separate billing address when sameAsShipping is false
passed
0.019s
CheckoutContext > useCheckout
allows setting shipping method
passed
0.008s
CheckoutContext > useCheckout
allows setting payment method
passed
0.007s
CheckoutContext > useCheckout
allows setting processing state
passed
0.008s
CheckoutContext > useCheckout
allows setting error
passed
0.029s
CheckoutContext > useCheckout
resets state
passed
0.012s
CheckoutContext > canProceed
returns false for shipping step without address and method
passed
0.006s
CheckoutContext > canProceed
returns true for shipping step with address and method
passed
0.008s
CheckoutContext > canProceed
returns false for payment step without payment method
passed
0.031s
CheckoutContext > canProceed
returns true for payment step with payment method
passed
0.007s
CheckoutContext > canProceed
returns false for review step when processing
passed
0.007s
CheckoutContext > canProceed
returns true for review step when not processing
passed
0.039s
CheckoutContext > useCheckoutStep
provides step-related values
passed
0.007s
CheckoutContext > useCheckoutShipping
provides shipping-related values
passed
0.006s
CheckoutContext > useCheckoutBilling
provides billing-related values
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\__tests__\error-handler.test.ts
4.19s
AppError
creates error with default values
passed
0.007s
AppError
creates error with custom status code
passed
0.003s
AppError
creates error with custom status code and error code
passed
0.002s
AppError
is instanceof Error
passed
0.013s
createError
creates AppError with message only
passed
0.003s
createError
creates AppError with all parameters
passed
0.002s
errors factory functions
creates unauthorized error
passed
0.002s
errors factory functions
creates unauthorized error with custom message
passed
0.002s
errors factory functions
creates forbidden error
passed
0.002s
errors factory functions
creates notFound error
passed
0.002s
errors factory functions
creates notFound error with custom resource
passed
0.001s
errors factory functions
creates conflict error
passed
0.001s
errors factory functions
creates validation error
passed
0.002s
errors factory functions
creates validation error with custom message and field
passed
0.001s
errors factory functions
creates rateLimit error
passed
0.002s
errors factory functions
creates rateLimit error with retryAfter
passed
0.001s
errors factory functions
creates internal error
passed
0.001s
handleError > AppError handling
handles AppError and returns correct status
passed
0.03s
handleError > AppError handling
handles 401 AppError
passed
0.005s
handleError > AppError handling
handles 404 AppError
passed
0.004s
handleError > ZodError handling
handles Zod validation error
passed
0.101s
handleError > ZodError handling
groups multiple errors for same field
passed
0.005s
handleError > ZodError handling
handles nested path validation errors
passed
0.005s
handleError > SyntaxError handling
handles JSON parsing errors
passed
0.003s
handleError > Prisma error handling
handles unique constraint violation
passed
0.003s
handleError > Prisma error handling
handles record not found errors
passed
0.002s
handleError > Generic error handling
handles unknown errors with 500
passed
0.002s
handleError > Generic error handling
handles non-Error objects
passed
0.002s
handleError > Generic error handling
handles string errors
passed
0.002s
handleError > Generic error handling
handles null errors
passed
0.002s
handleError > Generic error handling
handles undefined errors
passed
0.002s
handleError > Logger integration
logs errors via logger
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\cart\__tests__\CartMergeHandler.test.tsx
6.413s
CartMergeHandler > Rendering
renders null (no visible output)
passed
0.09s
CartMergeHandler > Loading state
does nothing while session is loading
passed
0.009s
CartMergeHandler > Authentication transitions
does not merge on initial authenticated state (no previous status)
passed
0.09s
CartMergeHandler > Authentication transitions
does not merge when no anonymous cart exists on status change
passed
0.15s
CartMergeHandler > Authentication transitions
does not merge when anonymous cart is empty
passed
0.089s
CartMergeHandler > Component behavior
initializes with loading state without side effects
passed
0.01s
CartMergeHandler > Component behavior
tracks status changes across renders
passed
0.027s
CartMergeHandler > Component behavior
mocks are properly configured
passed
0.004s
CartMergeHandler > Fetch mock verification
fetch mock responds correctly
passed
0.002s
CartMergeHandler > Fetch mock verification
fetch mock handles error responses
passed
0.007s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\promotions\__tests__\active.test.ts
6.334s
GET /api/promotions/active > Successful retrieval
returns active promotions with computed fields
passed
0.086s
GET /api/promotions/active > Successful retrieval
returns fixed amount discount label correctly
passed
0.006s
GET /api/promotions/active > Successful retrieval
returns empty array when no active promotions
passed
0.008s
GET /api/promotions/active > Successful retrieval
filters by type when provided
passed
0.005s
GET /api/promotions/active > Successful retrieval
respects limit parameter
passed
0.004s
GET /api/promotions/active > Successful retrieval
uses default limit of 20 when not specified
passed
0.003s
GET /api/promotions/active > Error handling
returns 500 on database error
passed
0.227s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\validation\__tests__\index.test.ts
5.608s
Simple Validation Functions > validateData
should return data on success
passed
0.018s
Simple Validation Functions > validateData
should return grouped errors on failure
passed
0.01s
Simple Validation Functions > validateData
should handle nested paths
passed
0.007s
Simple Validation Functions > safeParse
should return SafeParseSuccess on valid data
passed
0.005s
Simple Validation Functions > safeParse
should return SafeParseError on invalid data
passed
0.003s
Route Param Validation > validateRouteParams
should validate valid route params
passed
0.011s
Route Param Validation > validateRouteParams
should return error for invalid params
passed
0.008s
Route Param Validation > validateRouteParams
should handle multiple params
passed
0.004s
Error Handling > isValidationError
should return true for ZodError
passed
0.003s
Error Handling > isValidationError
should return false for other errors
passed
0.002s
Utility Schemas > createIdParamSchema
should create a schema for ID params
passed
0.004s
Utility Schemas > createIdParamSchema
should support custom param names
passed
0.003s
Utility Schemas > createIdParamSchema
should reject invalid IDs
passed
0.068s
Utility Schemas > createSlugParamSchema
should create a schema for slug params
passed
0.007s
Utility Schemas > createSlugParamSchema
should support custom param names
passed
0.004s
Utility Schemas > createSlugParamSchema
should reject empty slugs
passed
0.007s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\cart\__tests__\cart-persistence-integration.test.ts
5.14s
Cart Persistence Integration > Anonymous User Flow
should save and retrieve anonymous cart
passed
0.012s
Cart Persistence Integration > Anonymous User Flow
should persist cart across page refreshes
passed
0.004s
Cart Persistence Integration > Anonymous User Flow
should update cart when quantity changes
passed
0.003s
Cart Persistence Integration > Login and Merge Flow
should merge anonymous cart with empty user cart
passed
0.005s
Cart Persistence Integration > Login and Merge Flow
should merge anonymous cart with existing user cart
passed
0.019s
Cart Persistence Integration > Login and Merge Flow
should clear anonymous cookie after successful merge
passed
0.003s
Cart Persistence Integration > Multi-Device Sync Flow
should generate unique device IDs
passed
0.009s
Cart Persistence Integration > Multi-Device Sync Flow
should maintain consistent device ID across sessions
passed
0.003s
Cart Persistence Integration > Multi-Device Sync Flow
should include device ID in cart operations
passed
0.003s
Cart Persistence Integration > Cart Validation Flow
should validate cart before saving
passed
0.033s
Cart Persistence Integration > Cart Validation Flow
should reject invalid cart data
passed
0.005s
Cart Persistence Integration > Complete User Journey
should handle complete anonymous-to-authenticated flow
passed
0.004s
Cart Persistence Integration > Error Handling
should handle corrupted cookie data
passed
0.068s
Cart Persistence Integration > Error Handling
should handle cookie size limit
passed
0.003s
Cart Persistence Integration > Error Handling
should handle storage errors gracefully
passed
0.011s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\alerts\StatusIndicator\__tests__\StatusIndicator.test.tsx
6.523s
StatusIndicator > rendering
renders without crashing
passed
0.097s
StatusIndicator > rendering
renders with default size (md)
passed
0.014s
StatusIndicator > rendering
renders with small size
passed
0.01s
StatusIndicator > rendering
renders with large size
passed
0.012s
StatusIndicator > status colors
renders green for ok status
passed
0.011s
StatusIndicator > status colors
renders yellow for warning status
passed
0.01s
StatusIndicator > status colors
renders red for critical status
passed
0.032s
StatusIndicator > status colors
renders blue for active status
passed
0.008s
StatusIndicator > status colors
renders purple for acknowledged status
passed
0.008s
StatusIndicator > status colors
renders gray for resolved status
passed
0.021s
StatusIndicator > label
does not show label by default
passed
0.017s
StatusIndicator > label
shows label when showLabel is true
passed
0.015s
StatusIndicator > label
displays correct label for each status
passed
0.032s
StatusIndicator > animation
does not animate by default
passed
0.02s
StatusIndicator > animation
animates when animate prop is true
passed
0.008s
StatusIndicator > className
applies custom className
passed
0.007s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\auth\__tests__\session-security.test.ts
4.621s
Session Security > extractRequestMetadata
returns null values when request is undefined
passed
0.009s
Session Security > extractRequestMetadata
extracts IP from x-forwarded-for header
passed
0.004s
Session Security > extractRequestMetadata
extracts IP from x-real-ip header when x-forwarded-for is missing
passed
0.003s
Session Security > extractRequestMetadata
extracts user agent from request
passed
0.005s
Session Security > extractRequestMetadata
handles missing headers gracefully
passed
0.01s
Session Security > generateSessionToken
generates a non-empty token
passed
0.035s
Session Security > generateSessionToken
generates unique tokens on each call
passed
0.004s
Session Security > generateSessionToken
generates hex encoded tokens
passed
0.004s
Session Security > rotateUserSession
deletes old sessions and creates new one
passed
0.007s
Session Security > rotateUserSession
returns null on error
passed
0.003s
Session Security > rotateUserSession
includes request metadata when provided
passed
0.004s
Session Security > invalidateAllUserSessions
deletes all sessions for user
passed
0.004s
Session Security > invalidateAllUserSessions
handles zero sessions gracefully
passed
0.002s
Session Security > invalidateAllUserSessions
throws on database error
passed
0.046s
Session Security > validateSession
returns session data for valid non-expired session
passed
0.006s
Session Security > validateSession
returns null for non-existent session
passed
0.002s
Session Security > validateSession
returns null and cleans up expired session
passed
0.003s
Session Security > validateSession
returns null on database error
passed
0.002s
Session Security > updateSessionActivity
extends session expiry
passed
0.002s
Session Security > updateSessionActivity
logs warning on error but does not throw
passed
0.004s
Session Security > getActiveSessionCount
returns count of active sessions
passed
0.003s
Session Security > getActiveSessionCount
returns 0 when no active sessions
passed
0.002s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\user\password\__tests__\route.test.ts
4.096s
POST /api/user/password > Rate limiting
returns 429 when rate limit exceeded
passed
0.017s
POST /api/user/password > Authentication
returns 401 for unauthenticated request
passed
0.007s
POST /api/user/password > Authentication
returns 404 when user not found
passed
0.022s
POST /api/user/password > Validation
returns 400 when oldPassword is missing
passed
0.009s
POST /api/user/password > Validation
returns 400 when newPassword is too short
passed
0.007s
POST /api/user/password > Validation
returns 400 when newPassword has no uppercase
passed
0.006s
POST /api/user/password > Validation
returns 400 when passwords do not match
passed
0.005s
POST /api/user/password > Password verification
returns 400 when old password is incorrect
passed
0.009s
POST /api/user/password > Password verification
returns 400 when new password is same as old
passed
0.005s
POST /api/user/password > Successful password change
changes password successfully
passed
0.014s
POST /api/user/password > Error handling
returns 500 on database error
passed
0.058s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\hooks\__tests__\useCategories.test.ts
5.256s
useCategories
initializes with loading state
passed
0.089s
useCategories
fetches categories successfully
passed
0.104s
useCategories
handles Error objects
passed
0.138s
useCategories
handles non-Error objects
passed
0.114s
useCategories
passes includeProductCount to API
passed
0.008s
useCategories
defaults includeProductCount to false
passed
0.04s
useCategories
re-fetches when includeProductCount changes
passed
0.053s
useCategories
returns empty array when API returns empty
passed
0.137s
useCategories
clears error on successful re-fetch
passed
0.282s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\logging\__tests__\requestContext.test.ts
5.706s
extractRequestMetadata
should extract metadata from request
passed
0.013s
extractRequestMetadata
should use x-request-id header if present
passed
0.002s
extractRequestMetadata
should use x-correlation-id header if present
passed
0.002s
extractRequestMetadata
should prefer x-request-id over x-correlation-id
passed
0.002s
extractRequestMetadata
should extract IP from x-real-ip if x-forwarded-for not present
passed
0.002s
extractRequestMetadata
should extract first IP from x-forwarded-for list
passed
0.002s
extractRequestMetadata
should include userId if provided
passed
0.001s
createRequestLogger
should create a Logger instance
passed
0.003s
createRequestLogger
should create logger with user ID context
passed
0.004s
withRequestLogging
should wrap handler and return a function
passed
0.002s
withRequestLogging
should call handler with request and logger
passed
0.004s
withRequestLogging
should return the handler response
passed
0.019s
withRequestLogging
should rethrow errors from handler
passed
0.051s
addCorrelationHeaders
should add x-request-id header to response
passed
0.004s
addCorrelationHeaders
should preserve original response status and body
passed
0.003s
withCorrelation
should wrap handler and return a function
passed
0.002s
withCorrelation
should call handler with request and requestId
passed
0.003s
withCorrelation
should use existing request ID from header
passed
0.002s
withCorrelation
should add correlation headers to response
passed
0.002s
withRequestContext
should wrap handler and return a function
passed
0.001s
withRequestContext
should call handler with request and context object
passed
0.014s
withRequestContext
should add correlation headers to response
passed
0.008s
withRequestContext
should rethrow errors from handler
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\hooks\__tests__\useProductActions.test.ts
5.592s
useProductActions > addToCart
dispatches addItemToCart with default quantity of 1
passed
0.054s
useProductActions > addToCart
dispatches addItemToCart with custom quantity
passed
0.01s
useProductActions > addToCart
tracks addToCart event
passed
0.01s
useProductActions > addToCart
shows success toast
passed
0.008s
useProductActions > addToWishlist
dispatches addItemToWishlistOptimistic
passed
0.015s
useProductActions > addToWishlist
tracks addToWishlist event
passed
0.008s
useProductActions > addToWishlist
shows success toast
passed
0.007s
useProductActions > showQuickView
dispatches updateQuickView and opens modal
passed
0.007s
useProductActions > viewDetails
dispatches updateProductDetails
passed
0.016s
useProductActions > viewDetails
tracks productView event
passed
0.008s
useProductActions > addToCompare
shows info toast for coming soon
passed
0.005s
useProductActionsWithoutToast
addToCart dispatches without toast
passed
0.007s
useProductActionsWithoutToast
addToWishlist dispatches without toast
passed
0.037s
useProductActionsWithoutToast
showQuickView works without toast
passed
0.007s
useProductActionsWithoutToast
viewDetails works without toast
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\errors\__tests__\error-recovery.test.ts
4.072s
getRecoveryActions > network errors
should return try again and go home actions
passed
0.009s
getRecoveryActions > network errors
should use provided onRetry handler
passed
0.005s
getRecoveryActions > server errors
should return try again and go home actions
passed
0.002s
getRecoveryActions > authentication errors
should return sign in and go home actions
passed
0.003s
getRecoveryActions > authentication errors
should use provided onSignIn handler
passed
0.002s
getRecoveryActions > authorization errors
should return go back and go home actions
passed
0.005s
getRecoveryActions > not found errors
should return go back and go home actions
passed
0.015s
getRecoveryActions > not found errors
should use provided onGoBack handler
passed
0.007s
getRecoveryActions > validation errors
should return only fix errors action
passed
0.01s
getRecoveryActions > payment errors
should return try again action
passed
0.001s
getRecoveryActions > payment errors
should include change payment option when handler provided
passed
0.002s
getRecoveryActions > unknown errors
should return try again and go home actions
passed
0.02s
isRetryable
should return true for network errors
passed
0.002s
isRetryable
should return true for server errors
passed
0.001s
isRetryable
should return true for rate limit errors
passed
0.028s
isRetryable
should return true for payment errors
passed
0.002s
isRetryable
should return true for unknown errors
passed
0.001s
isRetryable
should return false for validation errors
passed
0.001s
isRetryable
should return false for authentication errors
passed
0.001s
isRetryable
should return false for authorization errors
passed
0.001s
isRetryable
should return false for not found errors
passed
0.001s
getRetryDelay
should return 5000ms for rate limit errors
passed
0.001s
getRetryDelay
should return 2000ms for server errors
passed
0.001s
getRetryDelay
should return 1000ms for network errors
passed
0.001s
getRetryDelay
should return 0ms for payment errors
passed
0.001s
getRetryDelay
should apply exponential backoff
passed
0.002s
getRetryDelay
should cap at 30 seconds
passed
0.001s
getRetryDelay
should return default 1000ms for types without specific delay
passed
0.002s
withRetry
should return result on success
passed
0.002s
withRetry
should retry on failure and succeed
passed
0.003s
withRetry
should throw after max attempts
passed
0.121s
withRetry
should call onError callback on each failure
passed
0.025s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\workflows\[id]\__tests__\route.test.ts
7.259s
GET /api/admin/workflows/[id] > Authentication & Authorization
returns 401 when not authenticated
passed
0.069s
GET /api/admin/workflows/[id] > Authentication & Authorization
returns 403 when user is not admin
passed
0.006s
GET /api/admin/workflows/[id] > Validation
returns 400 for invalid workflow ID
passed
0.006s
GET /api/admin/workflows/[id] > Successful retrieval
returns workflow with stats and executions
passed
0.011s
GET /api/admin/workflows/[id] > Successful retrieval
returns 404 when workflow not found
passed
0.006s
GET /api/admin/workflows/[id] > Error handling
returns 500 on database error
passed
0.112s
PUT /api/admin/workflows/[id] > Authentication & Authorization
returns 401 when not authenticated
passed
0.004s
PUT /api/admin/workflows/[id] > Validation
returns 400 for invalid workflow ID
passed
0.007s
PUT /api/admin/workflows/[id] > Validation
returns 404 when workflow not found
passed
0.01s
PUT /api/admin/workflows/[id] > Validation
returns 400 when trying to activate a draft workflow
passed
0.005s
PUT /api/admin/workflows/[id] > Successful update
updates workflow successfully
passed
0.007s
PUT /api/admin/workflows/[id] > Successful update
increments version when steps are updated
passed
0.015s
DELETE /api/admin/workflows/[id] > Authentication & Authorization
returns 401 when not authenticated
passed
0.003s
DELETE /api/admin/workflows/[id] > Validation
returns 400 for invalid workflow ID
passed
0.004s
DELETE /api/admin/workflows/[id] > Validation
returns 400 when workflow has active executions
passed
0.006s
DELETE /api/admin/workflows/[id] > Successful deletion
deletes workflow successfully
passed
0.015s
DELETE /api/admin/workflows/[id] > Error handling
returns 500 on database error
passed
0.005s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\hero\feature-cards\__tests__\route.test.ts
9.189s
/api/admin/hero/feature-cards > GET /api/admin/hero/feature-cards > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.05s
/api/admin/hero/feature-cards > GET /api/admin/hero/feature-cards > Authentication & Authorization
returns 403 for non-admin user
passed
0.005s
/api/admin/hero/feature-cards > GET /api/admin/hero/feature-cards > Successful requests
returns all feature cards for admin
passed
0.013s
/api/admin/hero/feature-cards > GET /api/admin/hero/feature-cards > Successful requests
sorts cards with top before bottom
passed
0.004s
/api/admin/hero/feature-cards > GET /api/admin/hero/feature-cards > Successful requests
returns empty array when no cards exist
passed
0.007s
/api/admin/hero/feature-cards > GET /api/admin/hero/feature-cards > Error handling
returns 500 on database error
passed
0.135s
/api/admin/hero/feature-cards > POST /api/admin/hero/feature-cards > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.011s
/api/admin/hero/feature-cards > POST /api/admin/hero/feature-cards > Authentication & Authorization
returns 403 for non-admin user
passed
0.003s
/api/admin/hero/feature-cards > POST /api/admin/hero/feature-cards > Validation
returns 400 when productId is missing
passed
0.024s
/api/admin/hero/feature-cards > POST /api/admin/hero/feature-cards > Validation
returns 400 when position is missing
passed
0.004s
/api/admin/hero/feature-cards > POST /api/admin/hero/feature-cards > Validation
returns 400 when position is invalid
passed
0.003s
/api/admin/hero/feature-cards > POST /api/admin/hero/feature-cards > Validation
returns 404 when product does not exist
passed
0.004s
/api/admin/hero/feature-cards > POST /api/admin/hero/feature-cards > Validation
returns 400 when position is already taken
passed
0.007s
/api/admin/hero/feature-cards > POST /api/admin/hero/feature-cards > Successful creation
creates feature card with required fields
passed
0.004s
/api/admin/hero/feature-cards > POST /api/admin/hero/feature-cards > Successful creation
creates feature card with all optional fields
passed
0.004s
/api/admin/hero/feature-cards > POST /api/admin/hero/feature-cards > Successful creation
allows creating both top and bottom cards
passed
0.004s
/api/admin/hero/feature-cards > POST /api/admin/hero/feature-cards > Error handling
returns 500 on database error
passed
0.013s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\cart\__tests__\CartInitializer.test.tsx
5.015s
CartInitializer > Loading state
does nothing while session is loading
passed
0.097s
CartInitializer > Loading state
renders null (no visible output)
passed
0.018s
CartInitializer > Unauthenticated user
loads cart from cookie when available
passed
0.018s
CartInitializer > Unauthenticated user
sets isAnonymous to true with empty cart when no cookie
passed
0.031s
CartInitializer > Unauthenticated user
sets isAnonymous to true with empty cart when cookie is empty array
passed
0.018s
CartInitializer > Authenticated user
logs fetch message for authenticated user
passed
0.009s
CartInitializer > Authenticated user
does not read cart cookie for authenticated user
passed
0.026s
CartInitializer > Status transitions
only initializes once per status
passed
0.047s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\products\search\__tests__\route.test.ts
4.628s
GET /api/products/search > Query validation
returns empty results when query is missing
passed
0.028s
GET /api/products/search > Query validation
returns empty results when query is too short (1 character)
passed
0.007s
GET /api/products/search > Query validation
accepts query with exactly 2 characters
passed
0.006s
GET /api/products/search > Successful search
returns products matching title
passed
0.034s
GET /api/products/search > Successful search
limits results to 10 items
passed
0.004s
GET /api/products/search > Successful search
sorts results by title ascending
passed
0.004s
GET /api/products/search > Result transformation
calculates average rating correctly
passed
0.004s
GET /api/products/search > Result transformation
handles products with no reviews
passed
0.005s
GET /api/products/search > Result transformation
uses thumbnailUrl when available
passed
0.004s
GET /api/products/search > Result transformation
sets thumbnail to null when no images exist
passed
0.018s
GET /api/products/search > Rate limiting
returns 429 when rate limit exceeded
passed
0.006s
GET /api/products/search > Performance tracking
measures API performance on success
passed
0.004s
GET /api/products/search > Error handling
returns 500 on database error
passed
0.076s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\segments\__tests__\route.test.ts
5.236s
GET /api/admin/segments > Authentication & Authorization
returns 401 when not authenticated
passed
0.018s
GET /api/admin/segments > Authentication & Authorization
returns 403 when user is not admin
passed
0.005s
GET /api/admin/segments > Successful retrieval
returns all segments for admin
passed
0.01s
GET /api/admin/segments > Successful retrieval
returns empty array when no segments exist
passed
0.02s
GET /api/admin/segments > Error handling
returns 500 on database error
passed
0.065s
POST /api/admin/segments > Authentication & Authorization
returns 401 when not authenticated
passed
0.008s
POST /api/admin/segments > Authentication & Authorization
returns 403 when not admin
passed
0.004s
POST /api/admin/segments > Validation
returns 400 for missing required fields
passed
0.011s
POST /api/admin/segments > Validation
returns 400 for empty segment name
passed
0.012s
POST /api/admin/segments > Successful creation
creates segment successfully
passed
0.008s
POST /api/admin/segments > Successful creation
creates segment with multiple conditions
passed
0.01s
POST /api/admin/segments > Error handling
returns 500 on database error
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\__tests__\validation-schemas.test.ts
4.555s
Validation Schemas > createProductSchema
validates a correct product
passed
0.015s
Validation Schemas > createProductSchema
requires title
passed
0.005s
Validation Schemas > createProductSchema
requires title to have at least 1 character
passed
0.006s
Validation Schemas > createProductSchema
rejects title over 255 characters
passed
0.006s
Validation Schemas > createProductSchema
requires price to be positive
passed
0.004s
Validation Schemas > createProductSchema
requires discountedPrice to be positive
passed
0.004s
Validation Schemas > createProductSchema
requires stock to be non-negative
passed
0.004s
Validation Schemas > createProductSchema
allows stock to be zero
passed
0.003s
Validation Schemas > createProductSchema
requires categoryId to be positive
passed
0.004s
Validation Schemas > createProductSchema
validates image URLs
passed
0.004s
Validation Schemas > createProductSchema
validates image type enum
passed
0.004s
Validation Schemas > createProductSchema
allows optional description
passed
0.003s
Validation Schemas > createProductSchema
allows optional images array
passed
0.003s
Validation Schemas > createProductSchema
defaults stock to 0 when not provided
passed
0.004s
Validation Schemas > updateProductSchema
allows partial updates
passed
0.004s
Validation Schemas > updateProductSchema
allows empty object
passed
0.002s
Validation Schemas > updateProductSchema
validates title when provided
passed
0.002s
Validation Schemas > updateProductSchema
validates price when provided
passed
0.002s
Validation Schemas > createCategorySchema
validates a correct category
passed
0.004s
Validation Schemas > createCategorySchema
requires title
passed
0.005s
Validation Schemas > createCategorySchema
validates imageUrl format
passed
0.003s
Validation Schemas > createCategorySchema
allows optional fields
passed
0.003s
Validation Schemas > addToCartSchema
validates correct cart item
passed
0.011s
Validation Schemas > addToCartSchema
coerces string productId to number
passed
0.002s
Validation Schemas > addToCartSchema
coerces string quantity to number
passed
0.002s
Validation Schemas > addToCartSchema
requires positive productId
passed
0.003s
Validation Schemas > addToCartSchema
requires positive quantity
passed
0.002s
Validation Schemas > addToCartSchema
requires integer quantity
passed
0.003s
Validation Schemas > updateCartItemSchema
validates correct quantity update
passed
0.005s
Validation Schemas > updateCartItemSchema
rejects zero quantity
passed
0.003s
Validation Schemas > updateCartItemSchema
rejects negative quantity
passed
0.003s
Validation Schemas > addToWishlistSchema
validates correct wishlist item
passed
0.003s
Validation Schemas > addToWishlistSchema
coerces string productId
passed
0.004s
Validation Schemas > addToWishlistSchema
rejects non-positive productId
passed
0.002s
Validation Schemas > signupSchema
validates correct signup data
passed
0.004s
Validation Schemas > signupSchema
requires valid email
passed
0.003s
Validation Schemas > signupSchema
requires password minimum 6 characters
passed
0.013s
Validation Schemas > signupSchema
requires passwords to match
passed
0.003s
Validation Schemas > signupSchema
allows name to be optional
passed
0.002s
Validation Schemas > signinSchema
validates correct signin data
passed
0.004s
Validation Schemas > signinSchema
requires valid email
passed
0.003s
Validation Schemas > signinSchema
requires password
passed
0.004s
Validation Schemas > validateInput utility
returns success true for valid input
passed
0.011s
Validation Schemas > validateInput utility
returns success false with errors for invalid input
passed
0.027s
Validation Schemas > validateInput utility
groups errors by field path
passed
0.008s
Validation Schemas > validateInput utility
handles non-Zod errors gracefully
passed
0.003s
Validation Schemas > validateInput utility
handles nested path errors
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\products\__tests__\route.test.ts
5.001s
/api/admin/products > GET /api/admin/products > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.019s
/api/admin/products > GET /api/admin/products > Authentication & Authorization
returns 401 for session without email or id
passed
0.006s
/api/admin/products > GET /api/admin/products > Authentication & Authorization
returns 403 for non-admin user
passed
0.016s
/api/admin/products > GET /api/admin/products > Authentication & Authorization
returns 404 when user not found
passed
0.004s
/api/admin/products > GET /api/admin/products > Successful requests
returns products with pagination
passed
0.014s
/api/admin/products > GET /api/admin/products > Successful requests
calculates average rating correctly
passed
0.006s
/api/admin/products > GET /api/admin/products > Successful requests
respects pagination parameters
passed
0.006s
/api/admin/products > GET /api/admin/products > Successful requests
filters by search term
passed
0.004s
/api/admin/products > GET /api/admin/products > Successful requests
filters by low stock when lowStockOnly=true
passed
0.003s
/api/admin/products > GET /api/admin/products > Successful requests
combines search and low stock filters
passed
0.004s
/api/admin/products > GET /api/admin/products > Successful requests
includes reorderLevel in response
passed
0.003s
/api/admin/products > GET /api/admin/products > Error handling
returns 500 on database error
passed
0.1s
/api/admin/products > GET /api/admin/products > Error handling
returns generic error for non-Error objects
passed
0.056s
/api/admin/products > POST /api/admin/products > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.004s
/api/admin/products > POST /api/admin/products > Authentication & Authorization
returns 403 for non-admin user
passed
0.003s
/api/admin/products > POST /api/admin/products > Validation
returns 400 when title is missing
passed
0.036s
/api/admin/products > POST /api/admin/products > Validation
returns 400 when price is missing
passed
0.005s
/api/admin/products > POST /api/admin/products > Validation
returns 400 when categoryId is missing
passed
0.047s
/api/admin/products > POST /api/admin/products > Successful creation
creates product with required fields only
passed
0.008s
/api/admin/products > POST /api/admin/products > Successful creation
creates product with all optional fields
passed
0.009s
/api/admin/products > POST /api/admin/products > Successful creation
uses price as discountedPrice when not provided
passed
0.045s
/api/admin/products > POST /api/admin/products > Successful creation
defaults stock to 0 when not provided
passed
0.005s
/api/admin/products > POST /api/admin/products > Error handling
returns 500 on database error
passed
0.006s
/api/admin/products > POST /api/admin/products > Error handling
returns generic error for non-Error objects
passed
0.007s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\metrics\database\__tests__\route.test.ts
5.056s
GET /api/admin/metrics/database
returns database metrics for admin users
passed
0.016s
GET /api/admin/metrics/database
includes query metrics in response
passed
0.007s
GET /api/admin/metrics/database
includes table statistics
passed
0.024s
GET /api/admin/metrics/database
includes health status
passed
0.005s
GET /api/admin/metrics/database
returns degraded status when average query time is high
passed
0.004s
GET /api/admin/metrics/database
returns unhealthy status when critical queries exist
passed
0.005s
GET /api/admin/metrics/database
includes top slowest queries
passed
0.005s
GET /api/admin/metrics/database
truncates long queries in response
passed
0.006s
GET /api/admin/metrics/database
includes query patterns in response
passed
0.004s
GET /api/admin/metrics/database
includes timestamp in response
passed
0.004s
GET /api/admin/metrics/database
fetches recent database errors
passed
0.006s
GET /api/admin/metrics/database
fetches recent performance metrics
passed
0.004s
GET /api/admin/metrics/database
handles database errors gracefully
passed
0.067s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\redux\features\__tests__\productDetails.test.ts
4.328s
product-details slice > initial state
returns the initial state
passed
0.013s
product-details slice > initial state
has empty string values initially
passed
0.004s
product-details slice > initial state
has zero number values initially
passed
0.043s
product-details slice > initial state
has empty arrays initially
passed
0.004s
product-details slice > updateProductDetails
updates product details with full product data
passed
0.007s
product-details slice > updateProductDetails
replaces the entire product value
passed
0.004s
product-details slice > updateProductDetails
overwrites existing product data
passed
0.005s
product-details slice > updateProductDetails
handles product with optional fields
passed
0.005s
product-details slice > updateProductDetails
preserves image arrays correctly
passed
0.005s
product-details slice > updateProductDetails
handles product with no images
passed
0.004s
product-details slice > updateProductDetails
handles decimal prices correctly
passed
0.006s
product-details slice > action creators
creates updateProductDetails action with correct type
passed
0.004s
product-details slice > action creators
includes product as payload
passed
0.003s
product-details slice > action creators
creates updateProductDetails action (camelCase)
passed
0.003s
product-details slice > action creators
creates resetProductDetails action
passed
0.005s
product-details slice > resetProductDetails
resets to initial state
passed
0.005s
product-details slice > resetProductDetails
clears all product data
passed
0.006s
product-details slice > selectors
selectProductDetails returns the product
passed
0.004s
product-details slice > selectors
selectProductDetailsId returns the product id
passed
0.003s
product-details slice > state immutability
does not mutate the previous state
passed
0.004s
product-details slice > state immutability
creates a new state object on update
passed
0.004s
product-details slice > edge cases
handles product with zero values
passed
0.072s
product-details slice > edge cases
handles product with very long title
passed
0.014s
product-details slice > edge cases
handles product with many thumbnails
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\services\__tests__\product.service.test.ts
4.564s
ProductService > getById
returns product with all details when found
passed
0.015s
ProductService > getById
returns null when product not found
passed
0.003s
ProductService > getById
includes images ordered by order field
passed
0.002s
ProductService > getById
includes reviews ordered by createdAt desc
passed
0.002s
ProductService > getProducts
returns paginated products with default pagination
passed
0.004s
ProductService > getProducts
applies custom pagination
passed
0.003s
ProductService > getProducts
filters by categoryId
passed
0.002s
ProductService > getProducts
filters by price range
passed
0.002s
ProductService > getProducts
filters by minPrice only
passed
0.002s
ProductService > getProducts
filters by maxPrice only
passed
0.002s
ProductService > getProducts
filters by search term
passed
0.002s
ProductService > getProducts
combines multiple filters
passed
0.002s
ProductService > getProducts
sorts by price ascending
passed
0.002s
ProductService > getProducts
sorts by price descending
passed
0.001s
ProductService > getProducts
sorts by title
passed
0.001s
ProductService > getProducts
uses default sort by createdAt desc
passed
0.007s
ProductService > getProducts
calculates totalPages correctly
passed
0.002s
ProductService > getRelated
returns related products from same category
passed
0.002s
ProductService > getRelated
excludes current product from related products
passed
0.002s
ProductService > getRelated
uses default limit of 4
passed
0.001s
ProductService > getRelated
orders by createdAt desc
passed
0.001s
ProductService > search
searches products by title, description, and category
passed
0.011s
ProductService > search
returns empty array for query less than 2 characters
passed
0.003s
ProductService > search
returns empty array for empty query
passed
0.002s
ProductService > search
uses default limit of 10
passed
0.002s
ProductService > search
uses custom limit
passed
0.002s
ProductService > search
orders results by title ascending
passed
0.001s
ProductService > search
only includes first image per product
passed
0.002s
ProductService > calculateAverageRating
calculates correct average for multiple reviews
passed
0.006s
ProductService > calculateAverageRating
returns 0 for empty reviews
passed
0.001s
ProductService > calculateAverageRating
returns 0 for null reviews
passed
0.001s
ProductService > calculateAverageRating
returns 0 for undefined reviews
passed
0.001s
ProductService > calculateAverageRating
handles single review
passed
0.002s
ProductService > calculateAverageRating
rounds to one decimal place
passed
0.001s
ProductService > getPriceRange
returns min and max prices
passed
0.002s
ProductService > getPriceRange
returns 0 for min and max when no products
passed
0.001s
ProductService > exists
returns true when product exists
passed
0.002s
ProductService > exists
returns false when product does not exist
passed
0.002s
ProductService > getByIds
returns products matching provided IDs
passed
0.003s
ProductService > getByIds
returns empty array for empty IDs array
passed
0.002s
ProductService > getByIds
includes category, images, and reviews
passed
0.002s
ProductService > getByIds
returns products in any order (not necessarily matching input order)
passed
0.002s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\SLOTrend\__tests__\SLOTrend.test.tsx
4.794s
SLOTrend > rendering
renders the component
passed
0.205s
SLOTrend > rendering
displays SLO name
passed
0.057s
SLOTrend > rendering
displays target value
passed
0.019s
SLOTrend > rendering
displays period label
passed
0.019s
SLOTrend > rendering
renders chart components
passed
0.096s
SLOTrend > summary
displays summary when provided
passed
0.082s
SLOTrend > summary
displays average value
passed
0.05s
SLOTrend > summary
hides summary in compact mode
passed
0.016s
SLOTrend > loading state
shows loading skeleton when loading
passed
0.038s
SLOTrend > loading state
does not show chart when loading
passed
0.009s
SLOTrend > empty state
shows empty message when no data
passed
0.01s
SLOTrend > breach count styling
applies green styling when no breaches
passed
0.035s
SLOTrend > breach count styling
applies red styling when breaches exist
passed
0.055s
Console Log
    at console.error (C:\Users\me\Documents\Projects\elite_events_nextjs\jest.setup.ts:20:17)
    at completeWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:12621:37)
    at runWithFiberInDEV (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:874:13)
    at completeUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17777:19)
    at performUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17658:11)
    at workLoopSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17469:41)
    at renderRootSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17450:11)
    at performWorkOnRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:16504:11)
    at performWorkOnRootViaSchedulerTask (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:18957:7)
    at flushActQueue (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:590:34)
    at process.env.NODE_ENV.exports.act (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:884:10)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\act-compat.js:47:25
    at renderRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:190:26)
    at render (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:292:10)
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\SLOTrend\__tests__\SLOTrend.test.tsx:44:13)
    at Promise.finally.completed (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1557:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1497:10)
    at _callCircusTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1007:40)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at _runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:947:3)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:849:7
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:862:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at run (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:761:3)
    at runAndTransformResultsToJestFormat (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1918:21)
    at jestAdapter (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\runner.js:101:19)
    at runTestInternal (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:275:16)
    at runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:343:7)
    at Object.worker (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:497:12)
The tag <stop> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter.
    at console.error (C:\Users\me\Documents\Projects\elite_events_nextjs\jest.setup.ts:20:17)
    at completeWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:12613:37)
    at runWithFiberInDEV (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:874:13)
    at completeUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17777:19)
    at performUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17658:11)
    at workLoopSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17469:41)
    at renderRootSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17450:11)
    at performWorkOnRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:16504:11)
    at performWorkOnRootViaSchedulerTask (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:18957:7)
    at flushActQueue (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:590:34)
    at process.env.NODE_ENV.exports.act (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:884:10)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\act-compat.js:47:25
    at renderRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:190:26)
    at render (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:292:10)
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\SLOTrend\__tests__\SLOTrend.test.tsx:44:13)
    at Promise.finally.completed (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1557:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1497:10)
    at _callCircusTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1007:40)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at _runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:947:3)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:849:7
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:862:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at run (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:761:3)
    at runAndTransformResultsToJestFormat (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1918:21)
    at jestAdapter (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\runner.js:101:19)
    at runTestInternal (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:275:16)
    at runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:343:7)
    at Object.worker (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:497:12)
<linearGradient /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.
    at console.error (C:\Users\me\Documents\Projects\elite_events_nextjs\jest.setup.ts:20:17)
    at completeWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:12621:37)
    at runWithFiberInDEV (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:874:13)
    at completeUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17777:19)
    at performUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17658:11)
    at workLoopSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17469:41)
    at renderRootSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17450:11)
    at performWorkOnRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:16504:11)
    at performWorkOnRootViaSchedulerTask (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:18957:7)
    at flushActQueue (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:590:34)
    at process.env.NODE_ENV.exports.act (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:884:10)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\act-compat.js:47:25
    at renderRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:190:26)
    at render (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:292:10)
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\SLOTrend\__tests__\SLOTrend.test.tsx:44:13)
    at Promise.finally.completed (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1557:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1497:10)
    at _callCircusTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1007:40)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at _runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:947:3)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:849:7
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:862:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at run (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:761:3)
    at runAndTransformResultsToJestFormat (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1918:21)
    at jestAdapter (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\runner.js:101:19)
    at runTestInternal (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:275:16)
    at runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:343:7)
    at Object.worker (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:497:12)
The tag <linearGradient> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter.
    at console.error (C:\Users\me\Documents\Projects\elite_events_nextjs\jest.setup.ts:20:17)
    at completeWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:12621:37)
    at runWithFiberInDEV (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:874:13)
    at completeUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17777:19)
    at performUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17658:11)
    at workLoopSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17469:41)
    at renderRootSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17450:11)
    at performWorkOnRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:16504:11)
    at performWorkOnRootViaSchedulerTask (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:18957:7)
    at flushActQueue (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:590:34)
    at process.env.NODE_ENV.exports.act (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:884:10)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\act-compat.js:47:25
    at renderRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:190:26)
    at render (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:292:10)
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\SLOTrend\__tests__\SLOTrend.test.tsx:44:13)
    at Promise.finally.completed (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1557:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1497:10)
    at _callCircusTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1007:40)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at _runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:947:3)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:849:7
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:862:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at run (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:761:3)
    at runAndTransformResultsToJestFormat (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1918:21)
    at jestAdapter (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\runner.js:101:19)
    at runTestInternal (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:275:16)
    at runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:343:7)
    at Object.worker (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:497:12)
The tag <defs> is unrecognized in this browser. If you meant to render a React component, start its name with an uppercase letter.
    at console.error (C:\Users\me\Documents\Projects\elite_events_nextjs\jest.setup.ts:20:17)
    at completeWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:12613:37)
    at runWithFiberInDEV (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:874:13)
    at completeUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17777:19)
    at performUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17658:11)
    at workLoopSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17469:41)
    at renderRootSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17450:11)
    at performWorkOnRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:16504:11)
    at performWorkOnRootViaSchedulerTask (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:18957:7)
    at flushActQueue (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:590:34)
    at process.env.NODE_ENV.exports.act (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:884:10)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\act-compat.js:47:25
    at renderRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:190:26)
    at render (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:292:10)
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\SLOTrend\__tests__\SLOTrend.test.tsx:56:13)
    at Promise.finally.completed (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1557:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1497:10)
    at _callCircusTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1007:40)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at _runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:947:3)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:849:7
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:862:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at run (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:761:3)
    at runAndTransformResultsToJestFormat (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1918:21)
    at jestAdapter (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\runner.js:101:19)
    at runTestInternal (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:275:16)
    at runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:343:7)
    at Object.worker (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:497:12)
<linearGradient /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.
    at console.error (C:\Users\me\Documents\Projects\elite_events_nextjs\jest.setup.ts:20:17)
    at completeWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:12613:37)
    at runWithFiberInDEV (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:874:13)
    at completeUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17777:19)
    at performUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17658:11)
    at workLoopSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17469:41)
    at renderRootSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17450:11)
    at performWorkOnRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:16504:11)
    at performWorkOnRootViaSchedulerTask (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:18957:7)
    at flushActQueue (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:590:34)
    at process.env.NODE_ENV.exports.act (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:884:10)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\act-compat.js:47:25
    at renderRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:190:26)
    at render (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:292:10)
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\SLOTrend\__tests__\SLOTrend.test.tsx:68:13)
    at Promise.finally.completed (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1557:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1497:10)
    at _callCircusTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1007:40)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at _runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:947:3)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:849:7
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:862:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at run (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:761:3)
    at runAndTransformResultsToJestFormat (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1918:21)
    at jestAdapter (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\runner.js:101:19)
    at runTestInternal (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:275:16)
    at runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:343:7)
    at Object.worker (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:497:12)
<linearGradient /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.
    at console.error (C:\Users\me\Documents\Projects\elite_events_nextjs\jest.setup.ts:20:17)
    at completeWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:12613:37)
    at runWithFiberInDEV (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:874:13)
    at completeUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17777:19)
    at performUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17658:11)
    at workLoopSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17469:41)
    at renderRootSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17450:11)
    at performWorkOnRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:16504:11)
    at performWorkOnRootViaSchedulerTask (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:18957:7)
    at flushActQueue (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:590:34)
    at process.env.NODE_ENV.exports.act (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:884:10)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\act-compat.js:47:25
    at renderRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:190:26)
    at render (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:292:10)
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\SLOTrend\__tests__\SLOTrend.test.tsx:80:13)
    at Promise.finally.completed (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1557:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1497:10)
    at _callCircusTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1007:40)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at _runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:947:3)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:849:7
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:862:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at run (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:761:3)
    at runAndTransformResultsToJestFormat (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1918:21)
    at jestAdapter (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\runner.js:101:19)
    at runTestInternal (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:275:16)
    at runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:343:7)
    at Object.worker (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:497:12)
<linearGradient /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.
    at console.error (C:\Users\me\Documents\Projects\elite_events_nextjs\jest.setup.ts:20:17)
    at completeWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:12613:37)
    at runWithFiberInDEV (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:874:13)
    at completeUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17777:19)
    at performUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17658:11)
    at workLoopSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17469:41)
    at renderRootSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17450:11)
    at performWorkOnRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:16504:11)
    at performWorkOnRootViaSchedulerTask (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:18957:7)
    at flushActQueue (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:590:34)
    at process.env.NODE_ENV.exports.act (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:884:10)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\act-compat.js:47:25
    at renderRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:190:26)
    at render (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:292:10)
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\SLOTrend\__tests__\SLOTrend.test.tsx:93:13)
    at Promise.finally.completed (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1557:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1497:10)
    at _callCircusTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1007:40)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at _runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:947:3)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:849:7
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:862:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at run (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:761:3)
    at runAndTransformResultsToJestFormat (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1918:21)
    at jestAdapter (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\runner.js:101:19)
    at runTestInternal (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:275:16)
    at runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:343:7)
    at Object.worker (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:497:12)
<linearGradient /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.
    at console.error (C:\Users\me\Documents\Projects\elite_events_nextjs\jest.setup.ts:20:17)
    at completeWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:12613:37)
    at runWithFiberInDEV (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:874:13)
    at completeUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17777:19)
    at performUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17658:11)
    at workLoopSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17469:41)
    at renderRootSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17450:11)
    at performWorkOnRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:16504:11)
    at performWorkOnRootViaSchedulerTask (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:18957:7)
    at flushActQueue (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:590:34)
    at process.env.NODE_ENV.exports.act (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:884:10)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\act-compat.js:47:25
    at renderRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:190:26)
    at render (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:292:10)
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\SLOTrend\__tests__\SLOTrend.test.tsx:107:13)
    at Promise.finally.completed (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1557:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1497:10)
    at _callCircusTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1007:40)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at _runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:947:3)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:849:7
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:862:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at run (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:761:3)
    at runAndTransformResultsToJestFormat (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1918:21)
    at jestAdapter (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\runner.js:101:19)
    at runTestInternal (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:275:16)
    at runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:343:7)
    at Object.worker (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:497:12)
<linearGradient /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.
    at console.error (C:\Users\me\Documents\Projects\elite_events_nextjs\jest.setup.ts:20:17)
    at completeWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:12613:37)
    at runWithFiberInDEV (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:874:13)
    at completeUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17777:19)
    at performUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17658:11)
    at workLoopSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17469:41)
    at renderRootSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17450:11)
    at performWorkOnRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:16504:11)
    at performWorkOnRootViaSchedulerTask (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:18957:7)
    at flushActQueue (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:590:34)
    at process.env.NODE_ENV.exports.act (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:884:10)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\act-compat.js:47:25
    at renderRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:190:26)
    at render (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:292:10)
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\SLOTrend\__tests__\SLOTrend.test.tsx:124:13)
    at Promise.finally.completed (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1557:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1497:10)
    at _callCircusTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1007:40)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at _runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:947:3)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:849:7
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:862:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at run (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:761:3)
    at runAndTransformResultsToJestFormat (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1918:21)
    at jestAdapter (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\runner.js:101:19)
    at runTestInternal (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:275:16)
    at runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:343:7)
    at Object.worker (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:497:12)
<linearGradient /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.
    at console.error (C:\Users\me\Documents\Projects\elite_events_nextjs\jest.setup.ts:20:17)
    at completeWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:12613:37)
    at runWithFiberInDEV (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:874:13)
    at completeUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17777:19)
    at performUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17658:11)
    at workLoopSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17469:41)
    at renderRootSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17450:11)
    at performWorkOnRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:16504:11)
    at performWorkOnRootViaSchedulerTask (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:18957:7)
    at flushActQueue (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:590:34)
    at process.env.NODE_ENV.exports.act (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:884:10)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\act-compat.js:47:25
    at renderRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:190:26)
    at render (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:292:10)
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\SLOTrend\__tests__\SLOTrend.test.tsx:137:13)
    at Promise.finally.completed (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1557:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1497:10)
    at _callCircusTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1007:40)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at _runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:947:3)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:849:7
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:862:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at run (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:761:3)
    at runAndTransformResultsToJestFormat (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1918:21)
    at jestAdapter (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\runner.js:101:19)
    at runTestInternal (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:275:16)
    at runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:343:7)
    at Object.worker (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:497:12)
<linearGradient /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.
    at console.error (C:\Users\me\Documents\Projects\elite_events_nextjs\jest.setup.ts:20:17)
    at completeWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:12613:37)
    at runWithFiberInDEV (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:874:13)
    at completeUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17777:19)
    at performUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17658:11)
    at workLoopSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17469:41)
    at renderRootSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17450:11)
    at performWorkOnRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:16504:11)
    at performWorkOnRootViaSchedulerTask (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:18957:7)
    at flushActQueue (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:590:34)
    at process.env.NODE_ENV.exports.act (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:884:10)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\act-compat.js:47:25
    at renderRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:190:26)
    at render (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:292:10)
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\SLOTrend\__tests__\SLOTrend.test.tsx:197:13)
    at Promise.finally.completed (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1557:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1497:10)
    at _callCircusTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1007:40)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at _runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:947:3)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:849:7
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:862:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at run (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:761:3)
    at runAndTransformResultsToJestFormat (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1918:21)
    at jestAdapter (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\runner.js:101:19)
    at runTestInternal (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:275:16)
    at runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:343:7)
    at Object.worker (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:497:12)
<linearGradient /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.
    at console.error (C:\Users\me\Documents\Projects\elite_events_nextjs\jest.setup.ts:20:17)
    at completeWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:12613:37)
    at runWithFiberInDEV (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:874:13)
    at completeUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17777:19)
    at performUnitOfWork (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17658:11)
    at workLoopSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17469:41)
    at renderRootSync (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:17450:11)
    at performWorkOnRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:16504:11)
    at performWorkOnRootViaSchedulerTask (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react-dom\cjs\react-dom-client.development.js:18957:7)
    at flushActQueue (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:590:34)
    at process.env.NODE_ENV.exports.act (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\react\cjs\react.development.js:884:10)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\act-compat.js:47:25
    at renderRoot (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:190:26)
    at render (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\@testing-library\react\dist\pure.js:292:10)
    at Object.<anonymous> (C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\SLOTrend\__tests__\SLOTrend.test.tsx:211:13)
    at Promise.finally.completed (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1557:28)
    at new Promise (<anonymous>)
    at callAsyncCircusFn (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1497:10)
    at _callCircusTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1007:40)
    at processTicksAndRejections (node:internal/process/task_queues:105:5)
    at _runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:947:3)
    at C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:849:7
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:862:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at _runTestsForDescribeBlock (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:857:11)
    at run (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:761:3)
    at runAndTransformResultsToJestFormat (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\jestAdapterInit.js:1918:21)
    at jestAdapter (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-circus\build\runner.js:101:19)
    at runTestInternal (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:275:16)
    at runTest (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:343:7)
    at Object.worker (C:\Users\me\Documents\Projects\elite_events_nextjs\node_modules\jest-runner\build\testWorker.js:497:12)
<linearGradient /> is using incorrect casing. Use PascalCase for React components, or lowercase for HTML elements.
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\hero\__tests__\route.test.ts
4.857s
/api/hero > GET /api/hero
returns active carousel items, feature cards, and promo banners
passed
0.022s
/api/hero > GET /api/hero
returns carousel item with correct structure
passed
0.009s
/api/hero > GET /api/hero
returns feature card with correct structure
passed
0.007s
/api/hero > GET /api/hero
uses product title as headline when headline is null
passed
0.005s
/api/hero > GET /api/hero
calculates discount percentage when badgeText is null
passed
0.004s
/api/hero > GET /api/hero
returns null badgeText when no discount
passed
0.004s
/api/hero > GET /api/hero
sorts feature cards with top before bottom
passed
0.004s
/api/hero > GET /api/hero
returns empty arrays when no items exist
passed
0.005s
/api/hero > GET /api/hero
returns promo banner with correct structure
passed
0.004s
/api/hero > GET /api/hero
returns promo banner with custom ctaLink when no product
passed
0.005s
/api/hero > GET /api/hero > Error handling
returns 500 on database error
passed
0.049s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\performance\PerformanceMetricCard\__tests__\PerformanceMetricCard.test.tsx
6.286s
PerformanceMetricCard > basic rendering
renders title and value
passed
0.24s
PerformanceMetricCard > basic rendering
renders unit when provided
passed
0.053s
PerformanceMetricCard > basic rendering
renders subtitle when provided
passed
0.009s
PerformanceMetricCard > basic rendering
renders without subtitle
passed
0.009s
PerformanceMetricCard > basic rendering
renders numeric value
passed
0.066s
PerformanceMetricCard > threshold-based colors
shows green for values below good threshold
passed
0.023s
PerformanceMetricCard > threshold-based colors
shows yellow for values between good and warning thresholds
passed
0.008s
PerformanceMetricCard > threshold-based colors
shows red for values above warning threshold
passed
0.017s
PerformanceMetricCard > threshold-based colors
applies custom valueClassName over thresholds
passed
0.008s
PerformanceMetricCard > icon
renders icon when provided
passed
0.007s
PerformanceMetricCard > trend indicator
renders trend with up direction
passed
0.011s
PerformanceMetricCard > trend indicator
renders trend with down direction
passed
0.022s
PerformanceMetricCard > trend indicator
renders trend with stable direction
passed
0.012s
PerformanceMetricCard > trend indicator
applies positive color when isPositive is true
passed
0.016s
PerformanceMetricCard > trend indicator
applies negative color when isPositive is false
passed
0.062s
PerformanceMetricCard > loading state
renders skeleton when loading
passed
0.023s
PerformanceMetricCard > loading state
hides content when loading
passed
0.014s
PerformanceMetricCard > className prop
applies custom className
passed
0.007s
PerformanceMetricCard > className prop
preserves default classes with custom className
passed
0.006s
PerformanceMetricCard > accessibility
has proper structure
passed
0.01s
PerformanceMetricCard > accessibility
shows aria-busy when loading
passed
0.005s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\products\__tests__\route.test.ts
5.524s
GET /api/products > Basic functionality
returns paginated products
passed
0.039s
GET /api/products > Basic functionality
supports pagination parameters
passed
0.015s
GET /api/products > Basic functionality
handles empty results
passed
0.005s
GET /api/products > Filtering
filters by category
passed
0.011s
GET /api/products > Filtering
filters by price range
passed
0.009s
GET /api/products > Filtering
filters by search query
passed
0.035s
GET /api/products > Sorting
sorts by latest (default)
passed
0.022s
GET /api/products > Sorting
sorts by bestseller (review count)
passed
0.006s
GET /api/products > Rate limiting
returns 429 when rate limit exceeded
passed
0.012s
GET /api/products > Error handling
returns 500 on database error
passed
0.14s
POST /api/products > Admin authorization
returns 401 for unauthenticated users
passed
0.005s
POST /api/products > Admin authorization
returns 403 for non-admin users
passed
0.005s
POST /api/products > Product creation
creates product with valid data
passed
0.02s
POST /api/products > Product creation
creates product with images
passed
0.01s
POST /api/products > Validation
rejects missing title
passed
0.008s
POST /api/products > Validation
rejects negative price
passed
0.008s
POST /api/products > Error handling
returns 500 on database error
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\checkout\__tests__\route.test.ts
7.921s
POST /api/checkout > Authentication
returns 401 for unauthenticated request
passed
0.035s
POST /api/checkout > Authentication
returns 401 for session without user id
passed
0.009s
POST /api/checkout > Request Validation
rejects missing shipping address
passed
0.017s
POST /api/checkout > Request Validation
rejects missing billing address
passed
0.015s
POST /api/checkout > Request Validation
rejects invalid shipping address - short street
passed
0.011s
POST /api/checkout > Cart Validation
returns 422 for empty cart
passed
0.007s
POST /api/checkout > Inventory Validation
returns 400 when product has insufficient stock
passed
0.011s
POST /api/checkout > Successful Checkout
returns 201 with order and payment details on success
passed
0.009s
POST /api/checkout > Successful Checkout
creates Stripe payment intent with correct amount
passed
0.008s
POST /api/checkout > Error Handling
returns 500 on database error during cart fetch
passed
0.191s
POST /api/checkout > Error Handling
returns 500 on database transaction error
passed
0.006s
POST /api/checkout > Error Handling
returns 500 on Stripe payment intent creation failure
passed
0.007s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\forms\__tests__\validators.test.ts
6.471s
validators > email
accepts valid email
passed
0.007s
validators > email
rejects empty email
passed
0.101s
validators > email
rejects invalid email
passed
0.007s
validators > password
accepts valid password
passed
0.003s
validators > password
rejects short password
passed
0.005s
validators > password
rejects password without uppercase
passed
0.005s
validators > password
rejects password without lowercase
passed
0.005s
validators > password
rejects password without number
passed
0.004s
validators > phone
accepts valid phone numbers
passed
0.003s
validators > phone
accepts empty string (optional)
passed
0.002s
validators > phone
rejects invalid characters
passed
0.003s
validators > name
accepts valid names
passed
0.003s
validators > name
rejects empty name
passed
0.003s
validators > name
rejects name with invalid characters
passed
0.004s
validators > address
accepts valid address
passed
0.005s
validators > address
accepts zip code with extension
passed
0.002s
validators > address
rejects missing street
passed
0.002s
validators > address
rejects invalid zip code
passed
0.034s
validators > price
accepts valid prices
passed
0.009s
validators > price
rejects negative price
passed
0.003s
validators > price
rejects price exceeding maximum
passed
0.003s
validators > quantity
accepts valid quantities
passed
0.01s
validators > quantity
rejects negative quantity
passed
0.002s
validators > quantity
rejects non-integer quantity
passed
0.006s
validators > url
accepts valid URLs
passed
0.013s
validators > url
accepts empty string (optional)
passed
0.002s
validators > url
rejects invalid URLs
passed
0.012s
validators > slug
accepts valid slugs
passed
0.002s
validators > slug
rejects empty slug
passed
0.004s
validators > slug
rejects invalid slugs
passed
0.004s
validators > rating
accepts valid ratings
passed
0.004s
validators > rating
rejects rating below 1
passed
0.002s
validators > rating
rejects rating above 5
passed
0.002s
validators > rating
rejects non-integer rating
passed
0.003s
schemas > login
accepts valid login data
passed
0.005s
schemas > login
accepts optional rememberMe
passed
0.016s
schemas > login
rejects missing email
passed
0.005s
schemas > login
rejects missing password
passed
0.003s
schemas > register
accepts valid registration data
passed
0.003s
schemas > register
rejects mismatched passwords
passed
0.003s
schemas > register
rejects unaccepted terms
passed
0.003s
schemas > profile
accepts valid profile data
passed
0.003s
schemas > profile
accepts empty phone
passed
0.001s
schemas > changePassword
accepts valid password change
passed
0.003s
schemas > changePassword
rejects same old and new password
passed
0.002s
schemas > changePassword
rejects mismatched confirmation
passed
0.002s
schemas > contactForm
accepts valid contact form data
passed
0.003s
schemas > contactForm
rejects short message
passed
0.011s
schemas > review
accepts valid review data
passed
0.004s
schemas > review
rejects invalid rating
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\logging\__tests__\clientLogger.test.ts
6.396s
ClientLogger > initialization
should create a logger instance
passed
0.009s
ClientLogger > initialization
should generate a session ID
passed
0.008s
ClientLogger > initialization
should store session ID in sessionStorage
passed
0.023s
ClientLogger > initialization
should reuse existing session ID from sessionStorage
passed
0.005s
ClientLogger > logging methods
should have debug method
passed
0.005s
ClientLogger > logging methods
should have info method
passed
0.072s
ClientLogger > logging methods
should have warn method
passed
0.005s
ClientLogger > logging methods
should have error method
passed
0.004s
ClientLogger > logging methods
should add entries to buffer
passed
0.004s
ClientLogger > logging methods
should include data in log entry
passed
0.003s
ClientLogger > specialized methods
should log user actions
passed
0.004s
ClientLogger > specialized methods
should log page views
passed
0.004s
ClientLogger > specialized methods
should log metrics
passed
0.057s
ClientLogger > specialized methods
should log component errors
passed
0.213s
ClientLogger > error handling
should handle Error objects
passed
0.005s
ClientLogger > error handling
should handle error method with data
passed
0.007s
ClientLogger > error handling
should handle error method without error object
passed
0.007s
ClientLogger > buffer management
should flush buffer on error level
passed
0.028s
ClientLogger > buffer management
should flush when buffer reaches max size
passed
0.007s
ClientLogger > buffer management
should flush on timer interval
passed
0.005s
ClientLogger > buffer management
should not flush empty buffer
passed
0.003s
ClientLogger > flush mechanism
should use sendBeacon for flushing
passed
0.004s
ClientLogger > flush mechanism
should fall back to fetch if sendBeacon fails
passed
0.004s
ClientLogger > flush mechanism
should clear buffer after successful flush
passed
0.004s
ClientLogger > configuration
should accept custom configuration
passed
0.006s
ClientLogger > configuration
should update configuration via configure method
passed
0.003s
ClientLogger > configuration
should respect minLevel configuration
passed
0.006s
ClientLogger > destroy
should clear interval timer
passed
0.007s
ClientLogger > destroy
should flush remaining logs
passed
0.005s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\database\__tests__\metrics.test.ts
5.313s
Database Metrics > trackSlowQuery
tracks a query metric
passed
0.009s
Database Metrics > trackSlowQuery
tracks multiple query metrics
passed
0.037s
Database Metrics > trackSlowQuery
maintains max metrics limit
passed
0.012s
Database Metrics > getQueryMetrics
returns zero values when no metrics tracked
passed
0.006s
Database Metrics > getQueryMetrics
categorizes queries by duration thresholds
passed
0.004s
Database Metrics > getQueryMetrics
calculates average duration correctly
passed
0.003s
Database Metrics > getQueryMetrics
returns top slowest queries sorted by duration
passed
0.01s
Database Metrics > getQueryMetrics
returns recent queries sorted by timestamp
passed
0.005s
Database Metrics > getQueryMetrics
analyzes query patterns
passed
0.004s
Database Metrics > getMetricsSummary
returns healthy status when no metrics
passed
0.031s
Database Metrics > getMetricsSummary
returns healthy status for fast queries
passed
0.004s
Database Metrics > getMetricsSummary
returns unhealthy status when average is too high
passed
0.004s
Database Metrics > getMetricsSummary
returns unhealthy status when too many slow queries
passed
0.055s
Database Metrics > clearMetrics
clears all tracked metrics
passed
0.002s
Database Metrics > QUERY_THRESHOLDS
has correct threshold values
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\auth\__tests__\resend-verification.test.ts
5.72s
POST /api/auth/resend-verification > Successful requests
resends verification email for unverified user
passed
0.04s
POST /api/auth/resend-verification > Successful requests
generates new verification token
passed
0.01s
POST /api/auth/resend-verification > Successful requests
returns same message for non-existent user (prevents email enumeration)
passed
0.016s
POST /api/auth/resend-verification > Already verified user
returns error for already verified email
passed
0.01s
POST /api/auth/resend-verification > Validation errors
rejects invalid email format
passed
0.007s
POST /api/auth/resend-verification > Validation errors
rejects missing email
passed
0.006s
POST /api/auth/resend-verification > Validation errors
rejects empty email
passed
0.005s
POST /api/auth/resend-verification > Email normalization
converts email to lowercase for lookup
passed
0.004s
POST /api/auth/resend-verification > Rate limiting
enforces strict rate limit (3 requests per hour)
passed
0.005s
POST /api/auth/resend-verification > Rate limiting
includes rate limit headers
passed
0.005s
POST /api/auth/resend-verification > Error handling
returns 500 on database error
passed
0.13s
POST /api/auth/resend-verification > Error handling
returns success even if email sending fails
passed
0.025s
POST /api/auth/resend-verification > Error handling
returns 500 on update failure
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\auth\__tests__\account-lockout.test.ts
5.988s
account-lockout > LOCKOUT_CONFIG
has correct configuration values
passed
0.016s
account-lockout > LOCKOUT_CONFIG
exports frozen config (as const)
passed
0.007s
account-lockout > isAccountLocked
returns false when user has no lockout
passed
0.01s
account-lockout > isAccountLocked
returns false when lockout has expired
passed
0.009s
account-lockout > isAccountLocked
returns true when account is currently locked
passed
0.013s
account-lockout > isAccountLocked
returns false when user not found
passed
0.004s
account-lockout > isAccountLocked
unlocks account automatically when lockout expires
passed
0.005s
account-lockout > getRemainingLockoutTime
returns remaining time in seconds
passed
0.006s
account-lockout > getRemainingLockoutTime
returns null when user has no lockout
passed
0.007s
account-lockout > getRemainingLockoutTime
returns null when lockout has expired
passed
0.004s
account-lockout > getRemainingLockoutTime
returns null when user not found
passed
0.017s
account-lockout > getRemainingLockoutTime
rounds up to nearest second
passed
0.004s
account-lockout > getRemainingLockoutTime
handles exactly 1 second remaining
passed
0.004s
account-lockout > recordFailedLoginAttempt
increments failed attempt count
passed
0.009s
account-lockout > recordFailedLoginAttempt
locks account on 5th failed attempt
passed
0.01s
account-lockout > recordFailedLoginAttempt
resets counter if enough time has passed
passed
0.014s
account-lockout > recordFailedLoginAttempt
returns false when user not found
passed
0.004s
account-lockout > recordFailedLoginAttempt
increments attempts on failed login when not at threshold
passed
0.004s
account-lockout > resetFailedLoginAttempts
resets failed attempts and lockout
passed
0.004s
account-lockout > resetFailedLoginAttempts
handles different user IDs
passed
0.004s
account-lockout > resetFailedLoginAttempts
handles database errors
passed
0.063s
account-lockout > handleLoginAttempt
returns neutral response when user does not exist
passed
0.007s
account-lockout > handleLoginAttempt
returns locked status when account is already locked
passed
0.006s
account-lockout > handleLoginAttempt
resets attempts on successful login
passed
0.006s
account-lockout > handleLoginAttempt
normalizes email to lowercase
passed
0.006s
account-lockout > Integration scenarios
handles automatic unlock after time passes
passed
0.005s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\redux\__tests__\store.test.tsx
6.787s
Redux Store > Store Configuration
should create store with correct reducers
passed
0.007s
Redux Store > Store Configuration
should have all required reducer keys
passed
0.005s
Redux Store > Store Configuration
should initialize with correct initial states
passed
0.005s
Redux Store > Store Configuration
should allow dispatching actions
passed
0.007s
Redux Store > Store Configuration
should have correct state shape
passed
0.003s
Redux Store > Type Exports
should export RootState type
passed
0.002s
Redux Store > Type Exports
should export AppDispatch type
passed
0.002s
Redux Store > Custom Hooks > useAppSelector
should select state from store
passed
0.056s
Redux Store > Custom Hooks > useAppSelector
should select nested state properties
passed
0.008s
Redux Store > Custom Hooks > useAppSelector
should work with derived selectors
passed
0.007s
Redux Store > Custom Hooks > useAppDispatch
should return dispatch function
passed
0.006s
Redux Store > Custom Hooks > useAppDispatch
should dispatch actions successfully
passed
0.011s
Redux Store > Custom Hooks > useAppDispatch
should have correct type
passed
0.016s
Redux Store > Store Behavior
should handle state updates correctly
passed
0.003s
Redux Store > Store Behavior
should maintain state immutability
passed
0.001s
Redux Store > Store Behavior
should support subscribing to state changes
passed
0.003s
Redux Store > Store Behavior
should allow replacing reducer
passed
0.002s
Redux Store > Integration
should work with all reducers together
passed
0.003s
Redux Store > Integration
should handle concurrent dispatches
passed
0.002s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\forms\__tests__\useForm.test.ts
5.826s
useForm > initialization
initializes with provided values
passed
0.056s
useForm > initialization
initializes with empty errors and touched
passed
0.024s
useForm > initialization
starts as not dirty
passed
0.01s
useForm > initialization
starts as valid (no errors set yet)
passed
0.012s
useForm > setValue
updates field value
passed
0.021s
useForm > setValue
marks form as dirty when value changes
passed
0.013s
useForm > setTouched
marks field as touched
passed
0.02s
useForm > setTouched
validates field on blur when validateOnBlur is true
passed
0.117s
useForm > setError
sets field error manually
passed
0.012s
useForm > setError
clears field error when set to null
passed
0.011s
useForm > validateField
returns null for valid field
passed
0.026s
useForm > validateField
returns error message for invalid field
passed
0.009s
useForm > validateForm
returns true for valid form
passed
0.011s
useForm > validateForm
returns false and sets errors for invalid form
passed
0.015s
useForm > validateForm
sets isValid to false after validation with errors
passed
0.009s
useForm > handleSubmit
prevents default form event
passed
0.009s
useForm > handleSubmit
calls onSubmit with values when valid
passed
0.012s
useForm > handleSubmit
does not call onSubmit when invalid
passed
0.008s
useForm > handleSubmit
marks all fields as touched on submit
passed
0.009s
useForm > handleSubmit
sets isSubmitting to false after completion
passed
0.013s
useForm > resetForm
resets values to initial values
passed
0.008s
useForm > resetForm
clears errors and touched
passed
0.008s
useForm > resetForm
resets isDirty to false
passed
0.007s
useForm > getFieldProps
returns correct props for input binding
passed
0.029s
useForm > getFieldProps
returns aria-invalid true when field has error and is touched
passed
0.007s
useForm > getFieldState
returns complete field state
passed
0.009s
useForm > getFieldState
returns untouched state for new fields
passed
0.008s
useForm > callbacks
calls onSubmitSuccess on successful submission
passed
0.016s
useForm > callbacks
calls onSubmitError on submission error
passed
0.067s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\seo\__tests__\json-ld-schemas.test.ts
5.171s
JSON-LD Schema Generators > generateProductSchema
should generate valid Product schema
passed
0.026s
JSON-LD Schema Generators > generateProductSchema
should include product name
passed
0.004s
JSON-LD Schema Generators > generateProductSchema
should include product description
passed
0.002s
JSON-LD Schema Generators > generateProductSchema
should include SKU
passed
0.023s
JSON-LD Schema Generators > generateProductSchema
should include brand
passed
0.003s
JSON-LD Schema Generators > generateProductSchema
should include offer with discounted price
passed
0.035s
JSON-LD Schema Generators > generateProductSchema
should include availability for in-stock product
passed
0.002s
JSON-LD Schema Generators > generateProductSchema
should include out-of-stock availability
passed
0.003s
JSON-LD Schema Generators > generateProductSchema
should include aggregate rating when reviews exist
passed
0.003s
JSON-LD Schema Generators > generateProductSchema
should not include aggregate rating when no reviews
passed
0.002s
JSON-LD Schema Generators > generateProductSchema
should include images array
passed
0.002s
JSON-LD Schema Generators > generateOrganizationSchema
should generate valid Organization schema
passed
0.002s
JSON-LD Schema Generators > generateOrganizationSchema
should include organization name
passed
0.002s
JSON-LD Schema Generators > generateOrganizationSchema
should include organization URL
passed
0.023s
JSON-LD Schema Generators > generateOrganizationSchema
should include logo
passed
0.001s
JSON-LD Schema Generators > generateOrganizationSchema
should include contact point
passed
0.002s
JSON-LD Schema Generators > generateOrganizationSchema
should include social links
passed
0.002s
JSON-LD Schema Generators > generateWebsiteSchema
should generate valid WebSite schema
passed
0.002s
JSON-LD Schema Generators > generateWebsiteSchema
should include website name
passed
0.002s
JSON-LD Schema Generators > generateWebsiteSchema
should include search action
passed
0.002s
JSON-LD Schema Generators > generateWebsiteSchema
should include search URL template
passed
0.002s
JSON-LD Schema Generators > generateBreadcrumbSchema
should generate valid BreadcrumbList schema
passed
0.002s
JSON-LD Schema Generators > generateBreadcrumbSchema
should include correct number of items
passed
0.002s
JSON-LD Schema Generators > generateBreadcrumbSchema
should include correct positions
passed
0.002s
JSON-LD Schema Generators > generateBreadcrumbSchema
should include item names
passed
0.002s
JSON-LD Schema Generators > generateBreadcrumbSchema
should include absolute URLs
passed
0.002s
JSON-LD Schema Generators > generateFAQSchema
should generate valid FAQPage schema
passed
0.012s
JSON-LD Schema Generators > generateFAQSchema
should include correct number of questions
passed
0.001s
JSON-LD Schema Generators > generateFAQSchema
should include questions with correct type
passed
0.002s
JSON-LD Schema Generators > generateFAQSchema
should include answers with correct type
passed
0.006s
JSON-LD Schema Generators > generateFAQSchema
should include question text
passed
0.002s
JSON-LD Schema Generators > generateFAQSchema
should include answer text
passed
0.002s
JSON-LD Schema Generators > generateCollectionPageSchema
should generate valid CollectionPage schema
passed
0.002s
JSON-LD Schema Generators > generateCollectionPageSchema
should include collection name
passed
0.001s
JSON-LD Schema Generators > generateCollectionPageSchema
should include description
passed
0.001s
JSON-LD Schema Generators > generateCollectionPageSchema
should include item list when product URLs provided
passed
0.002s
JSON-LD Schema Generators > generateCollectionPageSchema
should not include item list when no product URLs
passed
0.002s
JSON-LD Schema Generators > combineSchemas
should combine multiple schemas into array
passed
0.002s
JSON-LD Schema Generators > combineSchemas
should preserve individual schema types
passed
0.002s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\admin\monitoring\errors\__tests__\page.test.tsx
5.637s
ErrorMonitoringPage > rendering
renders the page title
passed
0.126s
ErrorMonitoringPage > rendering
renders ErrorDashboard component
passed
0.024s
ErrorMonitoringPage > rendering
has correct page layout with padding
passed
0.014s
ErrorMonitoringPage > data fetching
fetches total error count
passed
0.004s
ErrorMonitoringPage > data fetching
fetches errors for today
passed
0.008s
ErrorMonitoringPage > data fetching
fetches open errors count
passed
0.006s
ErrorMonitoringPage > data fetching
fetches errors grouped by category
passed
0.003s
ErrorMonitoringPage > data fetching
fetches top 10 open errors
passed
0.003s
ErrorMonitoringPage > data fetching
limits errorsByCategory to last 7 days
passed
0.004s
ErrorMonitoringPage > stats passed to ErrorDashboard
passes totalErrors to ErrorDashboard
passed
0.009s
ErrorMonitoringPage > stats passed to ErrorDashboard
passes errorsToday to ErrorDashboard
passed
0.011s
ErrorMonitoringPage > stats passed to ErrorDashboard
passes openErrors to ErrorDashboard
passed
0.036s
ErrorMonitoringPage > stats passed to ErrorDashboard
passes errorsByCategory to ErrorDashboard
passed
0.016s
ErrorMonitoringPage > stats passed to ErrorDashboard
passes topErrors with ISO string lastSeen
passed
0.013s
ErrorMonitoringPage > edge cases
handles zero errors gracefully
passed
0.021s
ErrorMonitoringPage > edge cases
handles large numbers
passed
0.009s
getErrorStats helper (integration)
runs all queries in parallel using Promise.all
passed
0.017s
getErrorStats helper (integration)
converts Date objects to ISO strings for serialization
passed
0.032s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\monitoring\__tests__\clientErrorCapture.test.ts
5.145s
initClientErrorCapture > initialization
sets up window.onerror handler
passed
0.01s
initClientErrorCapture > initialization
sets up unhandled rejection handler
passed
0.005s
initClientErrorCapture > window.onerror handler
reports error to API endpoint
passed
0.054s
initClientErrorCapture > window.onerror handler
includes error message in report
passed
0.022s
initClientErrorCapture > window.onerror handler
includes stack trace if Error object provided
passed
0.004s
initClientErrorCapture > window.onerror handler
includes URL in report
passed
0.019s
initClientErrorCapture > window.onerror handler
includes user agent in report
passed
0.005s
initClientErrorCapture > window.onerror handler
includes timestamp in report
passed
0.012s
initClientErrorCapture > window.onerror handler
includes metadata with source, lineno, colno
passed
0.006s
initClientErrorCapture > window.onerror handler
returns false to allow default error handling
passed
0.009s
initClientErrorCapture > window.onerror handler
handles missing Error object gracefully
passed
0.005s
initClientErrorCapture > unhandled promise rejection handler
sets up onunhandledrejection handler
passed
0.004s
initClientErrorCapture > unhandled promise rejection handler
reports rejection with error reason
passed
0.027s
initClientErrorCapture > unhandled promise rejection handler
uses default message when reason has no message
passed
0.003s
initClientErrorCapture > unhandled promise rejection handler
includes stack trace from reason
passed
0.003s
initClientErrorCapture > unhandled promise rejection handler
includes metadata indicating unhandled rejection type
passed
0.004s
initClientErrorCapture > error reporting resilience
does not throw when fetch fails
passed
0.007s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\reviews\__tests__\route.test.ts
4.731s
GET /api/reviews > Product reviews
returns reviews for a product
passed
0.028s
GET /api/reviews > Product reviews
supports pagination
passed
0.012s
GET /api/reviews > Product reviews
supports rating filter
passed
0.004s
GET /api/reviews > Product reviews
supports sorting
passed
0.012s
GET /api/reviews > User reviews
returns reviews by user
passed
0.003s
GET /api/reviews > User reviews
supports pagination for user reviews
passed
0.012s
GET /api/reviews > Validation
returns 400 when no productId or userId
passed
0.004s
GET /api/reviews > Error handling
returns 500 on database error
passed
0.061s
POST /api/reviews > Authentication
returns 401 for unauthenticated request
passed
0.004s
POST /api/reviews > Authentication
returns 401 for session without email
passed
0.041s
POST /api/reviews > Authentication
returns 404 when user not found
passed
0.004s
POST /api/reviews > Validation
returns 400 when productId is missing
passed
0.005s
POST /api/reviews > Validation
returns 400 when rating is missing
passed
0.013s
POST /api/reviews > Successful creation
creates a review successfully
passed
0.006s
POST /api/reviews > Successful creation
creates a review without comment
passed
0.006s
POST /api/reviews > Error handling
returns 500 on create error
passed
0.011s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\support\tickets\__tests__\route.test.ts
5.307s
GET /api/support/tickets
returns tickets list for authenticated user
passed
0.024s
GET /api/support/tickets
filters tickets by status
passed
0.007s
GET /api/support/tickets
filters tickets by priority
passed
0.049s
GET /api/support/tickets
supports pagination
passed
0.005s
GET /api/support/tickets
supports search by subject
passed
0.005s
GET /api/support/tickets
returns 401 for unauthenticated user
passed
0.007s
POST /api/support/tickets
creates a new ticket with valid data
passed
0.02s
POST /api/support/tickets
returns validation error for missing required fields
passed
0.01s
POST /api/support/tickets
returns validation error for invalid email
passed
0.005s
POST /api/support/tickets
creates ticket with optional orderId
passed
0.005s
POST /api/support/tickets
uses authenticated user ID when creating ticket
passed
0.006s
POST /api/support/tickets
creates ticket for unauthenticated user
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\categories\__tests__\route.test.ts
4.541s
GET /api/categories > Successful retrieval
returns all categories with product counts
passed
0.033s
GET /api/categories > Successful retrieval
transforms categories correctly
passed
0.007s
GET /api/categories > Successful retrieval
includes children categories
passed
0.006s
GET /api/categories > Successful retrieval
handles categories without children
passed
0.013s
GET /api/categories > Query parameters
returns top-level categories by default (parentId = null)
passed
0.013s
GET /api/categories > Query parameters
filters by parentId to get children of specific category
passed
0.032s
GET /api/categories > Query parameters
parentOnly param is deprecated - same behavior as default
passed
0.005s
GET /api/categories > Empty results
handles empty categories gracefully
passed
0.005s
GET /api/categories > Error handling
returns 500 with error message on database error
passed
0.085s
GET /api/categories > Error handling
returns generic error for non-Error exceptions
passed
0.021s
GET /api/categories > Error handling
handles Prisma query errors
passed
0.006s
GET /api/categories > Edge cases
handles categories with null imageUrl
passed
0.004s
GET /api/categories > Edge cases
handles categories with zero products
passed
0.004s
GET /api/categories > Edge cases
handles deeply nested category structures
passed
0.03s
GET /api/categories > Edge cases
handles multiple parent categories
passed
0.005s
GET /api/categories > Edge cases
handles invalid parentId parameter
passed
0.004s
GET /api/categories > Edge cases
verifies correct sorting by title
passed
0.003s
GET /api/categories > Edge cases
verifies response includes HTTP cache headers
passed
0.003s
GET /api/categories > Edge cases
handles children with null imageUrl
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\__tests__\security-headers.test.ts
5.348s
Security Headers > addSecurityHeaders
adds X-Content-Type-Options header
passed
0.017s
Security Headers > addSecurityHeaders
adds X-Frame-Options header
passed
0.019s
Security Headers > addSecurityHeaders
adds X-XSS-Protection header
passed
0.01s
Security Headers > addSecurityHeaders
adds Referrer-Policy header
passed
0.006s
Security Headers > addSecurityHeaders
adds X-Permitted-Cross-Domain-Policies header
passed
0.006s
Security Headers > addSecurityHeaders
adds default Access-Control-Allow-Origin header
passed
0.005s
Security Headers > addSecurityHeaders
uses localhost as default origin when NEXTAUTH_URL not set
passed
0.014s
Security Headers > addSecurityHeaders
adds custom origin when provided
passed
0.005s
Security Headers > addSecurityHeaders
adds default Access-Control-Allow-Methods header
passed
0.009s
Security Headers > addSecurityHeaders
adds custom Access-Control-Allow-Methods when provided
passed
0.004s
Security Headers > addSecurityHeaders
adds default Access-Control-Allow-Headers header
passed
0.004s
Security Headers > addSecurityHeaders
adds custom Access-Control-Allow-Headers when provided
passed
0.028s
Security Headers > addSecurityHeaders
adds Access-Control-Allow-Credentials header
passed
0.003s
Security Headers > addSecurityHeaders
adds HSTS header in production with HTTPS origin
passed
0.005s
Security Headers > addSecurityHeaders
does not add HSTS header in development
passed
0.005s
Security Headers > addSecurityHeaders
does not add HSTS header for HTTP origin in production
passed
0.004s
Security Headers > addSecurityHeaders
returns the same response object
passed
0.004s
Security Headers > jsonResponseWithHeaders
returns JSON response with security headers
passed
0.029s
Security Headers > jsonResponseWithHeaders
uses default status 200
passed
0.006s
Security Headers > jsonResponseWithHeaders
uses custom status when provided
passed
0.003s
Security Headers > jsonResponseWithHeaders
passes options to addSecurityHeaders
passed
0.003s
Security Headers > jsonResponseWithHeaders
returns correct JSON data
passed
0.006s
Security Headers > errorResponseWithHeaders
returns error response with security headers
passed
0.018s
Security Headers > errorResponseWithHeaders
uses default status 500
passed
0.003s
Security Headers > errorResponseWithHeaders
uses custom status when provided
passed
0.008s
Security Headers > errorResponseWithHeaders
passes options to addSecurityHeaders
passed
0.004s
Security Headers > errorResponseWithHeaders
returns correct error JSON
passed
0.004s
Security Headers > securityHeaders presets > public
allows only GET and OPTIONS methods
passed
0.004s
Security Headers > securityHeaders presets > public
includes all security headers
passed
0.003s
Security Headers > securityHeaders presets > authenticated
allows all standard methods
passed
0.004s
Security Headers > securityHeaders presets > authenticated
allows standard authentication headers
passed
0.004s
Security Headers > securityHeaders presets > authenticated
includes all security headers
passed
0.003s
Security Headers > securityHeaders presets > admin
allows all standard methods
passed
0.004s
Security Headers > securityHeaders presets > admin
allows standard authentication headers
passed
0.004s
Security Headers > securityHeaders presets > admin
includes all security headers
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\promotions\__tests__\validate-code.test.ts
4.756s
POST /api/promotions/validate-code > Request validation
returns 400 when promo code is missing
passed
0.018s
POST /api/promotions/validate-code > Request validation
returns 400 when promo code is not a string
passed
0.037s
POST /api/promotions/validate-code > Request validation
returns 400 when cart is missing
passed
0.008s
POST /api/promotions/validate-code > Request validation
returns 400 when cart is empty
passed
0.007s
POST /api/promotions/validate-code > Request validation
returns 400 when cart is not an array
passed
0.022s
POST /api/promotions/validate-code > Promo code validation - success
validates code successfully for guest user
passed
0.007s
POST /api/promotions/validate-code > Promo code validation - success
validates code successfully for authenticated user
passed
0.009s
POST /api/promotions/validate-code > Promo code validation - success
trims whitespace from promo code
passed
0.004s
POST /api/promotions/validate-code > Promo code validation - failure
returns error for invalid code
passed
0.005s
POST /api/promotions/validate-code > Promo code validation - failure
returns error for expired code
passed
0.015s
POST /api/promotions/validate-code > Promo code validation - failure
returns error for minimum not met
passed
0.005s
POST /api/promotions/validate-code > Promo code validation - failure
returns error for usage limit reached
passed
0.004s
POST /api/promotions/validate-code > Error handling
returns 500 on unexpected error
passed
0.054s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\SlowestRequestsTable\SlowestRequestsTable.test.tsx
4.845s
SlowestRequestsTable > Rendering
renders without crashing
passed
0.201s
SlowestRequestsTable > Rendering
displays the table title
passed
0.048s
SlowestRequestsTable > Rendering
displays request names
passed
0.032s
SlowestRequestsTable > Rendering
displays type badges
passed
0.039s
SlowestRequestsTable > Rendering
displays formatted durations
passed
0.038s
SlowestRequestsTable > Rendering
displays HTTP method when available
passed
0.022s
SlowestRequestsTable > Rendering
displays status code when available
passed
0.064s
SlowestRequestsTable > Rendering
displays threshold info
passed
0.022s
SlowestRequestsTable > Loading State
displays loading skeleton when isLoading is true
passed
0.013s
SlowestRequestsTable > Empty State
displays empty message when no requests
passed
0.009s
SlowestRequestsTable > Max Rows
limits displayed rows when maxRows is set
passed
0.023s
SlowestRequestsTable > Max Rows
shows count message when rows are limited
passed
0.018s
SlowestRequestsTable > Metadata
hides metadata by default
passed
0.018s
SlowestRequestsTable > Metadata
shows metadata when showMetadata is true
passed
0.015s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\affiliates\__tests__\route.test.ts
6.748s
Admin Affiliates API > GET /api/admin/affiliates
should return 401 if user is not authenticated
passed
0.019s
Admin Affiliates API > GET /api/admin/affiliates
should return 403 if user is not admin
passed
0.007s
Admin Affiliates API > GET /api/admin/affiliates
should return affiliates list for admin
passed
0.066s
Admin Affiliates API > GET /api/admin/affiliates
should filter by status
passed
0.024s
Admin Affiliates API > GET /api/admin/affiliates
should filter by tier
passed
0.009s
Admin Affiliates API > GET /api/admin/affiliates
should search by code
passed
0.007s
Admin Affiliates API > POST /api/admin/affiliates
should return 401 if not authenticated
passed
0.003s
Admin Affiliates API > POST /api/admin/affiliates
should return 403 if not admin
passed
0.033s
Admin Affiliates API > POST /api/admin/affiliates
should create a new affiliate
passed
0.013s
Admin Affiliates API > POST /api/admin/affiliates
should return error if user already has affiliate account
passed
0.005s
Admin Affiliates API > POST /api/admin/affiliates
should validate commission rate
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\monitoring\errors\__tests__\route.test.ts
5.135s
Error Reporting API > rate limiting
allows requests under rate limit
passed
0.033s
Error Reporting API > rate limiting
returns rate limit headers
passed
0.013s
Error Reporting API > rate limiting
blocks requests exceeding rate limit
passed
0.05s
Error Reporting API > rate limiting
includes retry-after header when rate limited
passed
0.056s
Error Reporting API > input validation
rejects empty body
passed
0.004s
Error Reporting API > input validation
rejects invalid JSON
passed
0.009s
Error Reporting API > input validation
rejects unknown fields (strict mode)
passed
0.024s
Error Reporting API > input validation
rejects message exceeding size limit
passed
0.004s
Error Reporting API > input validation
rejects stack exceeding size limit
passed
0.005s
Error Reporting API > input validation
rejects invalid UUID for errorId
passed
0.005s
Error Reporting API > input validation
accepts valid UUID for errorId
passed
0.004s
Error Reporting API > origin verification
allows requests with no origin header
passed
0.004s
Error Reporting API > origin verification
allows requests from localhost in test/development
passed
0.016s
Error Reporting API > origin verification
allows requests from configured app URL
passed
0.005s
Error Reporting API > data sanitization
accepts valid payload and stores sanitized data
passed
0.009s
Error Reporting API > fingerprint generation
generates consistent fingerprint for same error
passed
0.01s
Error Reporting API > error handling
returns 500 on database error
passed
0.073s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\validation\__tests__\schemas.test.ts
6.066s
Primitive Schemas > idSchema
should accept valid positive integers
passed
0.011s
Primitive Schemas > idSchema
should reject invalid IDs
passed
0.063s
Primitive Schemas > optionalIdSchema
should accept valid IDs, null, and undefined
passed
0.003s
Primitive Schemas > uuidSchema
should accept valid UUIDs
passed
0.003s
Primitive Schemas > uuidSchema
should reject invalid UUIDs
passed
0.006s
Primitive Schemas > emailSchema
should accept valid emails and normalize them
passed
0.007s
Primitive Schemas > emailSchema
should reject invalid emails
passed
0.022s
Primitive Schemas > passwordSchema
should accept valid passwords
passed
0.003s
Primitive Schemas > passwordSchema
should reject weak passwords
passed
0.013s
Primitive Schemas > simplePasswordSchema
should accept any non-empty password
passed
0.003s
Primitive Schemas > simplePasswordSchema
should reject empty passwords
passed
0.005s
Primitive Schemas > nameSchema
should accept valid names and trim whitespace
passed
0.003s
Primitive Schemas > nameSchema
should reject invalid names
passed
0.008s
Primitive Schemas > phoneSchema
should accept valid phone numbers
passed
0.003s
Primitive Schemas > phoneSchema
should reject invalid phone numbers
passed
0.004s
Primitive Schemas > urlSchema
should accept valid URLs
passed
0.005s
Primitive Schemas > urlSchema
should reject invalid URLs
passed
0.008s
Primitive Schemas > slugSchema
should accept valid slugs
passed
0.006s
Primitive Schemas > slugSchema
should reject invalid slugs
passed
0.008s
Pagination Schemas > paginationSchema
should provide default values
passed
0.033s
Pagination Schemas > paginationSchema
should accept valid pagination params
passed
0.003s
Pagination Schemas > paginationSchema
should reject invalid limits
passed
0.041s
Pagination Schemas > searchPaginationSchema
should accept search query
passed
0.005s
Pagination Schemas > searchPaginationSchema
should reject too-long search queries
passed
0.008s
Address Schemas > addressTypeSchema
should accept valid address types
passed
0.003s
Address Schemas > addressTypeSchema
should reject invalid types
passed
0.02s
Address Schemas > addressSchema
should accept valid addresses
passed
0.007s
Address Schemas > addressSchema
should reject invalid addresses
passed
0.007s
Address Schemas > fullAddressSchema
should include type and isDefault
passed
0.005s
Address Schemas > fullAddressSchema
should default isDefault to false
passed
0.002s
Monetary Schemas > priceSchema
should accept positive numbers
passed
0.037s
Monetary Schemas > priceSchema
should reject non-positive values
passed
0.004s
Monetary Schemas > nonNegativeSchema
should accept zero and positive numbers
passed
0.002s
Monetary Schemas > nonNegativeSchema
should reject negative values
passed
0.006s
Monetary Schemas > quantitySchema
should accept positive integers
passed
0.003s
Monetary Schemas > quantitySchema
should reject invalid quantities
passed
0.008s
Date Schemas > dateSchema
should coerce strings to dates
passed
0.003s
Date Schemas > dateRangeSchema
should accept valid date ranges
passed
0.009s
Date Schemas > dateRangeSchema
should reject invalid date ranges
passed
0.003s
Date Schemas > dateRangeSchema
should accept partial ranges
passed
0.003s
Content Schemas > shortTextSchema
should accept valid short text
passed
0.002s
Content Schemas > shortTextSchema
should trim whitespace
passed
0.008s
Content Schemas > shortTextSchema
should reject empty or too-long text
passed
0.004s
Content Schemas > longTextSchema
should accept longer content
passed
0.002s
Content Schemas > longTextSchema
should reject too-long content
passed
0.018s
File Schemas > fileMetadataSchema
should accept valid file metadata
passed
0.004s
File Schemas > fileMetadataSchema
should reject files that are too large
passed
0.005s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\comparison\__tests__\route.test.ts
6.231s
GET /api/comparison > Validation
returns 400 when productIds is missing
passed
0.137s
GET /api/comparison > Validation
returns 400 when no valid product IDs provided
passed
0.008s
GET /api/comparison > Validation
returns 400 when more than 5 products requested
passed
0.006s
GET /api/comparison > Product retrieval
returns 404 when no products found
passed
0.006s
GET /api/comparison > Successful comparison
returns comparison data for valid product IDs
passed
0.033s
GET /api/comparison > Successful comparison
parses comma-separated product IDs correctly
passed
0.008s
GET /api/comparison > Successful comparison
filters out invalid IDs from mixed input
passed
0.007s
GET /api/comparison > Successful comparison
returns sameCategory as false for different categories
passed
0.007s
GET /api/comparison > Successful comparison
handles single product comparison
passed
0.056s
GET /api/comparison > Successful comparison
handles maximum allowed products (5)
passed
0.015s
GET /api/comparison > Error handling
returns 500 with error message on service error
passed
0.154s
GET /api/comparison > Error handling
returns generic error for non-Error exceptions
passed
0.033s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\testimonials\[id]\__tests__\route.test.ts
6.183s
Admin Testimonials API - /api/admin/testimonials/[id] > GET /api/admin/testimonials/[id]
returns a single testimonial by id
passed
0.035s
Admin Testimonials API - /api/admin/testimonials/[id] > GET /api/admin/testimonials/[id]
returns 400 for invalid id
passed
0.009s
Admin Testimonials API - /api/admin/testimonials/[id] > GET /api/admin/testimonials/[id]
returns 404 when testimonial not found
passed
0.006s
Admin Testimonials API - /api/admin/testimonials/[id] > GET /api/admin/testimonials/[id]
returns 500 on database error
passed
0.119s
Admin Testimonials API - /api/admin/testimonials/[id] > PUT /api/admin/testimonials/[id]
updates a testimonial successfully
passed
0.027s
Admin Testimonials API - /api/admin/testimonials/[id] > PUT /api/admin/testimonials/[id]
updates multiple fields at once
passed
0.008s
Admin Testimonials API - /api/admin/testimonials/[id] > PUT /api/admin/testimonials/[id]
returns 400 for invalid id
passed
0.005s
Admin Testimonials API - /api/admin/testimonials/[id] > PUT /api/admin/testimonials/[id]
returns 404 when testimonial not found
passed
0.008s
Admin Testimonials API - /api/admin/testimonials/[id] > PUT /api/admin/testimonials/[id]
returns 400 for validation errors
passed
0.015s
Admin Testimonials API - /api/admin/testimonials/[id] > PUT /api/admin/testimonials/[id]
returns 500 on database error
passed
0.008s
Admin Testimonials API - /api/admin/testimonials/[id] > DELETE /api/admin/testimonials/[id]
deletes a testimonial successfully
passed
0.016s
Admin Testimonials API - /api/admin/testimonials/[id] > DELETE /api/admin/testimonials/[id]
returns 400 for invalid id
passed
0.014s
Admin Testimonials API - /api/admin/testimonials/[id] > DELETE /api/admin/testimonials/[id]
returns 404 when testimonial not found
passed
0.022s
Admin Testimonials API - /api/admin/testimonials/[id] > DELETE /api/admin/testimonials/[id]
returns 500 on database error
passed
0.012s
Admin Testimonials API - /api/admin/testimonials/[id] > PATCH /api/admin/testimonials/[id]
toggles isActive from true to false
passed
0.014s
Admin Testimonials API - /api/admin/testimonials/[id] > PATCH /api/admin/testimonials/[id]
toggles isActive from false to true
passed
0.018s
Admin Testimonials API - /api/admin/testimonials/[id] > PATCH /api/admin/testimonials/[id]
returns 400 for invalid id
passed
0.009s
Admin Testimonials API - /api/admin/testimonials/[id] > PATCH /api/admin/testimonials/[id]
returns 404 when testimonial not found
passed
0.015s
Admin Testimonials API - /api/admin/testimonials/[id] > PATCH /api/admin/testimonials/[id]
returns 500 on database error
passed
0.012s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\cart\__tests__\cart-merge.test.ts
7.387s
cart-merge > mergeAnonymousCartToUser
should add new items from anonymous cart
passed
0.009s
cart-merge > mergeAnonymousCartToUser
should sum quantities for duplicate items
passed
0.005s
cart-merge > mergeAnonymousCartToUser
should handle empty anonymous cart
passed
0.004s
cart-merge > mergeAnonymousCartToUser
should handle empty user cart
passed
0.003s
cart-merge > mergeAnonymousCartToUser
should handle multiple conflicts
passed
0.04s
cart-merge > mergeAnonymousCartToUser
should not create conflicts for same quantities
passed
0.004s
cart-merge > mergeAnonymousCartToUser
should generate appropriate message for merge
passed
0.003s
cart-merge > validateCartItems
should validate correct cart items
passed
0.009s
cart-merge > validateCartItems
should reject non-array input
passed
0.002s
cart-merge > validateCartItems
should reject items without id
passed
0.009s
cart-merge > validateCartItems
should reject items without quantity
passed
0.004s
cart-merge > validateCartItems
should reject items with zero quantity
passed
0.002s
cart-merge > validateCartItems
should reject items with negative quantity
passed
0.008s
cart-merge > transformDbCartToCartItems
should transform database cart items to frontend format
passed
0.003s
cart-merge > transformDbCartToCartItems
should handle products without images
passed
0.003s
cart-merge > transformDbCartToCartItems
should extract thumbnailUrl and url from images
passed
0.029s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\core\__tests__\utils.test.ts
5.646s
utils > cn (class name merger)
merges multiple class strings
passed
0.053s
utils > cn (class name merger)
handles tailwind class conflicts by using later value
passed
0.004s
utils > cn (class name merger)
handles conditional classes
passed
0.003s
utils > cn (class name merger)
filters out falsy values
passed
0.002s
utils > cn (class name merger)
handles array of classes
passed
0.002s
utils > cn (class name merger)
handles empty input
passed
0.002s
utils > cn (class name merger)
merges complex tailwind patterns
passed
0.017s
utils > formatCurrency
formats USD currency by default
passed
0.005s
utils > formatCurrency
formats with different currencies
passed
0.002s
utils > formatCurrency
handles zero
passed
0.002s
utils > formatCurrency
handles negative values
passed
0.003s
utils > formatCurrency
handles large values
passed
0.002s
utils > formatCurrency
handles small decimal values
passed
0.003s
utils > truncate
truncates text longer than length
passed
0.003s
utils > truncate
does not truncate text shorter than length
passed
0.024s
utils > truncate
does not truncate text equal to length
passed
0.002s
utils > truncate
uses custom suffix
passed
0.005s
utils > truncate
handles empty string
passed
0.002s
utils > truncate
handles zero length
passed
0.006s
utils > truncate
handles unicode characters
passed
0.003s
utils > sleep
resolves after specified time
passed
0.093s
utils > sleep
returns a promise
passed
0.002s
utils > sleep
resolves with undefined
passed
0.035s
utils > sleep
handles zero delay
passed
0.006s
utils > formatCurrency edge cases
handles different currency symbols correctly
passed
0.004s
utils > formatCurrency edge cases
handles fractional cents
passed
0.005s
utils > formatCurrency edge cases
handles very large numbers
passed
0.003s
utils > formatCurrency edge cases
handles Infinity
passed
0.002s
utils > formatCurrency edge cases
handles NaN
passed
0.002s
utils > truncate edge cases
handles negative length
passed
0.003s
utils > truncate edge cases
handles very long suffix
passed
0.002s
utils > truncate edge cases
handles special characters
passed
0.004s
utils > truncate edge cases
handles only whitespace that exceeds length
passed
0.008s
utils > truncate edge cases
handles whitespace within length
passed
0.002s
utils > truncate edge cases
handles multi-byte unicode correctly
passed
0.002s
utils > truncate edge cases
preserves exact length text without suffix
passed
0.002s
utils > cn edge cases
handles objects with multiple keys
passed
0.003s
utils > cn edge cases
handles deeply nested structures
passed
0.002s
utils > cn edge cases
handles duplicate classes
passed
0.002s
utils > cn edge cases
handles very long class strings
passed
0.003s
utils > cn edge cases
properly merges responsive classes
passed
0.002s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\monitoring\client-logs\__tests__\route.test.ts
7.38s
POST /api/monitoring/client-logs > validation
should reject requests without entries array
passed
0.02s
POST /api/monitoring/client-logs > validation
should reject requests with non-array entries
passed
0.004s
POST /api/monitoring/client-logs > validation
should reject requests with no valid entries
passed
0.022s
POST /api/monitoring/client-logs > processing
should accept valid log entries
passed
0.007s
POST /api/monitoring/client-logs > processing
should process multiple valid entries
passed
0.022s
POST /api/monitoring/client-logs > processing
should filter out invalid entries from batch
passed
0.016s
POST /api/monitoring/client-logs > processing
should limit batch size to prevent abuse
passed
0.012s
POST /api/monitoring/client-logs > database storage
should store error entries in database
passed
0.084s
POST /api/monitoring/client-logs > database storage
should store warn entries in database
passed
0.005s
POST /api/monitoring/client-logs > database storage
should not store info/debug entries in database
passed
0.005s
POST /api/monitoring/client-logs > IP extraction
should extract IP from x-forwarded-for header
passed
0.008s
POST /api/monitoring/client-logs > IP extraction
should extract IP from x-real-ip header
passed
0.005s
POST /api/monitoring/client-logs > entry validation
should validate log level
passed
0.005s
POST /api/monitoring/client-logs > entry validation
should require message field
passed
0.003s
POST /api/monitoring/client-logs > entry validation
should require timestamp field
passed
0.004s
POST /api/monitoring/client-logs > entry validation
should require url field
passed
0.004s
POST /api/monitoring/client-logs > entry validation
should require userAgent field
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\monitoring\__tests__\schemas.test.ts
6.389s
clientErrorSchema > valid payloads
accepts minimal payload
passed
0.021s
clientErrorSchema > valid payloads
accepts full valid payload
passed
0.005s
clientErrorSchema > valid payloads
accepts payload with only message
passed
0.021s
clientErrorSchema > size limits
rejects message exceeding limit
passed
0.016s
clientErrorSchema > size limits
rejects stack exceeding limit
passed
0.004s
clientErrorSchema > size limits
rejects componentStack exceeding limit
passed
0.005s
clientErrorSchema > size limits
rejects url exceeding limit
passed
0.004s
clientErrorSchema > size limits
rejects userAgent exceeding limit
passed
0.006s
clientErrorSchema > metadata validation
accepts valid metadata
passed
0.007s
clientErrorSchema > metadata validation
rejects metadata with too many keys
passed
0.005s
clientErrorSchema > metadata validation
rejects metadata with string value exceeding limit
passed
0.004s
clientErrorSchema > strict mode
rejects unknown fields
passed
0.005s
clientErrorSchema > errorId validation
accepts valid UUID
passed
0.005s
clientErrorSchema > errorId validation
rejects invalid UUID
passed
0.003s
errorResolveSchema
accepts valid resolve payload
passed
0.009s
errorResolveSchema
accepts payload with resolution note
passed
0.011s
errorResolveSchema
rejects empty fingerprint
passed
0.003s
errorResolveSchema
rejects invalid status
passed
0.003s
bulkErrorResolveSchema
accepts valid bulk resolve payload
passed
0.004s
bulkErrorResolveSchema
rejects empty fingerprints array
passed
0.003s
bulkErrorResolveSchema
rejects too many fingerprints
passed
0.004s
bulkErrorResolveSchema
rejects unresolved status in bulk
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\TraceWaterfall\__tests__\TraceWaterfall.test.tsx
6.325s
TraceWaterfall > rendering
renders trace information
passed
0.184s
TraceWaterfall > rendering
renders span list
passed
0.019s
TraceWaterfall > rendering
renders loading state
passed
0.027s
TraceWaterfall > rendering
renders trace status badge
passed
0.048s
TraceWaterfall > rendering
renders trace duration
passed
0.058s
TraceWaterfall > stats
renders statistics when provided
passed
0.06s
TraceWaterfall > stats
does not render stats section when not provided
passed
0.044s
TraceWaterfall > span selection
calls onSelectSpan when span is clicked
passed
0.057s
TraceWaterfall > span selection
shows span detail panel when span is selected
passed
0.269s
TraceWaterfall > span selection
shows events in detail panel
passed
0.052s
TraceWaterfall > error trace
renders error status
passed
0.023s
TraceWaterfall > span depth
renders nested spans with indentation indicator
passed
0.027s
TraceWaterfall > span kinds
displays span kind badges
passed
0.046s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\observability\__tests__\web-vitals.test.ts
5.481s
Web Vitals Utilities > getWebVitalRating > LCP thresholds
returns "good" for LCP <= 2500ms
passed
0.009s
Web Vitals Utilities > getWebVitalRating > LCP thresholds
returns "needs-improvement" for LCP > 2500ms and <= 4000ms
passed
0.018s
Web Vitals Utilities > getWebVitalRating > LCP thresholds
returns "poor" for LCP > 4000ms
passed
0.006s
Web Vitals Utilities > getWebVitalRating > CLS thresholds
returns "good" for CLS <= 0.1
passed
0.005s
Web Vitals Utilities > getWebVitalRating > CLS thresholds
returns "needs-improvement" for CLS > 0.1 and <= 0.25
passed
0.004s
Web Vitals Utilities > getWebVitalRating > CLS thresholds
returns "poor" for CLS > 0.25
passed
0.004s
Web Vitals Utilities > getWebVitalRating > INP thresholds
returns "good" for INP <= 200ms
passed
0.006s
Web Vitals Utilities > getWebVitalRating > INP thresholds
returns "needs-improvement" for INP > 200ms and <= 500ms
passed
0.005s
Web Vitals Utilities > getWebVitalRating > INP thresholds
returns "poor" for INP > 500ms
passed
0.003s
Web Vitals Utilities > calculatePercentile
returns 0 for empty array
passed
0.004s
Web Vitals Utilities > calculatePercentile
returns correct p50 for sorted array
passed
0.003s
Web Vitals Utilities > calculatePercentile
returns correct p75 for sorted array
passed
0.004s
Web Vitals Utilities > calculatePercentile
returns correct p95 for sorted array
passed
0.005s
Web Vitals Utilities > calculatePercentile
returns correct percentile for single value
passed
0.004s
Web Vitals Utilities > calculateWebVitalStats
returns zero stats for empty array
passed
0.004s
Web Vitals Utilities > calculateWebVitalStats
calculates correct percentiles
passed
0.003s
Web Vitals Utilities > calculateWebVitalStats
counts ratings correctly for LCP
passed
0.003s
Web Vitals Utilities > calculateWebVitalStats
determines overall rating based on p75
passed
0.003s
Web Vitals Utilities > calculateWebVitalStats
includes correct label and unit
passed
0.003s
Web Vitals Utilities > formatWebVitalValue
formats LCP values in milliseconds
passed
0.007s
Web Vitals Utilities > formatWebVitalValue
formats CLS values with 2 decimal places
passed
0.003s
Web Vitals Utilities > formatWebVitalValue
formats other vitals in milliseconds
passed
0.002s
Web Vitals Utilities > getRatingColorClass
returns green classes for good rating
passed
0.003s
Web Vitals Utilities > getRatingColorClass
returns yellow classes for needs-improvement rating
passed
0.002s
Web Vitals Utilities > getRatingColorClass
returns red classes for poor rating
passed
0.002s
Web Vitals Utilities > getRatingLabel
returns correct labels
passed
0.002s
Web Vitals Utilities > getWorstMetric
returns undefined for empty metrics
passed
0.003s
Web Vitals Utilities > getWorstMetric
returns undefined when all metrics are good
passed
0.003s
Web Vitals Utilities > getWorstMetric
returns poor metric over needs-improvement
passed
0.002s
Web Vitals Utilities > getWorstMetric
returns needs-improvement when no poor metrics
passed
0.003s
Web Vitals Utilities > getWorstMetric
prioritizes core vitals (LCP > CLS > INP)
passed
0.003s
Web Vitals Utilities > normalizePagePath
extracts path from full URL
passed
0.013s
Web Vitals Utilities > normalizePagePath
replaces numeric IDs with placeholder
passed
0.004s
Web Vitals Utilities > normalizePagePath
replaces UUIDs with placeholder
passed
0.003s
Web Vitals Utilities > normalizePagePath
replaces long alphanumeric IDs with placeholder
passed
0.003s
Web Vitals Utilities > normalizePagePath
returns original string for invalid URLs
passed
0.003s
Web Vitals Utilities > WEB_VITALS_THRESHOLDS
defines all required metrics
passed
0.007s
Web Vitals Utilities > WEB_VITALS_THRESHOLDS
has needsImprovement > good for all metrics
passed
0.013s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\wishlist\__tests__\route.test.ts
11.745s
GET /api/wishlist > Authentication
returns 401 for unauthenticated request
passed
0.081s
GET /api/wishlist > Authentication
returns 401 for session without user
passed
0.006s
GET /api/wishlist > Authentication
returns 401 for session without user id
passed
0.017s
GET /api/wishlist > Wishlist retrieval
returns wishlist items for authenticated user
passed
0.032s
GET /api/wishlist > Wishlist retrieval
returns empty array for user with no wishlist items
passed
0.008s
GET /api/wishlist > Wishlist retrieval
handles products with no reviews correctly
passed
0.006s
GET /api/wishlist > Wishlist retrieval
uses image url when thumbnailUrl is not available
passed
0.006s
GET /api/wishlist > Error handling
returns 500 on database error
passed
0.182s
DELETE /api/wishlist > Authentication
returns 401 for unauthenticated request
passed
0.071s
DELETE /api/wishlist > Clear wishlist
clears all wishlist items successfully
passed
0.009s
POST /api/wishlist > Authentication
returns 401 for unauthenticated request
passed
0.015s
POST /api/wishlist > Validation
rejects missing productId
passed
0.03s
POST /api/wishlist > Validation
rejects invalid productId (negative)
passed
0.004s
POST /api/wishlist > Validation
accepts string numbers (coercion)
passed
0.003s
POST /api/wishlist > Product validation
returns 404 when product does not exist
passed
0.004s
POST /api/wishlist > Duplicate prevention
returns 409 when product already in wishlist
passed
0.007s
POST /api/wishlist > Adding to wishlist
creates new wishlist item successfully
passed
0.006s
POST /api/wishlist > Error handling
returns 500 on database error during product lookup
passed
0.032s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\integrations\__tests__\email.test.ts
4.808s
email utility > sendEmail
should log email in development mode and return true
passed
0.023s
email utility > sendEmail
should handle long HTML content in preview
passed
0.012s
email utility > sendEmail
should handle optional text parameter
passed
0.004s
email utility > sendEmail
should handle multiple recipients
passed
0.005s
email utility > sendEmail
should use mock mode when RESEND_API_KEY is 'mock'
passed
0.018s
email utility > sendPasswordResetEmail
should send password reset email
passed
0.005s
email utility > sendPasswordResetEmail
should use configured base URL in reset link
passed
0.004s
email utility > sendPasswordResetEmail
should use localhost as default base URL
passed
0.004s
email utility > sendVerificationEmail
should send verification email
passed
0.004s
email utility > sendVerificationEmail
should use configured base URL
passed
0.003s
email utility > sendAccountLockedEmail
should send account locked email
passed
0.005s
email utility > sendAccountLockedEmail
should format unlock time
passed
0.004s
email utility > sendPromotionAnnouncementEmail
should send basic promotion email
passed
0.004s
email utility > sendPromotionAnnouncementEmail
should handle promotion with all optional fields
passed
0.025s
email utility > sendFlashSaleAlertEmail
should send flash sale email
passed
0.015s
email utility > sendFlashSaleAlertEmail
should handle flash sale with headline
passed
0.07s
email utility > sendExpiringPromoReminderEmail
should send expiring promo reminder
passed
0.006s
email utility > sendExpiringPromoReminderEmail
should handle promotion with promo code
passed
0.006s
email utility > sendExpiringPromoReminderEmail
should handle singular and plural hours
passed
0.006s
email utility > sendLoyaltyPointsEarnedEmail
should send loyalty points earned email
passed
0.007s
email utility > sendLoyaltyPointsEarnedEmail
should handle tier progression data
passed
0.075s
email utility > sendLoyaltyPointsEarnedEmail
should format large numbers correctly
passed
0.005s
email utility > sendLoyaltyTierUpgradeEmail
should send tier upgrade email
passed
0.004s
email utility > sendLoyaltyTierUpgradeEmail
should handle different tier levels
passed
0.015s
email utility > sendReferralRewardEmail
should send referral reward email for points
passed
0.011s
email utility > sendReferralRewardEmail
should format credit reward correctly
passed
0.036s
email utility > sendReferralRewardEmail
should format discount reward correctly
passed
0.028s
email utility > sendBirthdayOfferEmail
should send birthday offer email
passed
0.006s
email utility > sendBirthdayOfferEmail
should include user name in subject
passed
0.005s
email utility > sendBirthdayOfferEmail
should handle different discount percentages
passed
0.007s
email utility > email template completeness
should have all email functions return true in dev mode
passed
0.008s
email utility > email template completeness
should log all emails with correct context
passed
0.005s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\hooks\__tests__\useRealtimeMetrics.test.ts
6.774s
useRealtimeMetrics > initialization
starts with connecting status
passed
0.062s
useRealtimeMetrics > initialization
creates EventSource connection
passed
0.018s
useRealtimeMetrics > initialization
includes incident parameter when incidentMode is true
passed
0.028s
useRealtimeMetrics > receiving data
updates slos on slo_update event
passed
0.039s
useRealtimeMetrics > receiving data
updates metrics on metrics_update event
passed
0.011s
useRealtimeMetrics > receiving data
updates status to connected on connected event
passed
0.011s
useRealtimeMetrics > receiving data
updates lastUpdate timestamp on events
passed
0.017s
useRealtimeMetrics > alerts
calls onAlert callback when alert event received
passed
0.018s
useRealtimeMetrics > disconnect and reconnect
closes connection when disconnect is called
passed
0.009s
useRealtimeMetrics > disconnect and reconnect
reconnects when reconnect is called
passed
0.011s
useRealtimeMetrics > status callback
calls onStatusChange with connecting initially
passed
0.014s
useRealtimeMetrics > status callback
updates status to connected and calls onStatusChange via updateStatus
passed
0.012s
useRealtimeMetrics > cleanup
closes connection on unmount
passed
0.009s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\hooks\__tests__\useDebounce.test.ts
6.955s
useDebounce > useDebounce hook
returns initial value immediately
passed
0.091s
useDebounce > useDebounce hook
does not update value before delay
passed
0.015s
useDebounce > useDebounce hook
updates value after delay
passed
0.01s
useDebounce > useDebounce hook
uses default delay of 500ms
passed
0.012s
useDebounce > useDebounce hook
cancels previous timeout on rapid value changes
passed
0.022s
useDebounce > useDebounce hook
works with different data types
passed
0.051s
useDebounce > useDebounce hook
respects changing delay
passed
0.01s
useDebounce > useDebouncedCallback hook
does not call callback immediately
passed
0.017s
useDebounce > useDebouncedCallback hook
calls callback after delay
passed
0.008s
useDebounce > useDebouncedCallback hook
passes arguments to callback
passed
0.014s
useDebounce > useDebouncedCallback hook
debounces rapid invocations
passed
0.008s
useDebounce > useDebouncedCallback hook
uses default delay of 500ms
passed
0.008s
useDebounce > useDebouncedCallback hook
cleans up timeout on unmount
passed
0.009s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\categories\[id]\__tests__\route.test.ts
6.554s
/api/admin/categories/[id] > GET /api/admin/categories/[id]
returns category with children and product count
passed
0.021s
/api/admin/categories/[id] > GET /api/admin/categories/[id]
returns 404 when category not found
passed
0.007s
/api/admin/categories/[id] > GET /api/admin/categories/[id]
returns 500 on database error
passed
0.089s
/api/admin/categories/[id] > PUT /api/admin/categories/[id] > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.006s
/api/admin/categories/[id] > PUT /api/admin/categories/[id] > Authentication & Authorization
returns 403 for non-admin user
passed
0.005s
/api/admin/categories/[id] > PUT /api/admin/categories/[id] > Validation
returns 400 when title is missing
passed
0.026s
/api/admin/categories/[id] > PUT /api/admin/categories/[id] > Validation
returns 400 when slug is missing
passed
0.006s
/api/admin/categories/[id] > PUT /api/admin/categories/[id] > Successful updates
updates category successfully
passed
0.007s
/api/admin/categories/[id] > PUT /api/admin/categories/[id] > Successful updates
updates category with all fields including parentId
passed
0.026s
/api/admin/categories/[id] > PUT /api/admin/categories/[id] > Successful updates
invalidates categories cache after update
passed
0.009s
/api/admin/categories/[id] > PUT /api/admin/categories/[id] > Error handling
returns 500 on database error
passed
0.009s
/api/admin/categories/[id] > DELETE /api/admin/categories/[id] > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.005s
/api/admin/categories/[id] > DELETE /api/admin/categories/[id] > Authentication & Authorization
returns 403 for non-admin user
passed
0.004s
/api/admin/categories/[id] > DELETE /api/admin/categories/[id] > Successful deletion
deletes category successfully
passed
0.031s
/api/admin/categories/[id] > DELETE /api/admin/categories/[id] > Successful deletion
invalidates categories cache after deletion
passed
0.004s
/api/admin/categories/[id] > DELETE /api/admin/categories/[id] > Error handling
returns 500 on database error
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\cache\__tests__\swr-cache.test.ts
5.686s
SWR Cache > getWithSWR
should return fresh data from cache without revalidating
passed
0.026s
SWR Cache > getWithSWR
should return stale data and trigger background revalidation
passed
0.138s
SWR Cache > getWithSWR
should fetch fresh data when cache is empty
passed
0.006s
SWR Cache > getWithSWR
should fetch fresh data when cache is expired beyond maxStaleTime
passed
0.004s
SWR Cache > getWithSWR
should return stale data when fetch fails
passed
0.005s
SWR Cache > getWithSWR
should throw when fetch fails and no cache available
passed
0.05s
SWR Cache > getWithSWR
should call onSuccess callback on successful fetch
passed
0.008s
SWR Cache > getWithSWR
should call onError callback on fetch failure
passed
0.014s
SWR Cache > SWRPresets
should have frequent preset for rapidly changing data
passed
0.003s
SWR Cache > SWRPresets
should have moderate preset for typical data
passed
0.003s
SWR Cache > SWRPresets
should have static preset for rarely changing data
passed
0.002s
SWR Cache > SWRPresets
should have user preset for user-specific data
passed
0.002s
SWR Cache > swrFetch
should use moderate preset by default
passed
0.003s
SWR Cache > invalidateSWR
should delete the cache key
passed
0.003s
SWR Cache > invalidateSWR
should warm cache with fetcher if provided
passed
0.004s
SWR Cache > prefetchSWR
should fetch and cache data
passed
0.009s
SWR Cache > prefetchSWR
should use custom TTL if provided
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\__tests__\audit-logger.test.ts
6.006s
audit-logger > AuditAction enum
has authentication actions
passed
0.011s
audit-logger > AuditAction enum
has password actions
passed
0.007s
audit-logger > AuditAction enum
has email actions
passed
0.005s
audit-logger > AuditAction enum
has account security actions
passed
0.003s
audit-logger > AuditAction enum
has order actions
passed
0.01s
audit-logger > AuditAction enum
has payment actions
passed
0.003s
audit-logger > AuditAction enum
has admin actions
passed
0.028s
audit-logger > AuditAction enum
has profile actions
passed
0.003s
audit-logger > logAuditEvent
creates audit log entry with all fields
passed
0.008s
audit-logger > logAuditEvent
extracts IP from x-forwarded-for header
passed
0.004s
audit-logger > logAuditEvent
falls back to x-real-ip header
passed
0.003s
audit-logger > logAuditEvent
handles missing request gracefully
passed
0.003s
audit-logger > logAuditEvent
handles undefined options
passed
0.002s
audit-logger > logAuditEvent
logs info on successful audit
passed
0.04s
audit-logger > logAuditEvent
handles database errors gracefully
passed
0.005s
audit-logger > logLoginAttempt
logs successful login
passed
0.004s
audit-logger > logLoginAttempt
logs failed login
passed
0.003s
audit-logger > logLoginAttempt
handles missing email
passed
0.003s
audit-logger > logPasswordResetRequest
logs password reset request
passed
0.003s
audit-logger > logPasswordResetComplete
logs password reset completion
passed
0.004s
audit-logger > logAccountLocked
logs account lockout with attempt count
passed
0.003s
audit-logger > logOrderCreate
logs order creation with total
passed
0.003s
audit-logger > logPaymentEvent
logs successful payment
passed
0.003s
audit-logger > logPaymentEvent
logs failed payment
passed
0.004s
audit-logger > logPaymentEvent
handles undefined request for webhook events
passed
0.002s
audit-logger > logAdminAction
logs admin action with details
passed
0.003s
audit-logger > logAdminAction
logs admin action without resourceId
passed
0.003s
audit-logger > getUserAuditLogs
returns audit logs for a user
passed
0.003s
audit-logger > getUserAuditLogs
respects custom limit
passed
0.002s
audit-logger > getSecurityEvents
returns security events with default filters
passed
0.004s
audit-logger > getSecurityEvents
uses custom action filters
passed
0.003s
audit-logger > getSecurityEvents
respects custom limit
passed
0.007s
audit-logger > integration scenarios
logs complete login flow
passed
0.006s
audit-logger > integration scenarios
logs complete order flow
passed
0.003s
audit-logger > integration scenarios
logs account lockout scenario
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\__tests__\device-id.test.ts
3.75s
device-id > getOrCreateDeviceId
should create a new device ID if none exists
passed
0.021s
device-id > getOrCreateDeviceId
should return existing device ID on subsequent calls
passed
0.045s
device-id > getOrCreateDeviceId
should persist device ID in localStorage
passed
0.024s
device-id > getOrCreateDeviceId
should generate unique IDs for different sessions
passed
0.008s
device-id > getOrCreateDeviceId
should include timestamp in device ID
passed
0.006s
device-id > getOrCreateDeviceId
should handle localStorage errors gracefully
passed
0.067s
device-id > resetDeviceId
should remove device ID from localStorage
passed
0.009s
device-id > resetDeviceId
should allow creating new ID after reset
passed
0.006s
device-id > hasDeviceId
should return false when no device ID exists
passed
0.005s
device-id > hasDeviceId
should return true when device ID exists
passed
0.01s
device-id > hasDeviceId
should return false after reset
passed
0.007s
device-id > getDeviceInfo
should return complete device information
passed
0.012s
device-id > getDeviceInfo
should include browser information
passed
0.006s
device-id > getDeviceInfo
should include timezone
passed
0.005s
device-id > getDeviceInfo
should include screen resolution
passed
0.007s
device-id > getDeviceInfo
should use consistent device ID
passed
0.005s
device-id > device fingerprinting
should generate consistent fingerprint for same browser
passed
0.012s
device-id > device fingerprinting
should include browser characteristics in fingerprint
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\testimonials\__tests__\route.test.ts
5.889s
Admin Testimonials API - /api/admin/testimonials > GET /api/admin/testimonials
returns all testimonials including inactive
passed
0.086s
Admin Testimonials API - /api/admin/testimonials > GET /api/admin/testimonials
respects pagination parameters
passed
0.023s
Admin Testimonials API - /api/admin/testimonials > GET /api/admin/testimonials
caps limit at 100
passed
0.025s
Admin Testimonials API - /api/admin/testimonials > GET /api/admin/testimonials
returns pagination metadata
passed
0.02s
Admin Testimonials API - /api/admin/testimonials > GET /api/admin/testimonials
transforms testimonial data correctly
passed
0.065s
Admin Testimonials API - /api/admin/testimonials > GET /api/admin/testimonials
returns 500 on database error
passed
0.073s
Admin Testimonials API - /api/admin/testimonials > POST /api/admin/testimonials
creates a new testimonial with valid data
passed
0.016s
Admin Testimonials API - /api/admin/testimonials > POST /api/admin/testimonials
creates testimonial with isActive explicitly set to false
passed
0.01s
Admin Testimonials API - /api/admin/testimonials > POST /api/admin/testimonials
accepts valid URL for authorImage
passed
0.011s
Admin Testimonials API - /api/admin/testimonials > POST /api/admin/testimonials
returns 400 for review too short
passed
0.018s
Admin Testimonials API - /api/admin/testimonials > POST /api/admin/testimonials
returns 400 for author name too short
passed
0.014s
Admin Testimonials API - /api/admin/testimonials > POST /api/admin/testimonials
returns 400 for author role too short
passed
0.011s
Admin Testimonials API - /api/admin/testimonials > POST /api/admin/testimonials
returns 400 for invalid author image format
passed
0.024s
Admin Testimonials API - /api/admin/testimonials > POST /api/admin/testimonials
returns 400 for missing required fields
passed
0.022s
Admin Testimonials API - /api/admin/testimonials > POST /api/admin/testimonials
returns 500 on database error
passed
0.026s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\orders\__tests__\[id].test.ts
5.609s
GET /api/orders/[id] > Authentication
requires authentication
passed
0.033s
GET /api/orders/[id] > Order retrieval
returns order with items for authenticated user
passed
0.012s
GET /api/orders/[id] > Order retrieval
returns 404 for non-existent order
passed
0.012s
GET /api/orders/[id] > Order retrieval
returns 403 when accessing another user's order
passed
0.012s
GET /api/orders/[id] > Order retrieval
returns 400 for invalid order ID
passed
0.014s
GET /api/orders/[id] > Order retrieval
includes product details in order items
passed
0.013s
GET /api/orders/[id] > Error handling
returns 500 on database error
passed
0.083s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\products\filters\__tests__\route.test.ts
6.136s
GET /api/products/filters > Successful retrieval
returns filter options successfully
passed
0.059s
GET /api/products/filters > Successful retrieval
returns categories in filter options
passed
0.028s
GET /api/products/filters > Successful retrieval
returns price range in filter options
passed
0.012s
GET /api/products/filters > Successful retrieval
returns ratings distribution
passed
0.012s
GET /api/products/filters > Empty results
handles empty filter options gracefully
passed
0.015s
GET /api/products/filters > Error handling
returns 500 on service error
passed
0.057s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\core\__tests__\slug.test.ts
6.235s
slug utilities > generateSlug
converts text to lowercase
passed
0.02s
slug utilities > generateSlug
replaces spaces with hyphens
passed
0.005s
slug utilities > generateSlug
removes special characters
passed
0.004s
slug utilities > generateSlug
removes leading and trailing hyphens
passed
0.003s
slug utilities > generateSlug
handles consecutive special characters
passed
0.005s
slug utilities > generateSlug
handles numbers
passed
0.004s
slug utilities > generateSlug
handles empty string
passed
0.005s
slug utilities > generateSlug
handles string with only special characters
passed
0.003s
slug utilities > generateSlug
handles unicode characters
passed
0.006s
slug utilities > generateSlug
handles real-world product names
passed
0.005s
slug utilities > generateUniqueSlug
returns base slug if it does not exist
passed
0.037s
slug utilities > generateUniqueSlug
appends counter if slug exists
passed
0.007s
slug utilities > generateUniqueSlug
keeps incrementing until unique
passed
0.006s
slug utilities > generateUniqueSlug
throws error after 1000 attempts
passed
0.099s
slug utilities > generateSlugWithDate
generates slug with date prefix
passed
0.005s
slug utilities > generateSlugWithDate
pads month and day with zeros
passed
0.005s
slug utilities > generateSlugWithDate
uses current date by default
passed
0.006s
slug utilities > generateSlugWithDate
handles end of year dates
passed
0.005s
slug utilities > isValidSlug
returns true for valid slugs
passed
0.006s
slug utilities > isValidSlug
returns false for slugs with uppercase
passed
0.004s
slug utilities > isValidSlug
returns false for slugs with spaces
passed
0.004s
slug utilities > isValidSlug
returns false for slugs with special characters
passed
0.002s
slug utilities > isValidSlug
returns false for slugs starting or ending with hyphen
passed
0.005s
slug utilities > isValidSlug
returns false for slugs with consecutive hyphens
passed
0.004s
slug utilities > isValidSlug
returns false for empty string
passed
0.002s
slug utilities > extractSlugFromPath
extracts slug from simple path
passed
0.002s
slug utilities > extractSlugFromPath
extracts slug from path with trailing slash
passed
0.004s
slug utilities > extractSlugFromPath
extracts slug from nested path
passed
0.007s
slug utilities > extractSlugFromPath
handles path with just slug
passed
0.014s
slug utilities > extractSlugFromPath
handles path without leading slash
passed
0.009s
slug utilities > extractSlugFromPath
returns empty string for root path
passed
0.01s
slug utilities > extractSlugFromPath
returns empty string for empty path
passed
0.01s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\promotions\validate-code\__tests__\route.test.ts
6.111s
POST /api/promotions/validate-code
validates a promo code successfully
passed
0.03s
POST /api/promotions/validate-code
returns 400 when code is missing
passed
0.014s
POST /api/promotions/validate-code
returns 400 when code is not a string
passed
0.012s
POST /api/promotions/validate-code
returns 400 when cart is missing
passed
0.042s
POST /api/promotions/validate-code
returns 400 when cart is empty
passed
0.011s
POST /api/promotions/validate-code
returns 400 when promo code is invalid
passed
0.012s
POST /api/promotions/validate-code
returns 400 when promo code has expired
passed
0.007s
POST /api/promotions/validate-code
trims whitespace from promo code
passed
0.011s
POST /api/promotions/validate-code
passes user ID when authenticated
passed
0.01s
POST /api/promotions/validate-code
includes free items in response
passed
0.013s
POST /api/promotions/validate-code
includes free shipping flag
passed
0.008s
POST /api/promotions/validate-code
returns 500 on unexpected error
passed
0.074s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\seo\__tests__\metadata-generators.test.ts
5.815s
SEO Metadata Generators > getAbsoluteUrl
should return absolute URL for relative path
passed
0.011s
SEO Metadata Generators > getAbsoluteUrl
should handle paths without leading slash
passed
0.007s
SEO Metadata Generators > getAbsoluteUrl
should return URL unchanged if already absolute
passed
0.044s
SEO Metadata Generators > generateProductMetadata
should generate metadata with title
passed
0.011s
SEO Metadata Generators > generateProductMetadata
should generate metadata with description
passed
0.007s
SEO Metadata Generators > generateProductMetadata
should generate OpenGraph metadata
passed
0.006s
SEO Metadata Generators > generateProductMetadata
should generate Twitter Card metadata
passed
0.006s
SEO Metadata Generators > generateProductMetadata
should include price in other metadata
passed
0.004s
SEO Metadata Generators > generateProductMetadata
should handle product without discounted price
passed
0.004s
SEO Metadata Generators > generateProductMetadata
should handle product with no images
passed
0.004s
SEO Metadata Generators > generateProductMetadata
should truncate long titles
passed
0.007s
SEO Metadata Generators > generateCategoryMetadata
should generate metadata with formatted title
passed
0.007s
SEO Metadata Generators > generateCategoryMetadata
should generate metadata with description
passed
0.007s
SEO Metadata Generators > generateCategoryMetadata
should generate fallback description when none provided
passed
0.005s
SEO Metadata Generators > generateCategoryMetadata
should include category image in OpenGraph
passed
0.004s
SEO Metadata Generators > generatePageMetadata
should generate metadata for home page
passed
0.006s
SEO Metadata Generators > generatePageMetadata
should generate metadata for shop page
passed
0.005s
SEO Metadata Generators > generatePageMetadata
should generate metadata for about page
passed
0.007s
SEO Metadata Generators > generatePageMetadata
should allow custom title override
passed
0.005s
SEO Metadata Generators > generatePageMetadata
should allow custom description override
passed
0.004s
SEO Metadata Generators > generateRootMetadata
should include site title
passed
0.005s
SEO Metadata Generators > generateRootMetadata
should include site description
passed
0.006s
SEO Metadata Generators > generateRootMetadata
should include manifest
passed
0.005s
SEO Metadata Generators > generateRootMetadata
should include icons
passed
0.004s
SEO Metadata Generators > generateRootMetadata
should include robots configuration
passed
0.005s
SEO Metadata Generators > generateSearchMetadata
should generate noindex metadata for search results
passed
0.004s
SEO Metadata Generators > generateSearchMetadata
should include query in title
passed
0.018s
SEO Metadata Generators > generateSearchMetadata
should include results count in description
passed
0.003s
SEO Metadata Generators > generateSearchMetadata
should handle empty query
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\api-docs\__tests__\openapi-import.test.ts
6.931s
OpenAPI Import Utility > importOpenAPI
should import a valid OpenAPI 3.0 specification
passed
0.039s
OpenAPI Import Utility > importOpenAPI
should reject unsupported OpenAPI versions
passed
0.007s
OpenAPI Import Utility > importOpenAPI
should handle endpoints with parameters
passed
0.007s
OpenAPI Import Utility > importOpenAPI
should handle request bodies
passed
0.052s
OpenAPI Import Utility > importOpenAPI
should detect auth requirements from security
passed
0.088s
OpenAPI Import Utility > importOpenAPI
should handle nested object schemas
passed
0.011s
OpenAPI Import Utility > importOpenAPI
should generate warnings for missing descriptions
passed
0.013s
OpenAPI Import Utility > importOpenAPI
should handle parse errors gracefully
passed
0.012s
OpenAPI Import Utility > importOpenAPI
should group endpoints by tags
passed
0.007s
OpenAPI Import Utility > importOpenAPI
should use default tag when none specified
passed
0.011s
OpenAPI Import Utility > importOpenAPI
should detect admin endpoints from tags
passed
0.008s
OpenAPI Import Utility > mergeRegistries
should add new categories from imported registry
passed
0.01s
OpenAPI Import Utility > mergeRegistries
should add new endpoints to existing categories
passed
0.008s
OpenAPI Import Utility > mergeRegistries
should preserve existing custom fields by default
passed
0.003s
OpenAPI Import Utility > mergeRegistries
should overwrite when overwriteExisting is true
passed
0.002s
OpenAPI Import Utility > mergeRegistries
should preserve existing registry metadata
passed
0.004s
OpenAPI Import Utility > validateImportedRegistry
should pass for valid registry
passed
0.003s
OpenAPI Import Utility > validateImportedRegistry
should detect missing title
passed
0.002s
OpenAPI Import Utility > validateImportedRegistry
should detect missing version
passed
0.002s
OpenAPI Import Utility > validateImportedRegistry
should detect empty categories
passed
0.002s
OpenAPI Import Utility > validateImportedRegistry
should detect duplicate endpoint IDs
passed
0.003s
OpenAPI Import Utility > validateImportedRegistry
should detect missing endpoint path
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\monitoring\errors\resolve-bulk\__tests__\route.test.ts
6.04s
Admin Monitoring Errors Resolve Bulk API - /api/admin/monitoring/errors/resolve-bulk > POST /api/admin/monitoring/errors/resolve-bulk
resolves multiple errors by fingerprints
passed
0.031s
Admin Monitoring Errors Resolve Bulk API - /api/admin/monitoring/errors/resolve-bulk > POST /api/admin/monitoring/errors/resolve-bulk
returns validation error for missing fingerprints
passed
0.022s
Admin Monitoring Errors Resolve Bulk API - /api/admin/monitoring/errors/resolve-bulk > POST /api/admin/monitoring/errors/resolve-bulk
returns validation error for empty fingerprints array
passed
0.033s
Admin Monitoring Errors Resolve Bulk API - /api/admin/monitoring/errors/resolve-bulk > POST /api/admin/monitoring/errors/resolve-bulk
returns validation error for non-array fingerprints
passed
0.005s
Admin Monitoring Errors Resolve Bulk API - /api/admin/monitoring/errors/resolve-bulk > POST /api/admin/monitoring/errors/resolve-bulk
limits bulk operations to 100 items
passed
0.013s
Admin Monitoring Errors Resolve Bulk API - /api/admin/monitoring/errors/resolve-bulk > POST /api/admin/monitoring/errors/resolve-bulk
handles 100 items (maximum allowed)
passed
0.005s
Admin Monitoring Errors Resolve Bulk API - /api/admin/monitoring/errors/resolve-bulk > POST /api/admin/monitoring/errors/resolve-bulk
returns 0 resolved when no matching errors found
passed
0.007s
Admin Monitoring Errors Resolve Bulk API - /api/admin/monitoring/errors/resolve-bulk > POST /api/admin/monitoring/errors/resolve-bulk
only resolves open errors
passed
0.006s
Admin Monitoring Errors Resolve Bulk API - /api/admin/monitoring/errors/resolve-bulk > POST /api/admin/monitoring/errors/resolve-bulk
returns 401 for unauthenticated requests
passed
0.006s
Admin Monitoring Errors Resolve Bulk API - /api/admin/monitoring/errors/resolve-bulk > POST /api/admin/monitoring/errors/resolve-bulk
returns 403 for non-admin users
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\animations\__tests__\advanced.test.ts
4.953s
advanced animations > createParallax
creates up parallax transform
passed
0.026s
advanced animations > createParallax
creates down parallax transform
passed
0.003s
advanced animations > createParallax
creates left parallax transform
passed
0.005s
advanced animations > createParallax
creates right parallax transform
passed
0.004s
advanced animations > createParallax
respects speed multiplier
passed
0.003s
advanced animations > createParallax
uses default values when not provided
passed
0.01s
advanced animations > parallaxVariants
has background variant with initial state
passed
0.02s
advanced animations > parallaxVariants
has foreground variant with initial state
passed
0.013s
advanced animations > parallaxVariants
background animate is a function
passed
0.01s
advanced animations > parallaxVariants
background animate returns correct animation with custom delay
passed
0.01s
advanced animations > parallaxVariants
foreground animate is a function
passed
0.009s
advanced animations > parallaxVariants
foreground animate returns correct animation with custom delay
passed
0.015s
advanced animations > grid stagger animations
gridStagger has empty initial
passed
0.007s
advanced animations > grid stagger animations
gridStagger has stagger children config
passed
0.01s
advanced animations > grid stagger animations
gridItem has correct initial state
passed
0.011s
advanced animations > grid stagger animations
gridItem has correct animate state
passed
0.006s
advanced animations > wave stagger animations
waveStagger has stagger direction config
passed
0.009s
advanced animations > wave stagger animations
waveItem uses spring animation
passed
0.006s
advanced animations > createSpiralStagger
returns variant object
passed
0.009s
advanced animations > createSpiralStagger
has stagger config in animate
passed
0.008s
advanced animations > 3D transform animations
flip3D has rotateY in initial
passed
0.018s
advanced animations > 3D transform animations
flip3D animates to 0 rotation
passed
0.003s
advanced animations > 3D transform animations
cube3D has X and Y rotation in initial
passed
0.003s
advanced animations > 3D transform animations
tilt3D animate is a function
passed
0.008s
advanced animations > 3D transform animations
tilt3D animate returns rotation based on coords
passed
0.012s
advanced animations > spring physics animations
springBounce uses spring type
passed
0.006s
advanced animations > spring physics animations
springElastic includes rotation
passed
0.006s
advanced animations > spring physics animations
springWobble starts from left
passed
0.011s
advanced animations > gesture animations
dragConstraints has all directions at 0
passed
0.01s
advanced animations > gesture animations
swipeVariants has swipeLeft
passed
0.01s
advanced animations > gesture animations
swipeVariants has swipeRight
passed
0.008s
advanced animations > gesture animations
magnetic hover is a function
passed
0.011s
advanced animations > gesture animations
magnetic hover returns transformed coords
passed
0.01s
advanced animations > scroll-linked animations
createScrollReveal creates up variant by default
passed
0.005s
advanced animations > scroll-linked animations
createScrollReveal creates down variant
passed
0.009s
advanced animations > scroll-linked animations
createScrollReveal creates left variant
passed
0.006s
advanced animations > scroll-linked animations
createScrollReveal creates right variant
passed
0.009s
advanced animations > scroll-linked animations
createScrollReveal respects custom distance
passed
0.01s
advanced animations > scroll-linked animations
scaleReveal has scale in initial
passed
0.008s
advanced animations > scroll-linked animations
rotateReveal has rotation in initial
passed
0.013s
advanced animations > morphing animations
morphVariants has circle shape
passed
0.009s
advanced animations > morphing animations
morphVariants has square shape
passed
0.01s
advanced animations > morphing animations
morphVariants has rounded shape
passed
0.008s
advanced animations > morphing animations
textReveal animate is a function
passed
0.008s
advanced animations > morphing animations
textReveal animate uses index for delay
passed
0.011s
advanced animations > createCounterAnimation
returns transition config
passed
0.007s
advanced animations > createCounterAnimation
uses default duration when not provided
passed
0.009s
advanced animations > loading animations
pulse has repeating animation
passed
0.01s
advanced animations > loading animations
shimmer moves across element
passed
0.005s
advanced animations > loading animations
skeleton has pulsing opacity
passed
0.01s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\payments\__tests__\route.test.ts
7.98s
POST /api/payments > Authentication
returns 401 for unauthenticated request
passed
0.042s
POST /api/payments > Authentication
returns 401 for session without user id
passed
0.011s
POST /api/payments > Successful payment
processes payment for valid order
passed
0.032s
POST /api/payments > Successful payment
updates order status to SHIPPED on success
passed
0.016s
POST /api/payments > Order validation
returns 404 for non-existent order
passed
0.012s
POST /api/payments > Order validation
returns 403 for order belonging to different user
passed
0.016s
POST /api/payments > Payment simulation
succeeds for amounts ending in 00 cents
passed
0.011s
POST /api/payments > Payment simulation
fails for amounts not ending in 00 cents
passed
0.012s
POST /api/payments > Payment validation
rejects missing orderId
passed
0.018s
POST /api/payments > Payment validation
rejects negative amount
passed
0.01s
POST /api/payments > Payment validation
rejects zero amount
passed
0.012s
POST /api/payments > Payment validation
rejects invalid payment method
passed
0.011s
POST /api/payments > Payment validation
accepts valid payment methods
passed
0.017s
POST /api/payments > Error handling
returns 500 on database error during order lookup
passed
0.078s
POST /api/payments > Error handling
returns 500 on database error during order update
passed
0.02s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\affiliates\__tests__\payouts.test.ts
7.315s
Admin Affiliate Payouts API > GET /api/admin/affiliates/payouts
should return 401 if not authenticated
passed
0.028s
Admin Affiliate Payouts API > GET /api/admin/affiliates/payouts
should return 403 if not admin
passed
0.013s
Admin Affiliate Payouts API > GET /api/admin/affiliates/payouts
should return payouts list for admin
passed
0.023s
Admin Affiliate Payouts API > GET /api/admin/affiliates/payouts
should filter by status
passed
0.019s
Admin Affiliate Payouts API > GET /api/admin/affiliates/payouts
should filter by affiliateId
passed
0.008s
Admin Affiliate Payouts API > POST /api/admin/affiliates/payouts
should return 401 if not authenticated
passed
0.015s
Admin Affiliate Payouts API > POST /api/admin/affiliates/payouts
should return 403 if not admin
passed
0.004s
Admin Affiliate Payouts API > POST /api/admin/affiliates/payouts
should process a payout
passed
0.032s
Admin Affiliate Payouts API > POST /api/admin/affiliates/payouts
should cancel a pending payout
passed
0.032s
Admin Affiliate Payouts API > POST /api/admin/affiliates/payouts
should not cancel already completed payout
passed
0.024s
Admin Affiliate Payouts API > POST /api/admin/affiliates/payouts
should return error if process fails
passed
0.014s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\reviews\[reviewId]\__tests__\route.test.ts
6.228s
PATCH /api/reviews/[reviewId] > Authentication
returns 401 for unauthenticated request
passed
0.033s
PATCH /api/reviews/[reviewId] > Authentication
returns 401 for session without email
passed
0.014s
PATCH /api/reviews/[reviewId] > Authentication
returns 404 when user not found in database
passed
0.012s
PATCH /api/reviews/[reviewId] > Validation
returns 400 for invalid review ID
passed
0.02s
PATCH /api/reviews/[reviewId] > Mark as helpful
marks review as helpful
passed
0.023s
PATCH /api/reviews/[reviewId] > Mark as helpful
unmarks review as helpful
passed
0.042s
PATCH /api/reviews/[reviewId] > Mark as helpful
returns 400 when helpful is not a boolean
passed
0.059s
PATCH /api/reviews/[reviewId] > Edit review
updates review with new rating and comment
passed
0.022s
PATCH /api/reviews/[reviewId] > Edit review
returns 400 when rating is missing for edit
passed
0.021s
PATCH /api/reviews/[reviewId] > Invalid action
returns 400 for invalid action
passed
0.024s
PATCH /api/reviews/[reviewId] > Error handling
returns 500 on service error
passed
0.086s
DELETE /api/reviews/[reviewId] > Authentication
returns 401 for unauthenticated request
passed
0.005s
DELETE /api/reviews/[reviewId] > Authentication
returns 404 when user not found
passed
0.005s
DELETE /api/reviews/[reviewId] > Validation
returns 400 for invalid review ID
passed
0.004s
DELETE /api/reviews/[reviewId] > Successful deletion
deletes review successfully
passed
0.006s
DELETE /api/reviews/[reviewId] > Error handling
returns 500 on service error
passed
0.007s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\orders\[orderId]\__tests__\route.test.ts
8.169s
/api/admin/orders/[orderId] > GET /api/admin/orders/[orderId] > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.033s
/api/admin/orders/[orderId] > GET /api/admin/orders/[orderId] > Authentication & Authorization
returns 403 for non-admin user
passed
0.017s
/api/admin/orders/[orderId] > GET /api/admin/orders/[orderId] > Parameter validation
returns 400 for invalid order ID
passed
0.019s
/api/admin/orders/[orderId] > GET /api/admin/orders/[orderId] > Successful requests
returns order with user and items
passed
0.018s
/api/admin/orders/[orderId] > GET /api/admin/orders/[orderId] > Successful requests
returns 404 when order not found
passed
0.018s
/api/admin/orders/[orderId] > GET /api/admin/orders/[orderId] > Error handling
returns 500 on database error
passed
0.129s
/api/admin/orders/[orderId] > PATCH /api/admin/orders/[orderId] > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.009s
/api/admin/orders/[orderId] > PATCH /api/admin/orders/[orderId] > Authentication & Authorization
returns 403 for non-admin user
passed
0.01s
/api/admin/orders/[orderId] > PATCH /api/admin/orders/[orderId] > Validation
returns 400 for invalid order ID
passed
0.017s
/api/admin/orders/[orderId] > PATCH /api/admin/orders/[orderId] > Validation
returns 400 when status is missing
passed
0.029s
/api/admin/orders/[orderId] > PATCH /api/admin/orders/[orderId] > Validation
returns 400 for invalid status
passed
0.018s
/api/admin/orders/[orderId] > PATCH /api/admin/orders/[orderId] > Successful updates
updates order status to PROCESSING
passed
0.049s
/api/admin/orders/[orderId] > PATCH /api/admin/orders/[orderId] > Successful updates
updates order status to SHIPPED
passed
0.019s
/api/admin/orders/[orderId] > PATCH /api/admin/orders/[orderId] > Successful updates
updates order status to DELIVERED
passed
0.023s
/api/admin/orders/[orderId] > PATCH /api/admin/orders/[orderId] > Successful updates
updates order status to CANCELLED
passed
0.036s
/api/admin/orders/[orderId] > PATCH /api/admin/orders/[orderId] > Error handling
returns 500 on database error
passed
0.039s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\cart\__tests__\[id].test.ts
6.993s
PATCH /api/cart/[id] > Authentication
requires authentication
passed
0.037s
PATCH /api/cart/[id] > Quantity updates
updates cart item quantity
passed
0.149s
PATCH /api/cart/[id] > Quantity updates
returns 404 for non-existent cart item
passed
0.038s
PATCH /api/cart/[id] > Quantity updates
updates sync info with request
passed
0.023s
PATCH /api/cart/[id] > Validation
rejects zero quantity
passed
0.025s
PATCH /api/cart/[id] > Validation
rejects negative quantity
passed
0.015s
PATCH /api/cart/[id] > Validation
accepts string numbers (coercion)
passed
0.008s
PATCH /api/cart/[id] > Error handling
returns 500 on database error
passed
0.195s
DELETE /api/cart/[id] > Authentication
requires authentication
passed
0.018s
DELETE /api/cart/[id] > Cart item removal
removes cart item successfully
passed
0.042s
DELETE /api/cart/[id] > Cart item removal
returns 404 for non-existent cart item
passed
0.016s
DELETE /api/cart/[id] > Error handling
returns 500 on database error
passed
0.011s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\__tests__\image-processing.test.ts
5.109s
image-processing > validateImageFile > with Buffer
validates buffer within size limit
passed
0.088s
image-processing > validateImageFile > with Buffer
rejects buffer exceeding size limit
passed
0.004s
image-processing > validateImageFile > with Buffer
uses default 10MB limit
passed
0.003s
image-processing > validateImageFile > with Buffer
rejects buffer just over the limit
passed
0.002s
image-processing > validateImageFile > with File
validates image file within size limit
passed
0.005s
image-processing > validateImageFile > with File
rejects non-image file
passed
0.016s
image-processing > validateImageFile > with File
rejects oversized image file
passed
0.006s
image-processing > validateImageFile > with File
accepts various image types
passed
0.003s
image-processing > validateImageFile > with File
validates with custom size limit
passed
0.002s
image-processing > processProductImage
processes image with default quality
passed
0.005s
image-processing > processProductImage
processes image with custom quality
passed
0.005s
image-processing > processProductImage
creates directory if not exists
passed
0.004s
image-processing > processProductImage
resizes to correct dimensions
passed
0.034s
image-processing > processProductImage
throws error for invalid image
passed
0.155s
image-processing > processProductImage
returns correct file sizes
passed
0.01s
image-processing > processProductImage
returns correct dimensions
passed
0.007s
image-processing > processProductImage
writes both files to disk
passed
0.004s
image-processing > deleteProductImage
deletes both full and thumbnail files
passed
0.004s
image-processing > deleteProductImage
handles missing files gracefully
passed
0.005s
image-processing > deleteProductImage
handles empty filenames
passed
0.053s
image-processing > deleteProductImage
continues deleting if first file fails
passed
0.003s
image-processing > getNextImageIndex
returns 1 when no images exist
passed
0.003s
image-processing > getNextImageIndex
returns next index based on existing images
passed
0.003s
image-processing > getNextImageIndex
ignores thumbnail files when calculating index
passed
0.002s
image-processing > getNextImageIndex
ignores other product images
passed
0.005s
image-processing > getNextImageIndex
returns 1 when directory does not exist
passed
0.002s
image-processing > getNextImageIndex
handles gaps in image indices
passed
0.002s
image-processing > getNextImageIndex
handles non-numeric indices gracefully
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\promotions\applicable\__tests__\route.test.ts
8.497s
POST /api/promotions/applicable
returns applicable promotions for cart
passed
0.018s
POST /api/promotions/applicable
returns empty result when cart is missing
passed
0.009s
POST /api/promotions/applicable
returns empty result when cart is empty
passed
0.006s
POST /api/promotions/applicable
includes stacked result with savings breakdown
passed
0.01s
POST /api/promotions/applicable
includes free items in stacked result
passed
0.006s
POST /api/promotions/applicable
passes user ID when authenticated
passed
0.007s
POST /api/promotions/applicable
formats cart items correctly
passed
0.008s
POST /api/promotions/applicable
includes promotion stackable info in response
passed
0.005s
POST /api/promotions/applicable
returns 500 on unexpected error
passed
0.058s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\promotions\__tests__\utils.test.ts
8.371s
Promotion Status Checks > isPromotionActive
should return true for active promotion within date range
passed
0.008s
Promotion Status Checks > isPromotionActive
should return false for inactive promotion
passed
0.004s
Promotion Status Checks > isPromotionActive
should return false for promotion not yet started
passed
0.003s
Promotion Status Checks > isPromotionActive
should return false for expired promotion
passed
0.003s
Promotion Status Checks > isPromotionUsageLimitReached
should return false when no usage limit set
passed
0.003s
Promotion Status Checks > isPromotionUsageLimitReached
should return false when under usage limit
passed
0.005s
Promotion Status Checks > isPromotionUsageLimitReached
should return true when at usage limit
passed
0.003s
Promotion Status Checks > isPromotionUsageLimitReached
should return true when over usage limit
passed
0.003s
Discount Calculations > calculatePercentageDiscount
should calculate 10% discount correctly
passed
0.02s
Discount Calculations > calculatePercentageDiscount
should calculate 25% discount correctly
passed
0.002s
Discount Calculations > calculatePercentageDiscount
should handle decimal amounts
passed
0.002s
Discount Calculations > calculatePercentageDiscount
should handle 100% discount
passed
0.002s
Discount Calculations > calculatePercentageDiscount
should return 0 for 0% discount
passed
0.002s
Discount Calculations > calculatePercentageDiscount
should cap at maxDiscount when provided
passed
0.003s
Discount Calculations > calculateFixedDiscount
should return the fixed amount when less than total
passed
0.007s
Discount Calculations > calculateFixedDiscount
should cap at total amount when discount exceeds total
passed
0.003s
Discount Calculations > calculateFixedDiscount
should return exact amount when equal to total
passed
0.011s
Discount Calculations > calculateFixedDiscount
should cap at maxDiscount when provided
passed
0.003s
Discount Calculations > calculateDiscount
should calculate PERCENTAGE discount
passed
0.004s
Discount Calculations > calculateDiscount
should calculate FIXED_AMOUNT discount
passed
0.003s
Discount Calculations > calculateDiscount
should respect maxDiscount for percentage
passed
0.002s
Cart Utilities > calculateCartTotal
should calculate total correctly
passed
0.003s
Cart Utilities > calculateCartTotal
should return 0 for empty cart
passed
0.002s
Cart Utilities > getCartItemCount
should count total items including quantities
passed
0.002s
Cart Utilities > getCartItemCount
should return 0 for empty cart
passed
0.002s
Cart Utilities > cartContainsProduct
should return true when product exists in cart
passed
0.002s
Cart Utilities > cartContainsProduct
should return false when product not in cart
passed
0.002s
Cart Utilities > cartContainsCategory
should return true when category exists in cart
passed
0.005s
Cart Utilities > cartContainsCategory
should return false when category not in cart
passed
0.003s
Cart Utilities > getItemsByCategory
should return items matching category
passed
0.003s
Cart Utilities > getItemsByCategory
should return empty array for non-existent category
passed
0.002s
Cart Utilities > getItemsByProductIds
should return items matching product IDs
passed
0.002s
Cart Utilities > getItemsByProductIds
should return empty array when no matches
passed
0.003s
Condition Evaluation > parseConditionValue
should parse numeric string
passed
0.003s
Condition Evaluation > parseConditionValue
should parse array string
passed
0.008s
Condition Evaluation > parseConditionValue
should return string as-is if not JSON
passed
0.003s
Condition Evaluation > toConditionRule
should convert PromotionCondition to ConditionRule
passed
0.003s
Condition Evaluation > evaluateCondition
should evaluate min_amount correctly - pass
passed
0.003s
Condition Evaluation > evaluateCondition
should evaluate min_amount correctly - fail
passed
0.002s
Condition Evaluation > evaluateCondition
should evaluate min_quantity correctly
passed
0.002s
Condition Evaluation > evaluateCondition
should evaluate first_purchase correctly
passed
0.003s
Condition Evaluation > evaluateCondition
should evaluate includes_product correctly
passed
0.002s
Condition Evaluation > evaluateCondition
should evaluate includes_category correctly
passed
0.003s
Condition Evaluation > evaluateCondition
should evaluate excludes_product correctly
passed
0.004s
Condition Evaluation > evaluateAllConditions
should return true when all conditions pass
passed
0.003s
Condition Evaluation > evaluateAllConditions
should return false when any condition fails
passed
0.002s
Condition Evaluation > evaluateAllConditions
should return true for empty conditions
passed
0.002s
Formatting Utilities > formatDiscount
should format percentage discount
passed
0.002s
Formatting Utilities > formatDiscount
should format fixed amount discount
passed
0.003s
Formatting Utilities > formatPrice
should format whole numbers
passed
0.002s
Formatting Utilities > formatPrice
should format decimals
passed
0.003s
Formatting Utilities > formatPrice
should format zero
passed
0.003s
Formatting Utilities > calculateSavingsPercent
should calculate savings percentage
passed
0.003s
Formatting Utilities > calculateSavingsPercent
should return 0 when original is 0
passed
0.003s
Formatting Utilities > calculateSavingsPercent
should round to nearest integer
passed
0.002s
Tiered Discount Utilities > getApplicableTier
should return lowest tier for small quantity
passed
0.002s
Tiered Discount Utilities > getApplicableTier
should return correct tier for exact match
passed
0.003s
Tiered Discount Utilities > getApplicableTier
should return highest applicable tier
passed
0.003s
Tiered Discount Utilities > getApplicableTier
should return null for quantity below all tiers
passed
0.003s
Promotion Sorting and Filtering > sortByPriority
should sort by priority descending (higher first)
passed
0.003s
Promotion Sorting and Filtering > filterStackable
should return only stackable promotions
passed
0.003s
Promotion Sorting and Filtering > getBestNonStackable
should return the non-stackable promotion with highest discount
passed
0.003s
Promotion Sorting and Filtering > getBestNonStackable
should return null when no non-stackable promotions
passed
0.002s
Date Utilities > isWithinDateRange
should return true for date within range
passed
0.003s
Date Utilities > isWithinDateRange
should return false for date before range
passed
0.002s
Date Utilities > isWithinDateRange
should return false for date after range
passed
0.002s
Date Utilities > daysUntilExpiration
should return correct days for future date
passed
0.004s
Date Utilities > daysUntilExpiration
should return negative for past date
passed
0.004s
Date Utilities > isExpiringSoon
should return true when expiring within threshold
passed
0.005s
Date Utilities > isExpiringSoon
should return false when not expiring soon
passed
0.007s
Date Utilities > isExpiringSoon
should return false for already expired
passed
0.002s
Promo Code Normalization > normalizePromoCode
should convert to uppercase
passed
0.002s
Promo Code Normalization > normalizePromoCode
should trim whitespace
passed
0.002s
Promo Code Normalization > normalizePromoCode
should handle mixed case with spaces
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\__tests__\validation.test.ts
9.105s
Validation Schemas > createProductSchema
should validate correct product data
passed
0.017s
Validation Schemas > createProductSchema
should reject product with negative price
passed
0.003s
Validation Schemas > createProductSchema
should reject product with negative discounted price
passed
0.003s
Validation Schemas > createProductSchema
should reject missing title
passed
0.004s
Validation Schemas > createProductSchema
should reject empty title
passed
0.003s
Validation Schemas > createProductSchema
should reject missing category ID
passed
0.004s
Validation Schemas > createProductSchema
should reject negative stock
passed
0.03s
Validation Schemas > createProductSchema
should accept missing optional fields
passed
0.003s
Validation Schemas > createProductSchema
should reject invalid image URL
passed
0.007s
Validation Schemas > createProductSchema
should accept valid image URLs
passed
0.004s
Validation Schemas > signupSchema
should validate correct signup data
passed
0.009s
Validation Schemas > signupSchema
should reject invalid email
passed
0.009s
Validation Schemas > signupSchema
should reject short password
passed
0.004s
Validation Schemas > signupSchema
should reject non-matching passwords
passed
0.003s
Validation Schemas > signupSchema
should reject missing email
passed
0.004s
Validation Schemas > signupSchema
should accept optional name
passed
0.002s
Validation Schemas > signupSchema
should handle various valid emails
passed
0.003s
Validation Schemas > signinSchema
should validate correct signin data
passed
0.01s
Validation Schemas > signinSchema
should reject invalid email
passed
0.004s
Validation Schemas > signinSchema
should reject missing password
passed
0.005s
Validation Schemas > signinSchema
should reject empty password
passed
0.004s
Validation Schemas > addToCartSchema
should validate correct cart data
passed
0.006s
Validation Schemas > addToCartSchema
should reject zero quantity
passed
0.003s
Validation Schemas > addToCartSchema
should reject negative quantity
passed
0.003s
Validation Schemas > addToCartSchema
should reject zero product ID
passed
0.003s
Validation Schemas > addToCartSchema
should reject negative product ID
passed
0.005s
Validation Schemas > addToCartSchema
should accept string product ID (coercion)
passed
0.003s
Validation Schemas > updateCartItemSchema
should validate correct update data
passed
0.004s
Validation Schemas > updateCartItemSchema
should reject zero quantity
passed
0.003s
Validation Schemas > updateCartItemSchema
should reject negative quantity
passed
0.002s
Validation Schemas > addToWishlistSchema
should validate correct wishlist data
passed
0.003s
Validation Schemas > addToWishlistSchema
should reject zero product ID
passed
0.002s
Validation Schemas > addToWishlistSchema
should reject negative product ID
passed
0.002s
Validation Schemas > createCategorySchema
should validate correct category data
passed
0.032s
Validation Schemas > createCategorySchema
should reject missing title
passed
0.003s
Validation Schemas > createCategorySchema
should reject empty title
passed
0.003s
Validation Schemas > createCategorySchema
should accept missing optional fields
passed
0.003s
Validation Schemas > createCategorySchema
should reject invalid image URL
passed
0.003s
Validation Schemas > createCategorySchema
should accept valid image URL
passed
0.003s
Validation Schemas > validateInput utility function
should return success with valid data
passed
0.022s
Validation Schemas > validateInput utility function
should return errors with invalid data
passed
0.015s
Validation Schemas > validateInput utility function
should format error messages properly
passed
0.004s
Validation Schemas > validateInput utility function
should handle unexpected errors gracefully
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\orders\__tests__\route.test.ts
8.377s
GET /api/admin/orders > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.034s
GET /api/admin/orders > Authentication & Authorization
returns 403 for non-admin user
passed
0.006s
GET /api/admin/orders > Successful requests
returns orders with pagination
passed
0.008s
GET /api/admin/orders > Successful requests
respects pagination parameters
passed
0.033s
GET /api/admin/orders > Successful requests
filters by status
passed
0.019s
GET /api/admin/orders > Successful requests
filters by userId
passed
0.005s
GET /api/admin/orders > Successful requests
combines multiple filters
passed
0.016s
GET /api/admin/orders > Successful requests
returns orders ordered by creation date descending
passed
0.007s
GET /api/admin/orders > Successful requests
includes user and items information
passed
0.005s
GET /api/admin/orders > Error handling
returns 500 on database error
passed
0.078s
GET /api/admin/orders > Error handling
returns generic error for non-Error objects
passed
0.049s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\TraceExplorer\__tests__\TraceExplorer.test.tsx
7.847s
TraceExplorer > rendering
renders trace list
passed
0.141s
TraceExplorer > rendering
renders empty state when no traces
passed
0.039s
TraceExplorer > rendering
renders loading state
passed
0.021s
TraceExplorer > rendering
renders trace metadata
passed
0.038s
TraceExplorer > rendering
renders status badges
passed
0.085s
TraceExplorer > selection
highlights selected trace
passed
0.028s
TraceExplorer > selection
calls onSelectTrace when trace is clicked
passed
0.033s
TraceExplorer > search
renders search input
passed
0.031s
TraceExplorer > search
calls onSearchChange when typing
passed
0.119s
TraceExplorer > search
shows search hint when empty with search value
passed
0.012s
TraceExplorer > status filter
renders filter buttons
passed
0.063s
TraceExplorer > status filter
highlights active filter
passed
0.017s
TraceExplorer > status filter
calls onStatusFilterChange when filter is clicked
passed
0.02s
TraceExplorer > duration display
displays formatted duration
passed
0.057s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\reviews\__tests__\route.test.ts
7.147s
GET /api/admin/reviews > Authorization
returns 401 when not authenticated
passed
0.034s
GET /api/admin/reviews > Authorization
returns 403 when not admin
passed
0.005s
GET /api/admin/reviews > Successful requests
returns all reviews for admin
passed
0.012s
GET /api/admin/reviews > Successful requests
includes product and user info in response
passed
0.005s
GET /api/admin/reviews > Successful requests
calculates helpful counts correctly
passed
0.01s
GET /api/admin/reviews > Successful requests
supports pagination
passed
0.005s
GET /api/admin/reviews > Successful requests
supports sorting
passed
0.007s
GET /api/admin/reviews > Successful requests
supports filtering by rating
passed
0.003s
GET /api/admin/reviews > Successful requests
supports search
passed
0.005s
GET /api/admin/reviews > Successful requests
returns stats with distribution
passed
0.004s
GET /api/admin/reviews > Error handling
returns 500 on database error
passed
0.116s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\support\__tests__\chatbot-utils.test.ts
5.493s
Chatbot Utilities > detectIntent
detects track_order intent
passed
0.063s
Chatbot Utilities > detectIntent
detects create_ticket intent
passed
0.004s
Chatbot Utilities > detectIntent
detects view_faq intent
passed
0.004s
Chatbot Utilities > detectIntent
returns general for ambiguous queries
passed
0.011s
Chatbot Utilities > detectCategory
detects ORDER_ISSUE category
passed
0.005s
Chatbot Utilities > detectCategory
detects SHIPPING category
passed
0.003s
Chatbot Utilities > detectCategory
detects RETURNS_REFUNDS category
passed
0.044s
Chatbot Utilities > detectCategory
detects PAYMENT category
passed
0.002s
Chatbot Utilities > detectCategory
detects PRODUCT_INQUIRY category
passed
0.003s
Chatbot Utilities > detectCategory
detects ACCOUNT category
passed
0.006s
Chatbot Utilities > detectCategory
detects TECHNICAL category
passed
0.003s
Chatbot Utilities > detectCategory
detects FEEDBACK category
passed
0.003s
Chatbot Utilities > detectCategory
returns OTHER for unrecognized categories
passed
0.002s
Chatbot Utilities > getWelcomeResponse
returns welcome message with quick actions
passed
0.008s
Chatbot Utilities > getWelcomeResponse
includes valid quick action types
passed
0.003s
Text Processing > Stop word filtering
ignores common stop words in intent detection
passed
0.014s
Text Processing > Synonym matching
handles synonym variations for shipping
passed
0.003s
Text Processing > Synonym matching
handles synonym variations for returns
passed
0.002s
Edge Cases
handles empty strings
passed
0.003s
Edge Cases
handles mixed case
passed
0.002s
Edge Cases
handles special characters
passed
0.053s
Edge Cases
handles multiple intents by picking first match
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\hooks\__tests__\useToast.test.ts
5.418s
useToast > useToast hook
returns toast context value
passed
0.062s
useToast > useToast hook
calls addToast when adding a toast
passed
0.01s
useToast > useToast hook
calls removeToast when removing a toast
passed
0.046s
useToast > useSuccessToast
shows success toast with default title
passed
0.009s
useToast > useSuccessToast
shows success toast with custom title
passed
0.035s
useToast > useErrorToast
shows error toast with default title
passed
0.007s
useToast > useErrorToast
shows error toast with custom title
passed
0.012s
useToast > useWarningToast
shows warning toast with default title
passed
0.007s
useToast > useWarningToast
shows warning toast with custom title
passed
0.054s
useToast > useInfoToast
shows info toast without title
passed
0.006s
useToast > useInfoToast
shows info toast with title
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\cart\__tests__\merge.test.ts
6.318s
POST /api/cart/merge > Authentication
requires authentication
passed
0.024s
POST /api/cart/merge > Cart merging
returns success for empty anonymous cart
passed
0.016s
POST /api/cart/merge > Cart merging
merges anonymous cart with user cart
passed
0.007s
POST /api/cart/merge > Cart merging
handles quantity conflicts
passed
0.006s
POST /api/cart/merge > Cart merging
includes device ID in merge
passed
0.01s
POST /api/cart/merge > Validation
rejects non-array anonymousItems
passed
0.006s
POST /api/cart/merge > Validation
rejects invalid cart items format
passed
0.013s
POST /api/cart/merge > Error handling
returns 500 on database error
passed
0.1s
POST /api/cart/merge > Error handling
returns 500 on merge apply error
passed
0.007s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\webhooks\stripe\__tests__\route.test.ts
3.602s
POST /api/webhooks/stripe > Signature validation
returns 400 for missing signature
passed
0.018s
POST /api/webhooks/stripe > Signature validation
returns 500 if webhook secret not configured
passed
0.006s
POST /api/webhooks/stripe > Signature validation
returns 400 for invalid signature
passed
0.007s
POST /api/webhooks/stripe > payment_intent.succeeded event
updates order status to PROCESSING
passed
0.008s
POST /api/webhooks/stripe > payment_intent.succeeded event
logs warning if orderId missing in metadata
passed
0.013s
POST /api/webhooks/stripe > payment_intent.payment_failed event
updates order status to CANCELLED
passed
0.025s
POST /api/webhooks/stripe > payment_intent.payment_failed event
handles missing orderId gracefully
passed
0.007s
POST /api/webhooks/stripe > payment_intent.canceled event
updates order status to CANCELLED
passed
0.005s
POST /api/webhooks/stripe > charge.refunded event
updates order status when fully refunded
passed
0.015s
POST /api/webhooks/stripe > charge.refunded event
logs refund info
passed
0.009s
POST /api/webhooks/stripe > charge.dispute.created event
logs dispute information
passed
0.026s
POST /api/webhooks/stripe > Unhandled event types
logs unhandled event types and returns success
passed
0.004s
POST /api/webhooks/stripe > Error handling
returns 500 on database error during order update
passed
0.005s
POST /api/webhooks/stripe > Event logging
logs received event details
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\hero\promo-banners\__tests__\route.test.ts
8.179s
/api/admin/hero/promo-banners > GET /api/admin/hero/promo-banners > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.043s
/api/admin/hero/promo-banners > GET /api/admin/hero/promo-banners > Authentication & Authorization
returns 403 for non-admin user
passed
0.006s
/api/admin/hero/promo-banners > GET /api/admin/hero/promo-banners > Successful requests
returns all promo banners for admin
passed
0.016s
/api/admin/hero/promo-banners > GET /api/admin/hero/promo-banners > Successful requests
returns banners ordered by order field
passed
0.008s
/api/admin/hero/promo-banners > GET /api/admin/hero/promo-banners > Successful requests
returns empty array when no banners exist
passed
0.006s
/api/admin/hero/promo-banners > GET /api/admin/hero/promo-banners > Error handling
returns 500 on database error
passed
0.085s
/api/admin/hero/promo-banners > POST /api/admin/hero/promo-banners > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.006s
/api/admin/hero/promo-banners > POST /api/admin/hero/promo-banners > Authentication & Authorization
returns 403 for non-admin user
passed
0.005s
/api/admin/hero/promo-banners > POST /api/admin/hero/promo-banners > Validation
returns 400 when required fields are missing
passed
0.017s
/api/admin/hero/promo-banners > POST /api/admin/hero/promo-banners > Validation
returns 400 when neither productId nor ctaLink provided
passed
0.007s
/api/admin/hero/promo-banners > POST /api/admin/hero/promo-banners > Validation
returns 400 when size is invalid
passed
0.013s
/api/admin/hero/promo-banners > POST /api/admin/hero/promo-banners > Validation
returns 404 when product does not exist
passed
0.005s
/api/admin/hero/promo-banners > POST /api/admin/hero/promo-banners > Successful creation
creates promo banner with custom URL
passed
0.006s
/api/admin/hero/promo-banners > POST /api/admin/hero/promo-banners > Successful creation
creates promo banner with product link
passed
0.005s
/api/admin/hero/promo-banners > POST /api/admin/hero/promo-banners > Successful creation
creates promo banner with all fields
passed
0.005s
/api/admin/hero/promo-banners > POST /api/admin/hero/promo-banners > Successful creation
auto-assigns order when not provided
passed
0.004s
/api/admin/hero/promo-banners > POST /api/admin/hero/promo-banners > Successful creation
uses provided order when specified
passed
0.004s
/api/admin/hero/promo-banners > POST /api/admin/hero/promo-banners > Error handling
returns 500 on database error
passed
0.01s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\__tests__\performance.test.ts
9.289s
Performance Utilities > measureApiPerformance
should return duration in milliseconds
passed
0.04s
Performance Utilities > measureApiPerformance
should log warning for slow APIs (>200ms)
passed
0.007s
Performance Utilities > measureApiPerformance
should log debug for fast APIs (<200ms)
passed
0.003s
Performance Utilities > recordMetrics
should record metrics for an endpoint
passed
0.004s
Performance Utilities > recordMetrics
should bound metrics history to 1000 entries
passed
0.117s
Performance Utilities > getEndpointStats
should return null for unknown endpoint
passed
0.018s
Performance Utilities > getEndpointStats
should calculate average duration
passed
0.003s
Performance Utilities > getEndpointStats
should calculate p95 duration
passed
0.003s
Performance Utilities > getEndpointStats
should calculate success rate
passed
0.003s
Performance Utilities > getAllEndpointStats
should return stats for all endpoints
passed
0.003s
Performance Utilities > clearMetrics
should clear all metrics
passed
0.002s
Performance Utilities > withPerformanceTracking
should track successful operations
passed
0.004s
Performance Utilities > withPerformanceTracking
should track failed operations
passed
0.054s
Performance Utilities > withPerformanceTracking
should measure actual duration
passed
0.077s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\TimeRangeSelector\TimeRangeSelector.test.tsx
8.181s
TimeRangeSelector > Rendering
renders without crashing
passed
0.155s
TimeRangeSelector > Rendering
renders all time range options
passed
0.115s
TimeRangeSelector > Rendering
highlights the selected option
passed
0.04s
TimeRangeSelector > Interaction
calls onChange when clicking a different option
passed
0.063s
TimeRangeSelector > Interaction
calls onChange with correct value for each option
passed
0.073s
TimeRangeSelector > Interaction
does not call onChange when disabled
passed
0.038s
TimeRangeSelector > Accessibility
has proper role for button group
passed
0.159s
TimeRangeSelector > Accessibility
buttons have aria-pressed attribute
passed
0.094s
TimeRangeSelector > Accessibility
disabled buttons have disabled attribute
passed
0.058s
TimeRangeSelector > Custom className
applies custom className
passed
0.012s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\cart\__tests__\cart-storage.test.ts
5.864s
cart-storage > CartStorage class > constructor
creates cookie storage instance
passed
0.027s
cart-storage > CartStorage class > constructor
creates database storage instance with userId
passed
0.004s
cart-storage > CartStorage class > save method
saves to cookie when type is cookie
passed
0.009s
cart-storage > CartStorage class > save method
returns false when cookie save fails
passed
0.003s
cart-storage > CartStorage class > save method
returns false for database type (not implemented)
passed
0.044s
cart-storage > CartStorage class > load method
loads from cookie when type is cookie
passed
0.005s
cart-storage > CartStorage class > load method
returns empty array when cookie is null
passed
0.004s
cart-storage > CartStorage class > load method
returns empty array for database type (not implemented)
passed
0.005s
cart-storage > CartStorage class > clear method
clears cookie when type is cookie
passed
0.004s
cart-storage > CartStorage class > clear method
logs warning for database type (not implemented)
passed
0.005s
cart-storage > CartStorage class > getSessionId method
returns anonymous session ID for cookie type
passed
0.043s
cart-storage > CartStorage class > getSessionId method
returns user session ID for database type with deviceId
passed
0.007s
cart-storage > CartStorage class > getSessionId method
returns user session ID with default device for database type
passed
0.005s
cart-storage > CartStorage.create static method
creates cookie storage for unauthenticated users
passed
0.005s
cart-storage > CartStorage.create static method
creates cookie storage when authenticated but no userId
passed
0.006s
cart-storage > CartStorage.create static method
creates database storage for authenticated users with userId
passed
0.031s
cart-storage > CartStorage.create static method
creates database storage without deviceId
passed
0.003s
cart-storage > CartStorage.isStorageAvailable static method
returns boolean indicating storage availability
passed
0.011s
cart-storage > CartStorage.isStorageAvailable static method
checks cookie availability without throwing
passed
0.007s
cart-storage > getCurrentStorageType helper
returns database for authenticated users
passed
0.008s
cart-storage > getCurrentStorageType helper
returns cookie for unauthenticated users
passed
0.04s
cart-storage > getCartItemsForMigration helper
returns cart items from cookie
passed
0.007s
cart-storage > getCartItemsForMigration helper
returns null when no cart cookie exists
passed
0.004s
cart-storage > integration scenarios
handles cart lifecycle for anonymous user
passed
0.004s
cart-storage > integration scenarios
handles cart lifecycle for authenticated user
passed
0.007s
cart-storage > integration scenarios
handles migration scenario
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\auth\__tests__\csrf.test.ts
5.786s
CSRF Protection > generateCsrfToken
generates a non-empty token
passed
0.008s
CSRF Protection > generateCsrfToken
generates unique tokens on each call
passed
0.003s
CSRF Protection > generateCsrfToken
generates base64 encoded tokens
passed
0.003s
CSRF Protection > generateCsrfToken
token contains valid JSON when decoded
passed
0.025s
CSRF Protection > generateCsrfToken
token timestamp is current time
passed
0.004s
CSRF Protection > validateCsrfToken
returns false when header token is null
passed
0.003s
CSRF Protection > validateCsrfToken
returns false when cookie token is null
passed
0.003s
CSRF Protection > validateCsrfToken
returns false when both tokens are null
passed
0.003s
CSRF Protection > validateCsrfToken
returns true when tokens match
passed
0.003s
CSRF Protection > validateCsrfToken
returns false when tokens do not match
passed
0.002s
CSRF Protection > validateCsrfToken
returns false for malformed header token
passed
0.003s
CSRF Protection > validateCsrfToken
returns false for malformed cookie token
passed
0.002s
CSRF Protection > validateCsrfToken
returns false for expired tokens
passed
0.07s
CSRF Protection > validateCsrfToken
validates token just before expiry
passed
0.002s
CSRF Protection > parseCsrfToken
parses valid token
passed
0.003s
CSRF Protection > parseCsrfToken
returns null for invalid base64
passed
0.002s
CSRF Protection > parseCsrfToken
returns null for invalid JSON
passed
0.002s
CSRF Protection > parseCsrfToken
returns null for missing token field
passed
0.002s
CSRF Protection > parseCsrfToken
returns null for missing timestamp field
passed
0.002s
CSRF Protection > Token Structure
token inner value has sufficient entropy (32 bytes = 64 hex chars)
passed
0.003s
CSRF Protection > Token Structure
can round-trip token through encoding/decoding
passed
0.009s
CSRF Protection > Token Structure
hash comparison provides timing-safe equality
passed
0.003s
CSRF Protection > isTokenExpired
returns false for recent timestamp
passed
0.002s
CSRF Protection > isTokenExpired
returns false for timestamp just under expiry
passed
0.002s
CSRF Protection > isTokenExpired
returns true for timestamp past expiry
passed
0.002s
CSRF Protection > isTokenExpired
returns true for very old timestamp
passed
0.002s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\services\__tests__\chatbot.service.test.ts
6.067s
ChatbotService > generateBotResponse > greeting intent
should respond to "hi" with greeting and quick replies
passed
0.046s
ChatbotService > generateBotResponse > greeting intent
should respond to "hello" with greeting
passed
0.012s
ChatbotService > generateBotResponse > greeting intent
should respond to "good morning" with greeting
passed
0.05s
ChatbotService > generateBotResponse > order_status intent
should ask for login when user is not authenticated
passed
0.006s
ChatbotService > generateBotResponse > order_status intent
should show recent orders when user is authenticated
passed
0.006s
ChatbotService > generateBotResponse > order_status intent
should handle no orders found
passed
0.071s
ChatbotService > generateBotResponse > return_request intent
should explain return policy
passed
0.005s
ChatbotService > generateBotResponse > return_request intent
should match "refund" keyword
passed
0.003s
ChatbotService > generateBotResponse > shipping_info intent
should explain shipping options
passed
0.006s
ChatbotService > generateBotResponse > shipping_info intent
should match "delivery time" query
passed
0.007s
ChatbotService > generateBotResponse > product_question intent
should prompt for product details when query is vague
passed
0.004s
ChatbotService > generateBotResponse > product_question intent
should search for products when query has captured entity
passed
0.003s
ChatbotService > generateBotResponse > product_question intent
should handle empty search results
passed
0.004s
ChatbotService > generateBotResponse > payment_issue intent
should provide payment troubleshooting
passed
0.005s
ChatbotService > generateBotResponse > agent_request intent
should trigger handoff for agent request
passed
0.003s
ChatbotService > generateBotResponse > agent_request intent
should match "live chat" request
passed
0.003s
ChatbotService > generateBotResponse > store_hours intent
should return business hours
passed
0.004s
ChatbotService > generateBotResponse > contact_info intent
should return contact information
passed
0.004s
ChatbotService > generateBotResponse > low confidence / unknown intent
should offer quick replies for unclear messages
passed
0.039s
ChatbotService > handleQuickReply
should handle "Track my order" quick reply
passed
0.004s
ChatbotService > handleQuickReply
should handle "Return an item" quick reply
passed
0.003s
ChatbotService > handleQuickReply
should handle "Speak to an agent" quick reply
passed
0.003s
ChatbotService > handleQuickReply
should handle "Browse categories" quick reply
passed
0.003s
ChatbotService > handleQuickReply
should handle "Popular products" quick reply
passed
0.003s
ChatbotService > handleQuickReply
should return default response for unknown quick reply
passed
0.004s
ChatbotService > getSuggestedResponses
should return default suggestions
passed
0.004s
ChatbotService > isPositiveSentiment
should detect positive sentiment
passed
0.038s
ChatbotService > isPositiveSentiment
should not detect positive sentiment in neutral messages
passed
0.003s
ChatbotService > isFrustrated
should detect frustration
passed
0.004s
ChatbotService > isFrustrated
should not detect frustration in neutral messages
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\redux\features\__tests__\wishlistSliceApi.test.ts
6.219s
Wishlist API Slice > Initial state
should have empty items array
passed
0.03s
Wishlist API Slice > Initial state
should have loading false
passed
0.007s
Wishlist API Slice > Initial state
should have error null
passed
0.008s
Wishlist API Slice > Synchronous actions > addItemToWishlist
should add item to empty wishlist
passed
0.017s
Wishlist API Slice > Synchronous actions > addItemToWishlist
should not add duplicate item
passed
0.004s
Wishlist API Slice > Synchronous actions > addItemToWishlist
should add different items
passed
0.009s
Wishlist API Slice > Synchronous actions > addItemToWishlist
should preserve stored item properties
passed
0.028s
Wishlist API Slice > Synchronous actions > removeItemFromWishlist
should remove item from wishlist
passed
0.005s
Wishlist API Slice > Synchronous actions > removeItemFromWishlist
should not affect other items
passed
0.018s
Wishlist API Slice > Synchronous actions > removeItemFromWishlist
should handle removing non-existent item
passed
0.005s
Wishlist API Slice > Synchronous actions > removeItemFromWishlist
should handle removing from empty wishlist
passed
0.005s
Wishlist API Slice > Synchronous actions > removeAllItemsFromWishlist
should clear all items
passed
0.033s
Wishlist API Slice > Synchronous actions > removeAllItemsFromWishlist
should work on empty wishlist
passed
0.003s
Wishlist API Slice > Synchronous actions > clearError
should clear error state
passed
0.008s
Wishlist API Slice > Async thunks > fetchWishlist
should set loading true when pending
passed
0.004s
Wishlist API Slice > Async thunks > fetchWishlist
should populate items on success
passed
0.005s
Wishlist API Slice > Async thunks > fetchWishlist
should set error on failure
passed
0.004s
Wishlist API Slice > Async thunks > fetchWishlist
should handle non-Error rejection
passed
0.005s
Wishlist API Slice > Async thunks > fetchWishlist
should replace existing items
passed
0.005s
Wishlist API Slice > Async thunks > addToWishlistAsync
should set loading true when pending
passed
0.004s
Wishlist API Slice > Async thunks > addToWishlistAsync
should update wishlist items on success
passed
0.007s
Wishlist API Slice > Async thunks > addToWishlistAsync
should set error on failure
passed
0.004s
Wishlist API Slice > Async thunks > addToWishlistAsync
should handle non-Error rejection
passed
0.004s
Wishlist API Slice > Async thunks > addToWishlistAsync
should re-fetch wishlist after adding
passed
0.008s
Wishlist API Slice > Async thunks > removeFromWishlistAsync
should set loading true when pending
passed
0.004s
Wishlist API Slice > Async thunks > removeFromWishlistAsync
should update wishlist items on success
passed
0.004s
Wishlist API Slice > Async thunks > removeFromWishlistAsync
should set error on failure
passed
0.004s
Wishlist API Slice > Async thunks > removeFromWishlistAsync
should handle non-Error rejection
passed
0.003s
Wishlist API Slice > Async thunks > removeFromWishlistAsync
should re-fetch wishlist after removing
passed
0.003s
Wishlist API Slice > Selectors > selectWishlistItems
should return wishlist items
passed
0.005s
Wishlist API Slice > Selectors > selectWishlistItems
should return empty array for empty wishlist
passed
0.003s
Wishlist API Slice > Selectors > selectIsInWishlist
should return true if item is in wishlist
passed
0.004s
Wishlist API Slice > Selectors > selectIsInWishlist
should return false if item is not in wishlist
passed
0.003s
Wishlist API Slice > Selectors > selectIsInWishlist
should return false for empty wishlist
passed
0.011s
Wishlist API Slice > Selectors > selectIsInWishlist
should work with multiple items
passed
0.007s
Wishlist API Slice > State transitions
should transition through pending -> fulfilled states
passed
0.004s
Wishlist API Slice > State transitions
should transition through pending -> rejected states
passed
0.025s
Wishlist API Slice > State transitions
should clear error when starting new request
passed
0.005s
Wishlist API Slice > Edge cases
should handle empty API response
passed
0.005s
Wishlist API Slice > Edge cases
should handle items without optional fields
passed
0.004s
Wishlist API Slice > Edge cases
should handle rapid successive requests
passed
0.005s
Wishlist API Slice > Edge cases
should handle add failure without affecting current state
passed
0.004s
Wishlist API Slice > Edge cases
should maintain state integrity through complex operations
passed
0.005s
Wishlist API Slice > API error handling
should handle network timeout
passed
0.032s
Wishlist API Slice > API error handling
should handle API rate limiting
passed
0.003s
Wishlist API Slice > API error handling
should handle server errors
passed
0.009s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\analytics\services\__tests__\report.service.test.ts
7.495s
Report Service > generateAnalyticsReport
should return JSON report by default
passed
0.017s
Report Service > generateAnalyticsReport
should include period dates in report
passed
0.006s
Report Service > generateAnalyticsReport
should return CSV format when requested
passed
0.008s
Report Service > generateAnalyticsReport
should include all sections in CSV report
passed
0.007s
Report Service > generateAnalyticsReport
should return HTML format when requested
passed
0.01s
Report Service > generateAnalyticsReport
should include styled components in HTML report
passed
0.004s
Report Service > generateAnalyticsReport
should include revenue metrics in all formats
passed
0.004s
Report Service > generateAnalyticsReport
should handle empty data gracefully
passed
0.004s
Report Service > scheduleWeeklyReport
should log report generation
passed
0.008s
Report Service > scheduleWeeklyReport
should handle multiple email recipients
passed
0.004s
Report Service > scheduleWeeklyReport
should generate HTML report for email
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\redux\features\__tests__\notificationsSlice.test.ts
3.121s
Notifications Slice > Initial State
should have the correct initial state
passed
0.011s
Notifications Slice > Panel Actions
should open panel
passed
0.004s
Notifications Slice > Panel Actions
should close panel
passed
0.002s
Notifications Slice > Panel Actions
should toggle panel
passed
0.003s
Notifications Slice > Polling Configuration
should set polling interval
passed
0.003s
Notifications Slice > Notification Management
should add a notification and increment unread count
passed
0.005s
Notifications Slice > Notification Management
should add a read notification without incrementing unread count
passed
0.002s
Notifications Slice > Notification Management
should remove a notification and decrement unread count
passed
0.003s
Notifications Slice > Notification Management
should not decrement unread count when removing a read notification
passed
0.002s
Notifications Slice > Notification Management
should update a notification
passed
0.039s
Notifications Slice > Notification Management
should decrement unread count when marking notification as read via update
passed
0.003s
Notifications Slice > Mark As Read Actions
should mark notification as read locally
passed
0.003s
Notifications Slice > Mark As Read Actions
should not change unread count if already read
passed
0.001s
Notifications Slice > Mark As Read Actions
should mark all notifications as read locally
passed
0.008s
Notifications Slice > Utility Actions
should set unread count
passed
0.004s
Notifications Slice > Utility Actions
should clear notifications
passed
0.003s
Notifications Slice > Utility Actions
should clear error
passed
0.009s
Notifications Slice > Utility Actions
should reset to initial state
passed
0.005s
Notifications Slice > Async Thunk: fetchNotifications
should set loading to true on pending
passed
0.002s
Notifications Slice > Async Thunk: fetchNotifications
should update state on fulfilled
passed
0.008s
Notifications Slice > Async Thunk: fetchNotifications
should set error on rejected
passed
0.016s
Notifications Slice > Async Thunk: markNotificationAsRead
should optimistically mark notification as read on pending
passed
0.003s
Notifications Slice > Async Thunk: markNotificationAsRead
should revert on rejected
passed
0.003s
Notifications Slice > Async Thunk: markAllNotificationsAsRead
should optimistically mark all as read on pending
passed
0.002s
Notifications Slice > Async Thunk: deleteNotification
should optimistically remove notification on pending
passed
0.002s
Notifications Slice > Async Thunk: deleteAllReadNotifications
should optimistically remove all read notifications on pending
passed
0.002s
Notifications Slice > Selectors
should select notifications
passed
0.002s
Notifications Slice > Selectors
should select unread count
passed
0.001s
Notifications Slice > Selectors
should select pagination
passed
0.002s
Notifications Slice > Selectors
should select loading state
passed
0.001s
Notifications Slice > Selectors
should select error state
passed
0.002s
Notifications Slice > Selectors
should select panel open state
passed
0.001s
Notifications Slice > Selectors
should select polling interval
passed
0.024s
Notifications Slice > Selectors
should select last fetched timestamp
passed
0.001s
Notifications Slice > Selectors
should select unread notifications
passed
0.015s
Notifications Slice > Selectors
should select read notifications
passed
0.007s
Notifications Slice > Selectors
should select has unread notifications
passed
0.002s
Notifications Slice > Selectors
should determine if should refetch based on polling interval
passed
0.002s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\images\audit\__tests__\route.test.ts
5.994s
GET /api/admin/images/audit > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.013s
GET /api/admin/images/audit > Authentication & Authorization
returns 401 for session without email
passed
0.004s
GET /api/admin/images/audit > Authentication & Authorization
returns 403 for non-admin user
passed
0.021s
GET /api/admin/images/audit > Successful audit
returns complete audit report
passed
0.006s
GET /api/admin/images/audit > Successful audit
calculates completion rate correctly
passed
0.005s
GET /api/admin/images/audit > Successful audit
categorizes products correctly
passed
0.006s
GET /api/admin/images/audit > Successful audit
handles empty products list
passed
0.007s
GET /api/admin/images/audit > Successful audit
handles directory read error gracefully
passed
0.011s
GET /api/admin/images/audit > Successful audit
filters only .webp files from directory
passed
0.047s
GET /api/admin/images/audit > Error handling
returns 500 on database error
passed
0.151s
GET /api/admin/images/audit > Error handling
returns generic error for non-Error objects
passed
0.044s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\cron\cleanup-errors\__tests__\route.test.ts
5.097s
Error Cleanup Cron Job > authorization
allows requests in development without auth
passed
0.02s
Error Cleanup Cron Job > authorization
rejects requests with wrong auth token when CRON_SECRET is set
passed
0.006s
Error Cleanup Cron Job > authorization
allows requests with correct auth token
passed
0.008s
Error Cleanup Cron Job > cleanup operations
deletes old error logs
passed
0.01s
Error Cleanup Cron Job > cleanup operations
resets counts on old resolved statistics
passed
0.005s
Error Cleanup Cron Job > cleanup operations
deletes orphaned statistics
passed
0.004s
Error Cleanup Cron Job > cleanup operations
returns cleanup summary
passed
0.006s
Error Cleanup Cron Job > cleanup operations
uses correct cutoff date (30 days ago)
passed
0.004s
Error Cleanup Cron Job > error handling
returns 500 on database error
passed
0.098s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\redux\features\__tests__\cartSlice.test.ts
5.068s
Cart Slice > addItemToCart
should add item to empty cart
passed
0.018s
Cart Slice > addItemToCart
should increase quantity if item already exists
passed
0.006s
Cart Slice > addItemToCart
should add different items
passed
0.005s
Cart Slice > addItemToCart
should preserve image data
passed
0.055s
Cart Slice > addItemToCart
should handle items without images
passed
0.004s
Cart Slice > removeItemFromCart
should remove item from cart
passed
0.004s
Cart Slice > removeItemFromCart
should not affect other items
passed
0.004s
Cart Slice > removeItemFromCart
should handle removing non-existent item
passed
0.017s
Cart Slice > removeItemFromCart
should remove correct item when multiple items exist
passed
0.021s
Cart Slice > updateCartItemQuantity
should update item quantity
passed
0.004s
Cart Slice > updateCartItemQuantity
should update to zero quantity
passed
0.004s
Cart Slice > updateCartItemQuantity
should not affect other items
passed
0.004s
Cart Slice > updateCartItemQuantity
should handle updating non-existent item
passed
0.004s
Cart Slice > updateCartItemQuantity
should handle large quantities
passed
0.003s
Cart Slice > removeAllItemsFromCart
should clear empty cart
passed
0.003s
Cart Slice > removeAllItemsFromCart
should clear cart with items
passed
0.027s
Cart Slice > removeAllItemsFromCart
should clear cart with multiple items
passed
0.012s
Cart Slice > Cart combinations
should handle complex add/remove/update sequence
passed
0.005s
Cart Slice > Cart combinations
should maintain data integrity through operations
passed
0.01s
Cart Slice > initializeAnonymousCart
should initialize cart with anonymous items
passed
0.004s
Cart Slice > initializeAnonymousCart
should replace existing items
passed
0.003s
Cart Slice > initializeUserCart
should initialize cart with user items
passed
0.045s
Cart Slice > setCartLoaded
should set cart loaded status
passed
0.003s
Cart Slice > setCartLoaded
should set cart not loaded
passed
0.003s
Cart Slice > setCartSyncStatus
should set sync status to syncing
passed
0.003s
Cart Slice > setCartSyncStatus
should set sync status to idle
passed
0.002s
Cart Slice > setIsAnonymous
should set anonymous status
passed
0.003s
Cart Slice > Selectors
selectCartItems returns cart items
passed
0.004s
Cart Slice > Selectors
selectTotalPrice calculates total correctly
passed
0.005s
Cart Slice > Selectors
selectTotalPrice handles empty cart
passed
0.013s
Cart Slice > Selectors
selectTotalItemCount counts items correctly
passed
0.007s
Cart Slice > Selectors
selectIsAnonymous returns correct status
passed
0.002s
Cart Slice > Selectors
selectIsCartLoaded returns loaded status
passed
0.002s
Cart Slice > Selectors
selectCartSyncStatus returns sync status
passed
0.003s
Cart Slice > Price calculations with decimals
should handle decimal prices correctly
passed
0.009s
Cart Slice > Price calculations with decimals
should handle multiple decimal prices
passed
0.004s
Cart Slice > syncAnonymousCartToCookie
should sync cart to cookie when anonymous
passed
0.044s
Cart Slice > syncAnonymousCartToCookie
should not sync when not anonymous
passed
0.032s
Cart Slice > clearAnonymousCart
should clear cart and delete cookie
passed
0.003s
Cart Slice > clearAnonymousCart
should work on empty cart
passed
0.002s
Cart Slice > clearCart
should clear all items from cart
passed
0.003s
Cart Slice > clearCart
should not affect other state properties
passed
0.003s
Cart Slice > selectLastSyncTime
should return last sync time
passed
0.002s
Cart Slice > selectLastSyncTime
should return null when not synced
passed
0.003s
Cart Slice > fetchCart async thunk
should handle fetchCart.pending
passed
0.002s
Cart Slice > fetchCart async thunk
should handle fetchCart.fulfilled
passed
0.003s
Cart Slice > fetchCart async thunk
should handle fetchCart.rejected
passed
0.003s
Cart Slice > fetchCart async thunk
should update loading state during fetch
passed
0.002s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\cart\__tests__\cart-cookie.test.ts
5.865s
cart-cookie > setCartCookie
should save cart items to cookie
passed
0.015s
cart-cookie > setCartCookie
should handle empty cart
passed
0.012s
cart-cookie > setCartCookie
should truncate cart if it exceeds 4KB
passed
0.007s
cart-cookie > setCartCookie
should set cart version hash
passed
0.015s
cart-cookie > getCartCookie
should retrieve cart items from cookie
passed
0.005s
cart-cookie > getCartCookie
should return null if cookie does not exist
passed
0.003s
cart-cookie > getCartCookie
should return null for invalid JSON
passed
0.099s
cart-cookie > getCartCookie
should return null for non-array data
passed
0.003s
cart-cookie > deleteCartCookie
should remove cart cookie
passed
0.003s
cart-cookie > deleteCartCookie
should remove cart version cookie
passed
0.022s
cart-cookie > getAnonymousSessionId
should return existing session ID
passed
0.004s
cart-cookie > getAnonymousSessionId
should create new session ID if none exists
passed
0.004s
cart-cookie > setCartVersion
should set cart version hash
passed
0.005s
cart-cookie > getCartVersion
should retrieve cart version hash
passed
0.005s
cart-cookie > getCartVersion
should return null if no version exists
passed
0.021s
cart-cookie > clearAllCartCookies
should clear all cart-related cookies
passed
0.066s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\charts\RequestVolumeChart\RequestVolumeChart.test.tsx
7.799s
RequestVolumeChart > Rendering
renders without crashing
passed
0.139s
RequestVolumeChart > Rendering
displays the chart title
passed
0.073s
RequestVolumeChart > Rendering
displays time range in title
passed
0.035s
RequestVolumeChart > Rendering
renders the area chart
passed
0.05s
RequestVolumeChart > Loading State
displays loading message when isLoading is true
passed
0.084s
RequestVolumeChart > Empty State
displays empty message when no data
passed
0.16s
RequestVolumeChart > String timestamps
handles string timestamps correctly
passed
0.039s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\monitoring\performance\__tests__\aggregate.test.ts
6.454s
Performance Aggregation API > GET /api/admin/monitoring/performance/aggregate
returns aggregated data with valid groupBy
passed
0.024s
Performance Aggregation API > GET /api/admin/monitoring/performance/aggregate
supports different groupBy options
passed
0.016s
Performance Aggregation API > GET /api/admin/monitoring/performance/aggregate
supports different metric options
passed
0.036s
Performance Aggregation API > GET /api/admin/monitoring/performance/aggregate
returns error when groupBy is missing
passed
0.026s
Performance Aggregation API > GET /api/admin/monitoring/performance/aggregate
returns error for invalid groupBy
passed
0.004s
Performance Aggregation API > GET /api/admin/monitoring/performance/aggregate
returns error for invalid metric
passed
0.005s
Performance Aggregation API > GET /api/admin/monitoring/performance/aggregate
supports custom limit
passed
0.004s
Performance Aggregation API > GET /api/admin/monitoring/performance/aggregate
validates limit range
passed
0.005s
Performance Aggregation API > GET /api/admin/monitoring/performance/aggregate
requires admin authentication
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\hero\carousel\__tests__\route.test.ts
6.905s
/api/admin/hero/carousel > GET /api/admin/hero/carousel > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.015s
/api/admin/hero/carousel > GET /api/admin/hero/carousel > Authentication & Authorization
returns 403 for non-admin user
passed
0.006s
/api/admin/hero/carousel > GET /api/admin/hero/carousel > Successful requests
returns all carousel items for admin
passed
0.006s
/api/admin/hero/carousel > GET /api/admin/hero/carousel > Successful requests
returns items ordered by order field
passed
0.008s
/api/admin/hero/carousel > GET /api/admin/hero/carousel > Successful requests
returns empty array when no items exist
passed
0.005s
/api/admin/hero/carousel > GET /api/admin/hero/carousel > Error handling
returns 500 on database error
passed
0.052s
/api/admin/hero/carousel > POST /api/admin/hero/carousel > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.021s
/api/admin/hero/carousel > POST /api/admin/hero/carousel > Authentication & Authorization
returns 403 for non-admin user
passed
0.006s
/api/admin/hero/carousel > POST /api/admin/hero/carousel > Validation
returns 400 when productId is missing
passed
0.014s
/api/admin/hero/carousel > POST /api/admin/hero/carousel > Validation
returns 400 when productId is invalid
passed
0.014s
/api/admin/hero/carousel > POST /api/admin/hero/carousel > Validation
returns 404 when product does not exist
passed
0.007s
/api/admin/hero/carousel > POST /api/admin/hero/carousel > Successful creation
creates carousel item with required fields only
passed
0.007s
/api/admin/hero/carousel > POST /api/admin/hero/carousel > Successful creation
creates carousel item with all fields
passed
0.007s
/api/admin/hero/carousel > POST /api/admin/hero/carousel > Successful creation
auto-assigns order when not provided
passed
0.006s
/api/admin/hero/carousel > POST /api/admin/hero/carousel > Successful creation
uses provided order when specified
passed
0.016s
/api/admin/hero/carousel > POST /api/admin/hero/carousel > Error handling
returns 500 on database error
passed
0.007s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\monitoring\__tests__\alertScheduler.test.ts
7.629s
alertScheduler > startAlertScheduler
starts the scheduler
passed
0.037s
alertScheduler > startAlertScheduler
runs evaluation immediately when requested
passed
0.005s
alertScheduler > startAlertScheduler
does not run immediately when runImmediately is false
passed
0.004s
alertScheduler > startAlertScheduler
warns if scheduler is already running
passed
0.004s
alertScheduler > startAlertScheduler
runs evaluation on interval
passed
0.008s
alertScheduler > stopAlertScheduler
stops the scheduler
passed
0.012s
alertScheduler > stopAlertScheduler
does nothing if scheduler is not running
passed
0.004s
alertScheduler > stopAlertScheduler
clears the interval
passed
0.003s
alertScheduler > isSchedulerRunning
returns false when scheduler is not running
passed
0.003s
alertScheduler > isSchedulerRunning
returns true when scheduler is running
passed
0.003s
alertScheduler > getSchedulerStatus
returns scheduler status
passed
0.004s
alertScheduler > getSchedulerStatus
includes alert stats from getAlertStats
passed
0.004s
alertScheduler > triggerManualEvaluation
triggers manual evaluation
passed
0.005s
alertScheduler > resetSchedulerStats
resets all statistics
passed
0.005s
alertScheduler > resetSchedulerStats
logs reset action
passed
0.003s
alertScheduler > error handling
increments consecutive errors on failure
passed
0.003s
alertScheduler > error handling
auto-stops after max consecutive errors
passed
0.004s
alertScheduler > error handling
resets consecutive errors on successful run
passed
0.003s
alertScheduler > statistics tracking
tracks total runs
passed
0.003s
alertScheduler > statistics tracking
tracks alerts fired
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\user\loyalty\__tests__\route.test.ts
6.18s
GET /api/user/loyalty > Authentication
returns 401 when not authenticated
passed
0.041s
GET /api/user/loyalty > No active program
returns not enrolled when no active program exists
passed
0.01s
GET /api/user/loyalty > Successful retrieval
returns existing loyalty data for enrolled user
passed
0.009s
GET /api/user/loyalty > Successful retrieval
auto-enrolls user when no loyalty record exists
passed
0.007s
GET /api/user/loyalty > Successful retrieval
calculates next tier correctly
passed
0.007s
GET /api/user/loyalty > Successful retrieval
returns null for next tier when at highest tier
passed
0.006s
GET /api/user/loyalty > Successful retrieval
includes referral code when available
passed
0.014s
GET /api/user/loyalty > Successful retrieval
returns all tiers with achievement status
passed
0.007s
GET /api/user/loyalty > Error handling
returns 500 on database error
passed
0.049s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\monitoring\performance\__tests__\export.test.ts
6.714s
Performance Export API > GET /api/admin/monitoring/performance/export
returns CSV export by default
passed
0.018s
Performance Export API > GET /api/admin/monitoring/performance/export
returns JSON export when format=json
passed
0.006s
Performance Export API > GET /api/admin/monitoring/performance/export
returns error for invalid format
passed
0.032s
Performance Export API > GET /api/admin/monitoring/performance/export
returns error for invalid time range
passed
0.005s
Performance Export API > GET /api/admin/monitoring/performance/export
passes path filter to query
passed
0.008s
Performance Export API > GET /api/admin/monitoring/performance/export
requires admin authentication
passed
0.003s
Performance Export API > GET /api/admin/monitoring/performance/export
requires admin role
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\cache\__tests__\cache-keys.test.ts
5.206s
CacheKeys > CACHE_VERSION
should be defined
passed
0.01s
CacheKeys > CACHE_VERSION
should start with "v"
passed
0.046s
CacheKeys > products
should generate versioned product keys
passed
0.004s
CacheKeys > products
should handle all() with and without params
passed
0.003s
CacheKeys > products
should generate category product keys
passed
0.002s
CacheKeys > products
should encode search queries
passed
0.002s
CacheKeys > categories
should generate versioned category keys
passed
0.016s
CacheKeys > content
should generate versioned content keys
passed
0.055s
CacheKeys > user
should generate versioned user keys
passed
0.006s
CacheKeys > orders
should generate versioned order keys
passed
0.003s
CacheKeys > search
should generate versioned search keys
passed
0.005s
InvalidationPatterns > allProducts
should return pattern for all products
passed
0.003s
InvalidationPatterns > product
should return array of keys to invalidate for a product
passed
0.004s
InvalidationPatterns > category
should return array of keys to invalidate for a category
passed
0.008s
InvalidationPatterns > user
should return array of keys to invalidate for a user
passed
0.003s
InvalidationPatterns > hero
should return array of keys to invalidate for hero content
passed
0.008s
CacheTTL
should have correct TTL values in seconds
passed
0.003s
RecommendedTTL
should have recommended TTLs for different data types
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\animations\__tests__\transitions.test.ts
4.951s
transitions > prefersReducedMotion
returns false when window is undefined (SSR)
passed
0.007s
transitions > prefersReducedMotion
returns false when user does not prefer reduced motion
passed
0.013s
transitions > prefersReducedMotion
returns true when user prefers reduced motion
passed
0.003s
transitions > prefersReducedMotion
queries the correct media query
passed
0.06s
transitions > getTransitionDuration
returns original duration when reduced motion is not preferred
passed
0.004s
transitions > getTransitionDuration
returns minimal duration when reduced motion is preferred
passed
0.004s
transitions > easing
has easeIn curve
passed
0.004s
transitions > easing
has easeOut curve
passed
0.002s
transitions > easing
has easeInOut curve
passed
0.002s
transitions > easing
has bounce curve
passed
0.012s
transitions > transitions presets
has fast transition preset
passed
0.002s
transitions > transitions presets
has base transition preset
passed
0.004s
transitions > transitions presets
has slow transition preset
passed
0.003s
transitions > transitions presets
has bounce transition preset
passed
0.003s
transitions > transitions presets
has spring transition preset
passed
0.005s
transitions > transitions presets
has springBounce transition preset
passed
0.003s
transitions > fade animations
fadeIn has correct variants
passed
0.004s
transitions > fade animations
fadeInUp has correct variants
passed
0.005s
transitions > fade animations
fadeInDown has correct variants
passed
0.019s
transitions > fade animations
fadeInLeft has correct variants
passed
0.003s
transitions > fade animations
fadeInRight has correct variants
passed
0.003s
transitions > scale animations
scaleIn has correct variants
passed
0.002s
transitions > scale animations
scaleInBounce has correct variants
passed
0.004s
transitions > slide animations
slideInUp has correct variants
passed
0.003s
transitions > slide animations
slideInDown has correct variants
passed
0.003s
transitions > slide animations
slideInLeft has correct variants
passed
0.002s
transitions > slide animations
slideInRight has correct variants
passed
0.002s
transitions > page transitions
pageTransition has initial state
passed
0.003s
transitions > page transitions
pageTransition has animate state with transition
passed
0.003s
transitions > page transitions
pageTransition has exit state
passed
0.003s
transitions > page transitions
pageFade has correct variants
passed
0.009s
transitions > stagger animations
staggerContainer has empty initial state
passed
0.002s
transitions > stagger animations
staggerContainer animate has stagger children config
passed
0.002s
transitions > stagger animations
staggerItem has correct variants
passed
0.002s
transitions > hover/tap animations
hoverScale scales up
passed
0.002s
transitions > hover/tap animations
tapScale scales down
passed
0.005s
transitions > hover/tap animations
hoverLift moves up
passed
0.003s
transitions > component-specific animations
modalVariants has correct structure
passed
0.003s
transitions > component-specific animations
backdropVariants has correct structure
passed
0.003s
transitions > component-specific animations
toastVariants has correct structure
passed
0.002s
transitions > component-specific animations
dropdownVariants has correct structure
passed
0.002s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\__tests__\event-tracking.test.ts
6.098s
event-tracking > trackEvent
sends event to Google Analytics
passed
0.016s
event-tracking > trackEvent
sends event to backend API
passed
0.062s
event-tracking > trackEvent
includes all required fields in backend API call
passed
0.076s
event-tracking > trackEvent
handles missing optional parameters
passed
0.005s
event-tracking > trackEvent
does not call gtag when window.gtag is undefined
passed
0.008s
event-tracking > trackEvent
silently handles fetch errors
passed
0.005s
event-tracking > eventTracking convenience functions > productView
tracks product view with correct parameters
passed
0.004s
event-tracking > eventTracking convenience functions > addToCart
tracks add to cart with price as value
passed
0.005s
event-tracking > eventTracking convenience functions > removeFromCart
tracks remove from cart with productId as value
passed
0.004s
event-tracking > eventTracking convenience functions > updateCartQuantity
tracks quantity update with new quantity as value
passed
0.004s
event-tracking > eventTracking convenience functions > addToWishlist
tracks wishlist add with productId as value
passed
0.004s
event-tracking > eventTracking convenience functions > removeFromWishlist
tracks wishlist remove with productId as value
passed
0.003s
event-tracking > eventTracking convenience functions > initiateCheckout
tracks checkout initiation with cart value and item count
passed
0.004s
event-tracking > eventTracking convenience functions > checkoutStep
tracks checkout step with step name and number
passed
0.004s
event-tracking > eventTracking convenience functions > completePurchase
tracks purchase completion with order details
passed
0.005s
event-tracking > eventTracking convenience functions > search
tracks search query with result count
passed
0.004s
event-tracking > eventTracking convenience functions > applyFilter
tracks filter application with type and value
passed
0.003s
event-tracking > eventTracking convenience functions > removeFilter
tracks filter removal with filter type
passed
0.004s
event-tracking > eventTracking convenience functions > changeSort
tracks sort option change
passed
0.005s
event-tracking > eventTracking convenience functions > signIn
tracks sign in with method
passed
0.004s
event-tracking > eventTracking convenience functions > signIn
tracks sign in with OAuth provider
passed
0.008s
event-tracking > eventTracking convenience functions > signUp
tracks sign up with method
passed
0.004s
event-tracking > eventTracking convenience functions > signOut
tracks sign out
passed
0.004s
event-tracking > eventTracking convenience functions > pageView
tracks page view with path
passed
0.005s
event-tracking > eventTracking convenience functions > pageView
tracks page view with path and title
passed
0.004s
event-tracking > eventTracking convenience functions > error
tracks error with type and message
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\categories\__tests__\route.test.ts
5.338s
/api/admin/categories > GET /api/admin/categories
returns all categories with hierarchy and counts
passed
0.08s
/api/admin/categories > GET /api/admin/categories
returns categories ordered by title
passed
0.01s
/api/admin/categories > GET /api/admin/categories
returns empty array when no categories exist
passed
0.005s
/api/admin/categories > GET /api/admin/categories > Error handling
returns 500 on database error
passed
0.08s
/api/admin/categories > POST /api/admin/categories > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.026s
/api/admin/categories > POST /api/admin/categories > Authentication & Authorization
returns 401 for session without email or id
passed
0.005s
/api/admin/categories > POST /api/admin/categories > Authentication & Authorization
returns 403 for non-admin user
passed
0.004s
/api/admin/categories > POST /api/admin/categories > Validation
returns 400 when title is missing
passed
0.012s
/api/admin/categories > POST /api/admin/categories > Validation
returns 400 when slug is missing
passed
0.027s
/api/admin/categories > POST /api/admin/categories > Successful creation
creates category with required fields only
passed
0.007s
/api/admin/categories > POST /api/admin/categories > Successful creation
invalidates categories cache after creation
passed
0.005s
/api/admin/categories > POST /api/admin/categories > Successful creation
creates category with all fields
passed
0.008s
/api/admin/categories > POST /api/admin/categories > Error handling
returns 500 on database error
passed
0.071s
/api/admin/categories > POST /api/admin/categories > Error handling
returns generic error for non-Error objects
passed
0.051s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\products\search\suggestions\__tests__\route.test.ts
6.459s
GET /api/products/search/suggestions > Query validation
returns empty array when query is missing
passed
0.098s
GET /api/products/search/suggestions > Query validation
returns empty array when query is too short
passed
0.015s
GET /api/products/search/suggestions > Successful search
returns suggestions for valid query
passed
0.024s
GET /api/products/search/suggestions > Successful search
respects custom limit parameter
passed
0.007s
GET /api/products/search/suggestions > Successful search
uses default limit of 10
passed
0.005s
GET /api/products/search/suggestions > Successful search
handles exact 2-character query
passed
0.006s
GET /api/products/search/suggestions > Empty results
returns empty array when no suggestions found
passed
0.004s
GET /api/products/search/suggestions > Error handling
returns 500 on service error
passed
0.227s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\hooks\__tests__\useToast.test.tsx
7.39s
useToast > Basic functionality
should return context value when used within provider
passed
0.044s
useToast > Basic functionality
should throw error when used outside provider
passed
0.217s
useSuccessToast
should add success toast with message and default title
passed
0.008s
useSuccessToast
should add success toast with custom title
passed
0.006s
useErrorToast
should add error toast with message and default title
passed
0.007s
useErrorToast
should add error toast with custom title
passed
0.009s
useWarningToast
should add warning toast with message and default title
passed
0.006s
useWarningToast
should add warning toast with custom title
passed
0.006s
useInfoToast
should add info toast with message and no title
passed
0.007s
useInfoToast
should add info toast with custom title
passed
0.006s
Hook stability
should return stable references
passed
0.015s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\MetricTypeSelector\MetricTypeSelector.test.tsx
6.463s
MetricTypeSelector > Rendering
renders without crashing
passed
0.177s
MetricTypeSelector > Rendering
renders all metric type options
passed
0.021s
MetricTypeSelector > Rendering
highlights the selected option
passed
0.029s
MetricTypeSelector > Interaction
calls onChange when clicking a different option
passed
0.024s
MetricTypeSelector > Interaction
calls onChange with correct value for each option
passed
0.024s
MetricTypeSelector > Interaction
does not call onChange when disabled
passed
0.01s
MetricTypeSelector > Accessibility
has proper role for button group
passed
0.061s
MetricTypeSelector > Accessibility
buttons have aria-pressed attribute
passed
0.507s
MetricTypeSelector > Accessibility
buttons have title for description
passed
0.066s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\core\__tests__\format.test.ts
2.297s
format utilities > formatNumber
formats integers with comma separators
passed
0.075s
format utilities > formatNumber
formats decimals with specified precision
passed
0.004s
format utilities > formatNumber
handles zero decimal places by default
passed
0.003s
format utilities > formatNumber
handles small numbers
passed
0.003s
format utilities > formatNumber
handles negative numbers
passed
0.044s
format utilities > formatNumber
handles large numbers
passed
0.003s
format utilities > formatNumber
handles decimal precision edge cases
passed
0.002s
format utilities > formatCurrency
formats currency with dollar sign and default 2 decimals
passed
0.003s
format utilities > formatCurrency
handles zero value
passed
0.002s
format utilities > formatCurrency
handles small amounts
passed
0.003s
format utilities > formatCurrency
handles large amounts
passed
0.002s
format utilities > formatCurrency
handles different currencies
passed
0.003s
format utilities > formatCurrency
handles negative amounts
passed
0.002s
format utilities > formatPercentage
converts decimal to percentage
passed
0.005s
format utilities > formatPercentage
handles zero
passed
0.001s
format utilities > formatPercentage
handles values greater than 1
passed
0.002s
format utilities > formatPercentage
handles decimal precision
passed
0.007s
format utilities > formatPercentage
handles small percentages
passed
0.003s
format utilities > formatPercentage
handles negative percentages
passed
0.002s
format utilities > formatCompact
formats thousands as K
passed
0.007s
format utilities > formatCompact
formats millions as M
passed
0.002s
format utilities > formatCompact
formats billions as B
passed
0.002s
format utilities > formatCompact
does not compact small numbers
passed
0.002s
format utilities > formatCompact
handles negative numbers
passed
0.002s
format utilities > formatCompact
formats trillions as T
passed
0.002s
format utilities > formatCompact
handles edge case numbers near boundaries
passed
0.003s
format utilities > formatCompact
handles very small positive numbers
passed
0.002s
format utilities > formatCompact
handles Infinity
passed
0.001s
format utilities > formatCompact
handles -Infinity
passed
0.002s
format utilities > formatNumber edge cases
handles Infinity
passed
0.002s
format utilities > formatNumber edge cases
handles -Infinity
passed
0.022s
format utilities > formatNumber edge cases
handles NaN
passed
0.002s
format utilities > formatNumber edge cases
handles very large decimal places
passed
0.003s
format utilities > formatNumber edge cases
handles zero with decimal places
passed
0.002s
format utilities > formatCurrency edge cases
handles very large currency amounts
passed
0.001s
format utilities > formatCurrency edge cases
handles fractional cents with rounding
passed
0.002s
format utilities > formatCurrency edge cases
handles JPY (no decimals)
passed
0.002s
format utilities > formatCurrency edge cases
handles Infinity
passed
0.001s
format utilities > formatCurrency edge cases
handles NaN
passed
0.001s
format utilities > formatPercentage edge cases
handles very large percentages
passed
0.001s
format utilities > formatPercentage edge cases
handles very small percentages with precision
passed
0.002s
format utilities > formatPercentage edge cases
handles Infinity
passed
0.002s
format utilities > formatPercentage edge cases
handles NaN
passed
0.002s
format utilities > formatPercentage edge cases
handles rounding at boundaries
passed
0.001s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\monitoring\errors\export\__tests__\route.test.ts
4.756s
Admin Monitoring Errors Export API - /api/admin/monitoring/errors/export > GET /api/admin/monitoring/errors/export
returns CSV export by default
passed
0.036s
Admin Monitoring Errors Export API - /api/admin/monitoring/errors/export > GET /api/admin/monitoring/errors/export
returns JSON export when format=json
passed
0.007s
Admin Monitoring Errors Export API - /api/admin/monitoring/errors/export > GET /api/admin/monitoring/errors/export
applies category filter to export
passed
0.008s
Admin Monitoring Errors Export API - /api/admin/monitoring/errors/export > GET /api/admin/monitoring/errors/export
applies level filter to export
passed
0.012s
Admin Monitoring Errors Export API - /api/admin/monitoring/errors/export > GET /api/admin/monitoring/errors/export
applies search filter to export
passed
0.011s
Admin Monitoring Errors Export API - /api/admin/monitoring/errors/export > GET /api/admin/monitoring/errors/export
applies date range filter to export
passed
0.005s
Admin Monitoring Errors Export API - /api/admin/monitoring/errors/export > GET /api/admin/monitoring/errors/export
escapes CSV special characters properly
passed
0.003s
Admin Monitoring Errors Export API - /api/admin/monitoring/errors/export > GET /api/admin/monitoring/errors/export
escapes newlines in CSV stack traces
passed
0.003s
Admin Monitoring Errors Export API - /api/admin/monitoring/errors/export > GET /api/admin/monitoring/errors/export
limits export to 10000 records
passed
0.003s
Admin Monitoring Errors Export API - /api/admin/monitoring/errors/export > GET /api/admin/monitoring/errors/export
returns 401 for unauthenticated requests
passed
0.005s
Admin Monitoring Errors Export API - /api/admin/monitoring/errors/export > GET /api/admin/monitoring/errors/export
returns 403 for non-admin users
passed
0.003s
Admin Monitoring Errors Export API - /api/admin/monitoring/errors/export > GET /api/admin/monitoring/errors/export
handles empty export gracefully
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\dev-tools\__tests__\output-parsers.test.ts
6.036s
Output Parsers > parseJestOutput
should parse successful test output
passed
0.031s
Output Parsers > parseJestOutput
should parse failed test output
passed
0.007s
Output Parsers > parseJestOutput
should handle empty output
passed
0.005s
Output Parsers > parseJestOutput
should extract duration from output
passed
0.003s
Output Parsers > parseEslintOutput
should parse clean ESLint output
passed
0.005s
Output Parsers > parseEslintOutput
should parse ESLint errors from JSON format
passed
0.004s
Output Parsers > parseEslintOutput
should parse ESLint text format errors
passed
0.005s
Output Parsers > parseEslintOutput
should parse ESLint text format with mixed errors and warnings
passed
0.004s
Output Parsers > parseTypescriptOutput
should parse clean TypeScript output
passed
0.012s
Output Parsers > parseTypescriptOutput
should parse TypeScript errors
passed
0.023s
Output Parsers > parseTypescriptOutput
should extract error count from summary
passed
0.003s
Output Parsers > parseTypescriptOutput
should handle multiple errors in same file
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\affiliates\__tests__\sales.test.ts
5.56s
Admin Affiliate Sales API > GET /api/admin/affiliates/sales
should return 401 if not authenticated
passed
0.017s
Admin Affiliate Sales API > GET /api/admin/affiliates/sales
should return 403 if not admin
passed
0.015s
Admin Affiliate Sales API > GET /api/admin/affiliates/sales
should return sales list for admin
passed
0.026s
Admin Affiliate Sales API > GET /api/admin/affiliates/sales
should filter by status
passed
0.008s
Admin Affiliate Sales API > POST /api/admin/affiliates/sales
should return 401 if not authenticated
passed
0.006s
Admin Affiliate Sales API > POST /api/admin/affiliates/sales
should return 403 if not admin
passed
0.006s
Admin Affiliate Sales API > POST /api/admin/affiliates/sales
should approve a sale
passed
0.011s
Admin Affiliate Sales API > POST /api/admin/affiliates/sales
should reject a sale with reason
passed
0.006s
Admin Affiliate Sales API > POST /api/admin/affiliates/sales
should require rejection reason for reject action
passed
0.005s
Admin Affiliate Sales API > POST /api/admin/affiliates/sales
should return error if approval fails
passed
0.018s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\__tests__\web-vitals.test.ts
5.316s
Web Vitals Utilities > getRating > LCP (Largest Contentful Paint)
should return 'good' for LCP <= 2500ms
passed
0.009s
Web Vitals Utilities > getRating > LCP (Largest Contentful Paint)
should return 'needs-improvement' for LCP > 2500ms and <= 4000ms
passed
0.007s
Web Vitals Utilities > getRating > LCP (Largest Contentful Paint)
should return 'poor' for LCP > 4000ms
passed
0.005s
Web Vitals Utilities > getRating > FID (First Input Delay)
should return 'good' for FID <= 100ms
passed
0.004s
Web Vitals Utilities > getRating > FID (First Input Delay)
should return 'needs-improvement' for FID > 100ms and <= 300ms
passed
0.004s
Web Vitals Utilities > getRating > FID (First Input Delay)
should return 'poor' for FID > 300ms
passed
0.004s
Web Vitals Utilities > getRating > CLS (Cumulative Layout Shift)
should return 'good' for CLS <= 0.1
passed
0.008s
Web Vitals Utilities > getRating > CLS (Cumulative Layout Shift)
should return 'needs-improvement' for CLS > 0.1 and <= 0.25
passed
0.004s
Web Vitals Utilities > getRating > CLS (Cumulative Layout Shift)
should return 'poor' for CLS > 0.25
passed
0.003s
Web Vitals Utilities > getRating > FCP (First Contentful Paint)
should return 'good' for FCP <= 1800ms
passed
0.003s
Web Vitals Utilities > getRating > FCP (First Contentful Paint)
should return 'needs-improvement' for FCP > 1800ms and <= 3000ms
passed
0.003s
Web Vitals Utilities > getRating > FCP (First Contentful Paint)
should return 'poor' for FCP > 3000ms
passed
0.008s
Web Vitals Utilities > getRating > TTFB (Time to First Byte)
should return 'good' for TTFB <= 800ms
passed
0.003s
Web Vitals Utilities > getRating > TTFB (Time to First Byte)
should return 'needs-improvement' for TTFB > 800ms and <= 1800ms
passed
0.031s
Web Vitals Utilities > getRating > TTFB (Time to First Byte)
should return 'poor' for TTFB > 1800ms
passed
0.003s
Web Vitals Utilities > getRating > INP (Interaction to Next Paint)
should return 'good' for INP <= 200ms
passed
0.003s
Web Vitals Utilities > getRating > INP (Interaction to Next Paint)
should return 'needs-improvement' for INP > 200ms and <= 500ms
passed
0.004s
Web Vitals Utilities > getRating > INP (Interaction to Next Paint)
should return 'poor' for INP > 500ms
passed
0.003s
Web Vitals Utilities > reportWebVital
should log warning for poor metrics
passed
0.008s
Web Vitals Utilities > reportWebVital
should log info for needs-improvement metrics
passed
0.004s
Web Vitals Utilities > reportWebVital
should log debug for good metrics
passed
0.009s
Web Vitals Utilities > onReportWebVitals
should process valid web vitals metrics
passed
0.004s
Web Vitals Utilities > onReportWebVitals
should ignore unknown metric names
passed
0.003s
Web Vitals Utilities > getWebVitalsSummary
should return summary with all metric thresholds
passed
0.004s
Web Vitals Utilities > getWebVitalsSummary
should include threshold values for each metric
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\monitoring\errors\__tests__\route.test.ts
6.03s
Admin Monitoring Errors API - /api/admin/monitoring/errors > GET /api/admin/monitoring/errors
returns paginated error list with default parameters
passed
0.033s
Admin Monitoring Errors API - /api/admin/monitoring/errors > GET /api/admin/monitoring/errors
applies pagination parameters
passed
0.008s
Admin Monitoring Errors API - /api/admin/monitoring/errors > GET /api/admin/monitoring/errors
applies category filter
passed
0.008s
Admin Monitoring Errors API - /api/admin/monitoring/errors > GET /api/admin/monitoring/errors
applies level filter
passed
0.009s
Admin Monitoring Errors API - /api/admin/monitoring/errors > GET /api/admin/monitoring/errors
applies search filter
passed
0.015s
Admin Monitoring Errors API - /api/admin/monitoring/errors > GET /api/admin/monitoring/errors
applies date range filter
passed
0.026s
Admin Monitoring Errors API - /api/admin/monitoring/errors > GET /api/admin/monitoring/errors
applies sorting
passed
0.007s
Admin Monitoring Errors API - /api/admin/monitoring/errors > GET /api/admin/monitoring/errors
sanitizes invalid sortBy field
passed
0.008s
Admin Monitoring Errors API - /api/admin/monitoring/errors > GET /api/admin/monitoring/errors
enforces maximum limit of 100
passed
0.007s
Admin Monitoring Errors API - /api/admin/monitoring/errors > GET /api/admin/monitoring/errors
returns 401 for unauthenticated requests
passed
0.134s
Admin Monitoring Errors API - /api/admin/monitoring/errors > GET /api/admin/monitoring/errors
returns 403 for non-admin users
passed
0.127s
Admin Monitoring Errors API - /api/admin/monitoring/errors > GET /api/admin/monitoring/errors
returns empty results when no errors exist
passed
0.234s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\database\__tests__\dataLoaders.test.ts
5.13s
DataLoaders > createCategoryLoader
loads a single category by id
passed
0.015s
DataLoaders > createCategoryLoader
loads multiple categories with correct ordering
passed
0.008s
DataLoaders > createCategoryLoader
returns null for non-existent category
passed
0.006s
DataLoaders > createCategoryLoader
can clear cache
passed
0.005s
DataLoaders > createCategoryLoader
can clear all cache
passed
0.004s
DataLoaders > createProductLoader
loads products by id
passed
0.004s
DataLoaders > createReviewCountLoader
loads review counts for products
passed
0.004s
DataLoaders > createReviewCountLoader
returns 0 for products with no reviews
passed
0.018s
DataLoaders > createReviewAverageLoader
loads average ratings for products
passed
0.005s
DataLoaders > createReviewAverageLoader
returns 0 for products with no reviews
passed
0.003s
DataLoaders > createReviewAverageLoader
handles null average gracefully
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\redux\features\__tests__\cartSliceApi.test.ts
5.519s
Cart API Slice > Initial state
should have empty items array
passed
0.052s
Cart API Slice > Initial state
should have loading false
passed
0.005s
Cart API Slice > Initial state
should have error null
passed
0.005s
Cart API Slice > Synchronous actions > addItemToCart
should add item to empty cart
passed
0.041s
Cart API Slice > Synchronous actions > addItemToCart
should increase quantity if item already exists
passed
0.011s
Cart API Slice > Synchronous actions > addItemToCart
should add different items separately
passed
0.04s
Cart API Slice > Synchronous actions > removeItemFromCart
should remove item from cart
passed
0.04s
Cart API Slice > Synchronous actions > removeItemFromCart
should not affect other items
passed
0.005s
Cart API Slice > Synchronous actions > removeItemFromCart
should handle removing non-existent item
passed
0.004s
Cart API Slice > Synchronous actions > updateCartItemQuantity
should update item quantity
passed
0.004s
Cart API Slice > Synchronous actions > updateCartItemQuantity
should not affect non-existent items
passed
0.003s
Cart API Slice > Synchronous actions > removeAllItemsFromCart
should clear all items
passed
0.004s
Cart API Slice > Synchronous actions > clearError
should clear error state
passed
0.039s
Cart API Slice > Async thunks > fetchCart
should set loading true when pending
passed
0.003s
Cart API Slice > Async thunks > fetchCart
should populate items on success
passed
0.004s
Cart API Slice > Async thunks > fetchCart
should set error on failure
passed
0.004s
Cart API Slice > Async thunks > fetchCart
should handle non-Error rejection
passed
0.004s
Cart API Slice > Async thunks > addToCartAsync
should set loading true when pending
passed
0.004s
Cart API Slice > Async thunks > addToCartAsync
should update cart items on success
passed
0.005s
Cart API Slice > Async thunks > addToCartAsync
should set error on failure
passed
0.034s
Cart API Slice > Async thunks > addToCartAsync
should handle non-Error rejection
passed
0.009s
Cart API Slice > Async thunks > updateCartItemAsync
should set loading true when pending
passed
0.01s
Cart API Slice > Async thunks > updateCartItemAsync
should update cart items on success
passed
0.005s
Cart API Slice > Async thunks > updateCartItemAsync
should set error on failure
passed
0.004s
Cart API Slice > Async thunks > updateCartItemAsync
should handle non-Error rejection
passed
0.004s
Cart API Slice > Async thunks > removeFromCartAsync
should set loading true when pending
passed
0.027s
Cart API Slice > Async thunks > removeFromCartAsync
should update cart items on success
passed
0.005s
Cart API Slice > Async thunks > removeFromCartAsync
should set error on failure
passed
0.004s
Cart API Slice > Async thunks > removeFromCartAsync
should handle non-Error rejection
passed
0.005s
Cart API Slice > Selectors > selectCartItems
should return cart items
passed
0.004s
Cart API Slice > Selectors > selectCartItems
should return empty array for empty cart
passed
0.004s
Cart API Slice > Selectors > selectTotalPrice
should calculate total price correctly
passed
0.006s
Cart API Slice > Selectors > selectTotalPrice
should return 0 for empty cart
passed
0.009s
Cart API Slice > Selectors > selectTotalPrice
should handle decimal prices
passed
0.005s
Cart API Slice > Selectors > selectCartItemCount
should count total items
passed
0.004s
Cart API Slice > Selectors > selectCartItemCount
should return 0 for empty cart
passed
0.005s
Cart API Slice > State transitions
should transition through pending -> fulfilled states
passed
0.005s
Cart API Slice > State transitions
should transition through pending -> rejected states
passed
0.005s
Cart API Slice > State transitions
should clear error when starting new request
passed
0.053s
Cart API Slice > Edge cases
should handle empty API response
passed
0.005s
Cart API Slice > Edge cases
should handle rapid successive requests
passed
0.007s
Cart API Slice > Edge cases
should maintain state integrity through complex operations
passed
0.007s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\promotions\active\__tests__\route.test.ts
2.307s
GET /api/promotions/active
returns active promotions
passed
0.015s
GET /api/promotions/active
filters active promotions by date
passed
0.008s
GET /api/promotions/active
filters by promotion type when provided
passed
0.005s
GET /api/promotions/active
respects limit parameter
passed
0.003s
GET /api/promotions/active
uses default limit of 20
passed
0.003s
GET /api/promotions/active
computes discount labels for percentage discounts
passed
0.003s
GET /api/promotions/active
computes discount labels for fixed amount discounts
passed
0.003s
GET /api/promotions/active
computes daysRemaining correctly
passed
0.004s
GET /api/promotions/active
marks promotions expiring within 3 days as expiring soon
passed
0.003s
GET /api/promotions/active
orders by priority desc and endDate asc
passed
0.003s
GET /api/promotions/active
returns empty array when no active promotions
passed
0.005s
GET /api/promotions/active
returns 500 on database error
passed
0.132s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\inventory\__tests__\route.test.ts
6.435s
/api/admin/inventory > GET /api/admin/inventory
returns 501 not implemented
passed
0.054s
/api/admin/inventory > POST /api/admin/inventory
returns 501 not implemented
passed
0.015s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\payments\create-intent\__tests__\route.test.ts
6.068s
POST /api/payments/create-intent > Authentication
returns 401 for unauthenticated request
passed
0.02s
POST /api/payments/create-intent > Authentication
returns 401 for session without user id
passed
0.01s
POST /api/payments/create-intent > Successful payment intent creation
creates payment intent for valid order
passed
0.013s
POST /api/payments/create-intent > Successful payment intent creation
converts amount to cents for Stripe
passed
0.007s
POST /api/payments/create-intent > Successful payment intent creation
includes order metadata in payment intent
passed
0.005s
POST /api/payments/create-intent > Order validation
returns 404 for non-existent order
passed
0.006s
POST /api/payments/create-intent > Order validation
returns 403 for order belonging to different user
passed
0.005s
POST /api/payments/create-intent > Request validation
rejects missing orderId
passed
0.006s
POST /api/payments/create-intent > Request validation
rejects negative amount
passed
0.005s
POST /api/payments/create-intent > Request validation
rejects zero amount
passed
0.005s
POST /api/payments/create-intent > Request validation
rejects missing amount
passed
0.005s
POST /api/payments/create-intent > Error handling
returns 500 on Stripe error
passed
0.127s
POST /api/payments/create-intent > Error handling
returns 500 on database error
passed
0.013s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\support\chatbot\__tests__\route.test.ts
6.739s
POST /api/support/chatbot > Welcome message
returns welcome message when welcome flag is true
passed
0.058s
POST /api/support/chatbot > Chat messages
generates response for track order intent
passed
0.033s
POST /api/support/chatbot > Chat messages
generates response with suggested articles for FAQ queries
passed
0.005s
POST /api/support/chatbot > Chat messages
returns quick actions in response
passed
0.005s
POST /api/support/chatbot > Validation
returns error for empty message
passed
0.011s
POST /api/support/chatbot > Validation
returns error for message exceeding max length
passed
0.006s
POST /api/support/chatbot > Validation
returns error for missing message and welcome flag
passed
0.006s
POST /api/support/chatbot > Error handling
handles errors from chatbot response generation
passed
0.084s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\charts\StatusCodeChart\StatusCodeChart.test.tsx
5.191s
StatusCodeChart > Rendering
renders without crashing
passed
0.128s
StatusCodeChart > Rendering
displays the chart title
passed
0.033s
StatusCodeChart > Rendering
renders the bar chart
passed
0.063s
StatusCodeChart > Rendering
displays success rate percentage
passed
0.018s
StatusCodeChart > Rendering
displays legend items
passed
0.037s
StatusCodeChart > Loading State
displays loading message when isLoading is true
passed
0.009s
StatusCodeChart > Empty State
displays empty message when no data
passed
0.024s
StatusCodeChart > Error Rate Display
shows 4xx rate when present
passed
0.013s
StatusCodeChart > Error Rate Display
shows 5xx rate when present
passed
0.056s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\hooks\__tests__\usePasswordChange.test.ts
6.803s
usePasswordChange > Initial state
should initialize with savingPassword false
passed
0.053s
usePasswordChange > Initial state
should initialize with passwordMessage null
passed
0.013s
usePasswordChange > Initial state
should expose changePassword function
passed
0.038s
usePasswordChange > Initial state
should expose setPasswordMessage function
passed
0.006s
usePasswordChange > setPasswordMessage
should allow setting a message
passed
0.044s
usePasswordChange > setPasswordMessage
should allow clearing the message
passed
0.007s
usePasswordChange > changePassword - successful change
should call API with correct parameters
passed
0.01s
usePasswordChange > changePassword - successful change
should show success message on successful change
passed
0.011s
usePasswordChange > changePassword - successful change
should set savingPassword to false after success
passed
0.007s
usePasswordChange > changePassword - API error
should show API error message
passed
0.008s
usePasswordChange > changePassword - API error
should show default error message when API returns no error text
passed
0.007s
usePasswordChange > changePassword - API error
should handle wrapped error format
passed
0.007s
usePasswordChange > changePassword - network error
should handle fetch exceptions
passed
0.073s
usePasswordChange > Loading state
should set savingPassword to true while submitting
passed
0.022s
usePasswordChange > Loading state
should clear previous message when starting new submission
passed
0.041s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\errors\__tests__\error-messages.test.ts
2.229s
getErrorMessage > default messages
should return network error message
passed
0.01s
getErrorMessage > default messages
should return validation error message
passed
0.003s
getErrorMessage > default messages
should return authentication error message
passed
0.002s
getErrorMessage > default messages
should return authorization error message
passed
0.012s
getErrorMessage > default messages
should return not found error message
passed
0.002s
getErrorMessage > default messages
should return server error message
passed
0.003s
getErrorMessage > default messages
should return payment error message
passed
0.029s
getErrorMessage > default messages
should return rate limit error message
passed
0.002s
getErrorMessage > default messages
should return unknown error message
passed
0.003s
getErrorMessage > context-specific messages
should return checkout-specific server error
passed
0.005s
getErrorMessage > context-specific messages
should return checkout-specific payment error
passed
0.003s
getErrorMessage > context-specific messages
should return cart-specific not found error
passed
0.002s
getErrorMessage > context-specific messages
should return account-specific auth error
passed
0.002s
getErrorMessage > context-specific messages
should return admin-specific auth error
passed
0.014s
getErrorMessage > context-specific messages
should fall back to default when context has no override
passed
0.002s
getErrorMessage > context-specific messages
should fall back to default when context does not exist
passed
0.003s
getErrorMessage > errorMessages object
should have all error types
passed
0.012s
getErrorMessage > contextMessages object
should have checkout context
passed
0.002s
getErrorMessage > contextMessages object
should have cart context
passed
0.001s
getErrorMessage > contextMessages object
should have account context
passed
0.001s
getErrorMessage > contextMessages object
should have admin context
passed
0.001s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\core\__tests__\pagination.test.ts
5.617s
pagination utilities > calculatePagination
returns correct skip and take for page 1
passed
0.009s
pagination utilities > calculatePagination
returns correct skip for subsequent pages
passed
0.035s
pagination utilities > calculatePagination
uses default values when not provided
passed
0.012s
pagination utilities > calculatePagination
sanitizes page to minimum of 1
passed
0.004s
pagination utilities > calculatePagination
sanitizes limit to minimum of 1
passed
0.008s
pagination utilities > calculatePagination
enforces maximum limit
passed
0.016s
pagination utilities > calculatePagination
handles custom maxLimit
passed
0.054s
pagination utilities > calculatePagination
floors decimal values
passed
0.003s
pagination utilities > buildPaginationMeta
calculates total pages correctly
passed
0.004s
pagination utilities > buildPaginationMeta
returns hasNextPage correctly
passed
0.003s
pagination utilities > buildPaginationMeta
returns hasPreviousPage correctly
passed
0.002s
pagination utilities > buildPaginationMeta
includes page, limit, and total
passed
0.002s
pagination utilities > buildPaginationMeta
handles zero total
passed
0.002s
pagination utilities > buildPaginationMeta
handles single page of results
passed
0.002s
pagination utilities > createPaginatedResult
combines data with pagination metadata
passed
0.01s
pagination utilities > createPaginatedResult
works with empty data
passed
0.003s
pagination utilities > createPaginatedResult
preserves object data types
passed
0.004s
pagination utilities > paginateArray
returns first page correctly
passed
0.004s
pagination utilities > paginateArray
returns middle page correctly
passed
0.004s
pagination utilities > paginateArray
returns last page with partial data
passed
0.003s
pagination utilities > paginateArray
handles page beyond available data
passed
0.004s
pagination utilities > paginateArray
uses default pagination values
passed
0.004s
pagination utilities > paginateArray
handles empty array
passed
0.025s
pagination utilities > paginateArray
handles array smaller than page size
passed
0.003s
pagination utilities > paginateArray
works with object arrays
passed
0.003s
pagination utilities > paginateArray
sanitizes invalid page values
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\monitoring\__tests__\alertNotifications.test.ts
6.273s
alertNotifications > sendAlertNotification
sends email notification when email channel is specified
passed
0.04s
alertNotifications > sendAlertNotification
logs warning when no email recipients configured
passed
0.005s
alertNotifications > sendAlertNotification
sends Slack notification when slack channel is specified
passed
0.005s
alertNotifications > sendAlertNotification
logs debug when Slack webhook not configured
passed
0.004s
alertNotifications > sendAlertNotification
sends webhook notification when webhook channel is specified
passed
0.005s
alertNotifications > sendAlertNotification
sends to multiple channels
passed
0.017s
alertNotifications > sendAlertNotification
logs warning for unknown channel
passed
0.003s
alertNotifications > sendAlertNotification
logs errors when channel fails
passed
0.028s
alertNotifications > sendAlertNotification
throws error when Slack webhook returns non-ok response
passed
0.004s
alertNotifications > sendTestNotification
sends test notification and returns success
passed
0.005s
alertNotifications > sendTestNotification
returns failure for unknown channel
passed
0.004s
alertNotifications > sendTestNotification
returns failure with error message on exception
passed
0.02s
alertNotifications > sendTestNotification
tests multiple channels
passed
0.006s
alertNotifications > email formatting
includes correct subject line for warning
passed
0.006s
alertNotifications > email formatting
includes HTML content
passed
0.005s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\logging\__tests__\logger.test.ts
6.15s
Logger > logger instance
should export a logger singleton
passed
0.009s
Logger > logger instance
should have all logging methods
passed
0.024s
Logger > logger instance
should have specialized logging methods
passed
0.009s
Logger > withContext / child
should create a child logger with context
passed
0.004s
Logger > withContext / child
should have alias child method
passed
0.003s
Logger > withContext / child
should return context from getContext
passed
0.004s
Logger > time utility
should return a function that logs duration
passed
0.004s
Logger > specialized methods
should log HTTP request with correct level based on status
passed
0.005s
Logger > specialized methods
should log database operations
passed
0.003s
Logger > specialized methods
should log external API calls
passed
0.004s
Logger > specialized methods
should log business events
passed
0.003s
Logger > specialized methods
should log security events with severity
passed
0.003s
Logger > specialized methods
should log performance metrics
passed
0.003s
Logger > specialized methods
should log audit events
passed
0.004s
Logger > specialized methods
should log auth events
passed
0.009s
Logger > error handling
should handle Error objects in error method
passed
0.003s
Logger > error handling
should handle non-Error objects in error method
passed
0.004s
Logger > error handling
should handle Error objects in fatal method
passed
0.094s
loggingConfig
should have required configuration properties
passed
0.006s
loggingConfig
should have sensitive fields in redact paths
passed
0.004s
shouldLog
should return true for levels at or above configured level
passed
0.003s
getLogLevelPriority
should return correct priorities for all levels
passed
0.003s
getLogLevelPriority
should have fatal as highest priority (lowest number)
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\monitoring\__tests__\logger.test.ts
4.93s
monitoringLogger > debug
calls console.debug with formatted message
passed
0.013s
monitoringLogger > debug
includes context in debug output when provided
passed
0.003s
monitoringLogger > info
logs info messages to console
passed
0.004s
monitoringLogger > info
includes timestamp in log output
passed
0.003s
monitoringLogger > info
includes category in log output
passed
0.004s
monitoringLogger > info
includes message in log output
passed
0.003s
monitoringLogger > info
appends context as key=value pairs
passed
0.003s
monitoringLogger > info
handles undefined context gracefully
passed
0.003s
monitoringLogger > info
handles empty context object
passed
0.003s
monitoringLogger > info
serializes object values in context
passed
0.007s
monitoringLogger > warn
logs warnings to console
passed
0.044s
monitoringLogger > warn
includes context object in warning
passed
0.004s
monitoringLogger > error
logs errors to console
passed
0.005s
monitoringLogger > error
logs error object with stack trace
passed
0.085s
monitoringLogger > error
handles non-Error objects
passed
0.029s
monitoringLogger > error
includes context in error log
passed
0.014s
monitoringLogger > time
returns a function to end timing
passed
0.003s
monitoringLogger > time
logs duration when end function called
passed
0.003s
monitoringLogger > log categories
accepts API category
passed
0.003s
monitoringLogger > log categories
accepts DATABASE category
passed
0.003s
monitoringLogger > log categories
accepts AUTH category
passed
0.003s
monitoringLogger > log categories
accepts CLIENT category
passed
0.003s
monitoringLogger > log categories
accepts PAYMENT category
passed
0.055s
monitoringLogger > log categories
accepts ORDER category
passed
0.002s
monitoringLogger > log categories
accepts CART category
passed
0.003s
monitoringLogger > log categories
accepts PRODUCT category
passed
0.005s
monitoringLogger > log categories
accepts SUPPORT category
passed
0.003s
monitoringLogger > log categories
accepts SYSTEM category
passed
0.003s
monitoringLogger > log categories
accepts PERFORMANCE category
passed
0.003s
monitoringLogger > log categories
accepts CRON category
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\user\affiliate\__tests__\route.test.ts
5.993s
User Affiliate API > GET /api/user/affiliate
should return 401 if not authenticated
passed
0.021s
User Affiliate API > GET /api/user/affiliate
should return null if user has no affiliate account
passed
0.015s
User Affiliate API > GET /api/user/affiliate
should return affiliate data with dashboard for active affiliate
passed
0.006s
User Affiliate API > GET /api/user/affiliate
should not return dashboard for pending affiliate
passed
0.006s
User Affiliate API > POST /api/user/affiliate
should return 401 if not authenticated
passed
0.005s
User Affiliate API > POST /api/user/affiliate
should register a new affiliate
passed
0.016s
User Affiliate API > POST /api/user/affiliate
should return error if already registered
passed
0.016s
User Affiliate API > POST /api/user/affiliate
should validate website URL
passed
0.008s
User Affiliate API > PUT /api/user/affiliate
should return 401 if not authenticated
passed
0.005s
User Affiliate API > PUT /api/user/affiliate
should return 404 if no affiliate account
passed
0.008s
User Affiliate API > PUT /api/user/affiliate
should update affiliate profile
passed
0.008s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\loyalty\__tests__\rewards.test.ts
3.569s
Loyalty Rewards > validateRedemption
rejects zero or negative points
passed
0.012s
Loyalty Rewards > validateRedemption
rejects negative points
passed
0.003s
Loyalty Rewards > validateRedemption
rejects when no loyalty account exists
passed
0.003s
Loyalty Rewards > validateRedemption
rejects when insufficient points
passed
0.037s
Loyalty Rewards > validateRedemption
rejects when no active program
passed
0.006s
Loyalty Rewards > validateRedemption
approves valid redemption
passed
0.003s
Loyalty Rewards > validateRedemption
approves exact point balance redemption
passed
0.002s
Loyalty Rewards > redeemPoints
throws error for invalid redemption
passed
0.13s
Loyalty Rewards > redeemPoints
successfully redeems points
passed
0.008s
Loyalty Rewards > redeemPoints
creates transaction with custom description
passed
0.006s
Loyalty Rewards > redeemPoints
creates transaction with default description
passed
0.01s
Loyalty Rewards > redeemPoints
handles redemption with different redemption rate
passed
0.003s
Loyalty Rewards > calculateMinimumPointsForDiscount
calculates minimum points needed
passed
0.002s
Loyalty Rewards > calculateMinimumPointsForDiscount
rounds up fractional points
passed
0.003s
Loyalty Rewards > calculateMinimumPointsForDiscount
throws error when no active program
passed
0.029s
Loyalty Rewards > calculateMinimumPointsForDiscount
handles different redemption rates
passed
0.002s
Loyalty Rewards > calculateMaximumDiscount
calculates maximum discount available
passed
0.004s
Loyalty Rewards > calculateMaximumDiscount
returns 0 when no loyalty account
passed
0.002s
Loyalty Rewards > calculateMaximumDiscount
returns 0 when no active program
passed
0.008s
Loyalty Rewards > calculateMaximumDiscount
rounds to 2 decimal places
passed
0.005s
Loyalty Rewards > awardBonusPoints
creates loyalty record if not exists
passed
0.007s
Loyalty Rewards > awardBonusPoints
awards bonus points successfully
passed
0.005s
Loyalty Rewards > checkRewardEligibility
returns true when user has enough points
passed
0.03s
Loyalty Rewards > checkRewardEligibility
returns true when user has exact points
passed
0.005s
Loyalty Rewards > checkRewardEligibility
returns false when user has insufficient points
passed
0.003s
Loyalty Rewards > checkRewardEligibility
returns false when no loyalty account
passed
0.002s
Loyalty Rewards > Error handling
handles database errors in validateRedemption
passed
0.01s
Loyalty Rewards > Error handling
handles database errors in redeemPoints
passed
0.008s
Loyalty Rewards > Error handling
handles database errors in awardBonusPoints
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\reports\__tests__\route.test.ts
6.985s
GET /api/admin/reports > Authentication & Authorization
returns 401 for unauthenticated request
passed
0.027s
GET /api/admin/reports > Authentication & Authorization
returns 403 for non-admin user
passed
0.006s
GET /api/admin/reports > JSON format (default)
returns analytics summary as JSON
passed
0.013s
GET /api/admin/reports > JSON format (default)
respects type parameter
passed
0.006s
GET /api/admin/reports > CSV format
returns CSV when format=csv
passed
0.01s
GET /api/admin/reports > CSV format
generates orders CSV section
passed
0.016s
GET /api/admin/reports > CSV format
generates customers CSV section
passed
0.011s
GET /api/admin/reports > CSV format
generates products CSV section
passed
0.022s
GET /api/admin/reports > CSV format
generates sales CSV section
passed
0.015s
GET /api/admin/reports > CSV format
includes all sections for summary type
passed
0.006s
GET /api/admin/reports > Error handling
returns 500 on analytics error
passed
0.116s
GET /api/admin/reports > Error handling
returns generic error for non-Error objects
passed
0.068s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\ecommerce\__tests__\reviews.test.ts
6.109s
reviews > createReview
creates a review successfully
passed
0.019s
reviews > createReview
throws error for invalid rating (too low)
passed
0.172s
reviews > createReview
throws error for invalid rating (too high)
passed
0.007s
reviews > createReview
throws error when product not found
passed
0.004s
reviews > createReview
throws error when user already reviewed product
passed
0.004s
reviews > createReview
creates review without comment
passed
0.005s
reviews > getProductReviews
returns paginated reviews with defaults
passed
0.004s
reviews > getProductReviews
applies pagination correctly
passed
0.002s
reviews > getProductReviews
filters by rating
passed
0.057s
reviews > getProductReviews
sorts by newest by default
passed
0.003s
reviews > getProductReviews
sorts by rating high to low
passed
0.003s
reviews > getProductReviews
sorts by rating low to high
passed
0.003s
reviews > getProductRating
returns zero rating when no reviews exist
passed
0.005s
reviews > getProductRating
calculates average rating correctly
passed
0.004s
reviews > getProductRating
calculates rating distribution correctly
passed
0.003s
reviews > markReviewHelpful
marks review as helpful
passed
0.028s
reviews > markReviewHelpful
marks review as not helpful
passed
0.006s
reviews > markReviewHelpful
throws error when review not found
passed
0.01s
reviews > getReviewHelpfulness
calculates helpfulness statistics correctly
passed
0.006s
reviews > getReviewHelpfulness
returns zero percentage when no votes
passed
0.003s
reviews > hasUserMarkedReview
returns true if user marked helpful
passed
0.003s
reviews > hasUserMarkedReview
returns false if user marked not helpful
passed
0.002s
reviews > hasUserMarkedReview
returns null if user has not voted
passed
0.003s
reviews > updateReview
updates review successfully
passed
0.024s
reviews > updateReview
throws error when review not found
passed
0.003s
reviews > updateReview
throws error when updating another user's review
passed
0.004s
reviews > updateReview
throws error for invalid rating
passed
0.003s
reviews > deleteReview
deletes review successfully
passed
0.035s
reviews > deleteReview
throws error when review not found
passed
0.004s
reviews > deleteReview
throws error when deleting another user's review
passed
0.007s
reviews > getUserReviews
returns user reviews with pagination
passed
0.01s
reviews > getUserReviews
applies custom pagination
passed
0.003s
reviews > getRecentlyReviewedProducts
returns recently reviewed products
passed
0.004s
reviews > getRecentlyReviewedProducts
uses default limit of 6
passed
0.003s
reviews > getTopRatedProducts
returns top-rated products sorted by rating
passed
0.004s
reviews > getTopRatedProducts
excludes products with no reviews
passed
0.003s
reviews > requestReviewsForOrder
sends review request when user has reviews enabled
passed
0.004s
reviews > requestReviewsForOrder
does not send request when user has reviews disabled
passed
0.01s
reviews > requestReviewsForOrder
throws error when order not found
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\shared\ErrorBoundary\__tests__\FullPageError.test.tsx
7.282s
FullPageError
renders the error page with correct heading
passed
0.193s
FullPageError
displays error message text
passed
0.037s
FullPageError
displays error ID when provided
passed
0.029s
FullPageError
does not display error ID when not provided
passed
0.018s
FullPageError
renders Try Again button
passed
0.528s
FullPageError
renders Reset button when onReset is provided
passed
0.035s
FullPageError
calls onReset when Reset button is clicked
passed
0.077s
FullPageError
does not render Reset button when onReset is not provided
passed
0.064s
FullPageError
renders Go to Homepage button
passed
0.043s
FullPageError
renders contact support link
passed
0.07s
FullPageError
applies dark mode styles
passed
0.016s
FullPageError
renders warning icon
passed
0.068s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\wishlist\[id]\__tests__\route.test.ts
6.691s
DELETE /api/wishlist/[id] > Authentication
returns 401 for unauthenticated request
passed
0.02s
DELETE /api/wishlist/[id] > Authentication
returns 401 for session without user id
passed
0.005s
DELETE /api/wishlist/[id] > Item not found
returns 404 when wishlist item does not exist
passed
0.057s
DELETE /api/wishlist/[id] > Successful deletion
deletes wishlist item successfully
passed
0.01s
DELETE /api/wishlist/[id] > Error handling
returns 500 on database error during find
passed
0.125s
DELETE /api/wishlist/[id] > Error handling
returns 500 on database error during delete
passed
0.022s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\inventory\[productId]\__tests__\route.test.ts
7.678s
/api/admin/inventory/[productId] > GET /api/admin/inventory/[productId]
returns 501 not implemented
passed
0.08s
/api/admin/inventory/[productId] > PUT /api/admin/inventory/[productId]
returns 501 not implemented
passed
0.009s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\auth\__tests__\verify-email.test.ts
1.999s
GET /api/auth/verify-email > Successful verification
verifies email with valid token
passed
0.018s
GET /api/auth/verify-email > Successful verification
uses transaction for updating user and creating preferences
passed
0.009s
GET /api/auth/verify-email > Successful verification
clears verification token after verification
passed
0.006s
GET /api/auth/verify-email > Already verified
redirects to signin with already verified status
passed
0.005s
GET /api/auth/verify-email > Invalid token handling
redirects with error for invalid token
passed
0.005s
GET /api/auth/verify-email > Invalid token handling
redirects with error for missing token
passed
0.003s
GET /api/auth/verify-email > Invalid token handling
redirects with error for empty token
passed
0.003s
GET /api/auth/verify-email > Error handling
redirects with server error on database failure
passed
0.044s
GET /api/auth/verify-email > Error handling
redirects with server error on update failure
passed
0.005s
GET /api/auth/verify-email > Base URL configuration
uses NEXTAUTH_URL for redirects
passed
0.003s
GET /api/auth/verify-email > Base URL configuration
falls back to localhost when NEXTAUTH_URL not set
passed
0.004s
GET /api/auth/verify-email > Token lookup
looks up user by verification token
passed
0.007s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\monitoring\performance\__tests__\slow.test.ts
7.081s
Slow Requests API > GET /api/admin/monitoring/performance/slow
returns slow requests with default threshold
passed
0.083s
Slow Requests API > GET /api/admin/monitoring/performance/slow
uses custom threshold when provided
passed
0.005s
Slow Requests API > GET /api/admin/monitoring/performance/slow
supports pagination parameters
passed
0.005s
Slow Requests API > GET /api/admin/monitoring/performance/slow
returns error for invalid threshold
passed
0.033s
Slow Requests API > GET /api/admin/monitoring/performance/slow
returns error for invalid page
passed
0.006s
Slow Requests API > GET /api/admin/monitoring/performance/slow
returns error for invalid limit
passed
0.005s
Slow Requests API > GET /api/admin/monitoring/performance/slow
supports path filter
passed
0.004s
Slow Requests API > GET /api/admin/monitoring/performance/slow
requires admin authentication
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\auth\__tests__\reset-password.test.ts
5.259s
POST /api/auth/reset-password > Successful password reset
resets password with valid token
passed
0.028s
POST /api/auth/reset-password > Successful password reset
hashes new password before storage
passed
0.035s
POST /api/auth/reset-password > Successful password reset
marks token as used after successful reset
passed
0.006s
POST /api/auth/reset-password > Successful password reset
resets failed login attempts on password change
passed
0.011s
POST /api/auth/reset-password > Invalid token handling
rejects expired token
passed
0.006s
POST /api/auth/reset-password > Invalid token handling
rejects already used token
passed
0.021s
POST /api/auth/reset-password > Invalid token handling
rejects non-matching token
passed
0.005s
POST /api/auth/reset-password > Password validation
rejects password shorter than 8 characters
passed
0.006s
POST /api/auth/reset-password > Password validation
rejects password without uppercase letter
passed
0.005s
POST /api/auth/reset-password > Password validation
rejects password without lowercase letter
passed
0.005s
POST /api/auth/reset-password > Password validation
rejects password without number
passed
0.013s
POST /api/auth/reset-password > Password validation
rejects password longer than 100 characters
passed
0.005s
POST /api/auth/reset-password > Password validation
accepts valid strong password
passed
0.005s
POST /api/auth/reset-password > Missing required fields
rejects missing token
passed
0.011s
POST /api/auth/reset-password > Missing required fields
rejects missing password
passed
0.005s
POST /api/auth/reset-password > Missing required fields
rejects empty token
passed
0.005s
POST /api/auth/reset-password > Rate limiting
enforces rate limit after 10 requests
passed
0.044s
POST /api/auth/reset-password > Error handling
returns 500 on database error
passed
0.082s
POST /api/auth/reset-password > Error handling
returns 500 on transaction error
passed
0.022s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\redux\features\__tests__\wishlistSlice.test.ts
7.315s
Wishlist Slice > addItemToWishlist (optimistic)
should add item to empty wishlist
passed
0.047s
Wishlist Slice > addItemToWishlist (optimistic)
should not add duplicate item
passed
0.004s
Wishlist Slice > addItemToWishlist (optimistic)
should add different items
passed
0.004s
Wishlist Slice > addItemToWishlist (optimistic)
should preserve image data
passed
0.002s
Wishlist Slice > addItemToWishlist (optimistic)
should handle items without images
passed
0.003s
Wishlist Slice > addItemToWishlist (optimistic)
should handle items without status
passed
0.003s
Wishlist Slice > addItemToWishlist (optimistic)
should preserve all item properties
passed
0.003s
Wishlist Slice > removeItemFromWishlist (optimistic)
should remove item from wishlist
passed
0.006s
Wishlist Slice > removeItemFromWishlist (optimistic)
should not affect other items
passed
0.004s
Wishlist Slice > removeItemFromWishlist (optimistic)
should handle removing non-existent item
passed
0.004s
Wishlist Slice > removeItemFromWishlist (optimistic)
should remove correct item when multiple items exist
passed
0.011s
Wishlist Slice > removeItemFromWishlist (optimistic)
should handle removing from empty wishlist
passed
0.002s
Wishlist Slice > clearWishlistError
should clear error state
passed
0.003s
Wishlist Slice > fetchWishlist async thunk
should set loading state on pending
passed
0.003s
Wishlist Slice > fetchWishlist async thunk
should update items on fulfilled
passed
0.01s
Wishlist Slice > fetchWishlist async thunk
should set error on rejected
passed
0.002s
Wishlist Slice > addToWishlistAsync thunk
should clear error on pending
passed
0.002s
Wishlist Slice > addToWishlistAsync thunk
should set error on rejected
passed
0.002s
Wishlist Slice > removeFromWishlistAsync thunk
should remove item on fulfilled
passed
0.002s
Wishlist Slice > removeFromWishlistAsync thunk
should set error on rejected
passed
0.002s
Wishlist Slice > clearWishlistAsync thunk
should clear all items on fulfilled
passed
0.002s
Wishlist Slice > clearWishlistAsync thunk
should set error on rejected
passed
0.002s
Wishlist Slice > Wishlist combinations
should handle complex add/remove sequence
passed
0.004s
Wishlist Slice > Wishlist combinations
should maintain data integrity through operations
passed
0.004s
Wishlist Slice > Wishlist combinations
should handle adding after clearing
passed
0.003s
Wishlist Slice > Edge cases
should handle item with zero price
passed
0.002s
Wishlist Slice > Edge cases
should handle item with very large price
passed
0.003s
Wishlist Slice > Edge cases
should handle item with long title
passed
0.002s
Wishlist Slice > Backward compatibility
addItemToWishlist should be an alias for addItemToWishlistOptimistic
passed
0.002s
Wishlist Slice > Backward compatibility
removeItemFromWishlist should be an alias for removeItemFromWishlistOptimistic
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\monitoring\__tests__\alertEngine.test.ts
6.033s
alertEngine > evaluateAlerts
returns empty array when no configs are enabled
passed
0.012s
alertEngine > evaluateAlerts
evaluates a config with sufficient metrics
passed
0.025s
alertEngine > evaluateAlerts
returns insufficient samples when below minSamples
passed
0.006s
alertEngine > evaluateAlerts
triggers warning alert when threshold exceeded
passed
0.022s
alertEngine > evaluateAlerts
triggers critical alert when threshold exceeded
passed
0.007s
alertEngine > evaluateAlerts
respects cooldown period
passed
0.004s
alertEngine > getAlertStats
returns alert statistics
passed
0.005s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\__tests__\payment-utils.test.ts
6.612s
validateCardDetails > valid card details
should validate a valid Visa card
passed
0.013s
validateCardDetails > valid card details
should validate a valid Mastercard
passed
0.022s
validateCardDetails > valid card details
should accept 4-digit CVC (Amex style)
passed
0.005s
validateCardDetails > card number validation (Luhn algorithm)
should reject invalid card number
passed
0.007s
validateCardDetails > card number validation (Luhn algorithm)
should accept card number with spaces (cleaned by Luhn)
passed
0.006s
validateCardDetails > card number validation (Luhn algorithm)
should accept card number with dashes
passed
0.011s
validateCardDetails > expiration date validation
should reject expired card
passed
0.005s
validateCardDetails > expiration date validation
should reject card expiring in current month
passed
0.005s
validateCardDetails > expiration date validation
should accept card expiring in future month
passed
0.006s
validateCardDetails > CVC validation
should reject CVC with less than 3 digits
passed
0.005s
validateCardDetails > CVC validation
should reject CVC with more than 4 digits
passed
0.019s
validateCardDetails > CVC validation
should reject CVC with non-numeric characters
passed
0.006s
validateCardDetails > multiple errors
should return all errors when multiple fields are invalid
passed
0.011s
formatCardNumber
should format 16-digit number into groups of 4
passed
0.003s
formatCardNumber
should handle already formatted number
passed
0.003s
formatCardNumber
should handle partial number
passed
0.003s
formatCardNumber
should handle empty string
passed
0.033s
formatCardNumber
should handle 15-digit Amex number
passed
0.003s
maskCardNumber
should mask all but last 4 digits
passed
0.002s
maskCardNumber
should handle formatted number with spaces
passed
0.002s
maskCardNumber
should handle number with dashes
passed
0.002s
maskCardNumber
should show last 4 digits for shorter numbers
passed
0.003s
processPayment
should successfully process payment
passed
0.008s
processPayment
should handle API error response
passed
0.004s
processPayment
should handle API error without error message
passed
0.04s
processPayment
should handle network error
passed
0.005s
processPayment
should handle non-Error exceptions
passed
0.004s
processPayment
should support different payment methods
passed
0.007s
processPayment
should support Apple Pay
passed
0.004s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\ecommerce\__tests__\comparison.test.ts
2.8s
addToComparison > adding products
should add product to empty comparison list
passed
0.01s
addToComparison > adding products
should add product to existing comparison list
passed
0.002s
addToComparison > adding products
should not add duplicate product
passed
0.002s
addToComparison > adding products
should return same array reference when adding duplicate
passed
0.002s
addToComparison > max products limit
should respect default max of 5 products
passed
0.002s
addToComparison > max products limit
should remove oldest product when at max capacity
passed
0.002s
addToComparison > max products limit
should respect custom max products limit
passed
0.012s
addToComparison > max products limit
should work with max of 2
passed
0.002s
addToComparison > max products limit
should work with max of 1
passed
0.002s
addToComparison > edge cases
should handle adding to list at capacity minus 1
passed
0.001s
addToComparison > edge cases
should handle adding same product when at capacity
passed
0.001s
removeFromComparison
should remove product from list
passed
0.001s
removeFromComparison
should remove first product
passed
0.002s
removeFromComparison
should remove last product
passed
0.01s
removeFromComparison
should return empty array when removing last item
passed
0.001s
removeFromComparison
should return original array when product not found
passed
0.001s
removeFromComparison
should handle empty array
passed
0.002s
removeFromComparison
should create new array (not mutate original)
passed
0.002s
clearComparison
should return empty array
passed
0.002s
clearComparison
should return a new empty array each time
passed
0.012s
comparison workflow
should support typical user workflow
passed
0.003s
comparison workflow
should support adding and then removing same product multiple times
passed
0.007s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\database\__tests__\batch.test.ts
6.838s
Batch Operations > batchUpdate
updates multiple records efficiently
passed
0.014s
Batch Operations > batchUpdate
returns success with zero count for empty ids array
passed
0.026s
Batch Operations > batchUpdate
handles errors gracefully
passed
0.004s
Batch Operations > batchDelete
deletes multiple records efficiently
passed
0.006s
Batch Operations > batchDelete
returns success with zero count for empty ids array
passed
0.003s
Batch Operations > batchDelete
handles errors gracefully
passed
0.003s
Batch Operations > batchUpsert
upserts multiple records in a transaction
passed
0.043s
Batch Operations > batchUpsert
returns success with zero count for empty items array
passed
0.003s
Batch Operations > batchUpsert
handles batch size option
passed
0.007s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\hooks\__tests__\useScrollAnimation.test.ts
6.269s
useScrollAnimation > Return values
returns ref and controls
passed
0.084s
useScrollAnimation > Return values
ref starts as null
passed
0.029s
useScrollAnimation > Default options
uses once: true by default
passed
0.014s
useScrollAnimation > Default options
uses amount: 0.2 by default
passed
0.013s
useScrollAnimation > Custom options
accepts custom once option
passed
0.009s
useScrollAnimation > Custom options
accepts custom amount option
passed
0.009s
useScrollAnimation > Custom options
accepts both options
passed
0.008s
useScrollAnimation > Animation triggers
starts animate when element comes into view
passed
0.023s
useScrollAnimation > Animation triggers
does not animate when element is not in view
passed
0.008s
useScrollAnimation > Animation triggers
resets to initial when once is false and element leaves view
passed
0.008s
useScrollAnimation > Animation triggers
does not reset when once is true and element leaves view
passed
0.007s
useScrollAnimation > Re-renders
maintains ref identity across re-renders
passed
0.035s
useScrollAnimation > Re-renders
maintains controls identity across re-renders
passed
0.017s
useIsInView > Return values
returns ref and isInView boolean
passed
0.022s
useIsInView > Return values
ref starts as null
passed
0.011s
useIsInView > Default options
uses once: false by default
passed
0.008s
useIsInView > Default options
uses amount: 0.2 by default
passed
0.045s
useIsInView > Custom options
accepts custom once option
passed
0.007s
useIsInView > Custom options
accepts custom amount option
passed
0.008s
useIsInView > InView state
returns true when element is in view
passed
0.006s
useIsInView > InView state
returns false when element is not in view
passed
0.048s
useIsInView > Re-renders
updates isInView when visibility changes
passed
0.009s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\observability\__tests__\slo-alerts.test.ts
2.233s
SLO Alert Service > defaultSLOAlertConfig
has expected default values
passed
0.009s
SLO Alert Service > checkAndAlertSLOs
returns empty result when disabled
passed
0.005s
SLO Alert Service > checkAndAlertSLOs
checks SLOs and creates alerts for critical status
passed
0.006s
SLO Alert Service > checkAndAlertSLOs
does not alert on warning when alertOnWarning is false
passed
0.002s
SLO Alert Service > checkAndAlertSLOs
alerts on warning when alertOnWarning is true
passed
0.003s
SLO Alert Service > checkAndAlertSLOs
rate limits repeated alerts for the same SLO
passed
0.003s
SLO Alert Service > checkAndAlertSLOs
resolves alerts for SLOs that are now healthy
passed
0.011s
SLO Alert Service > checkAndAlertSLOs
updates existing alert instead of creating new one
passed
0.004s
SLO Alert Service > sendSLOAlertEmail
sends email with correct format
passed
0.003s
SLO Alert Service > sendSLOAlertEmail
includes dashboard link in email
passed
0.002s
SLO Alert Service > sendSLOAlertEmail
returns false when email fails
passed
0.002s
SLO Alert Service > sendSLOAlertEmail
uses amber color for warning status
passed
0.002s
SLO Alert Service > getActiveSLOAlerts
returns active (unresolved) alerts
passed
0.002s
SLO Alert Service > getRecentSLOAlerts
returns alerts from specified time period
passed
0.002s
SLO Alert Service > getRecentSLOAlerts
defaults to 24 hours
passed
0.003s
SLO Alert Service > resolveSLOAlert
resolves alert by ID
passed
0.003s
SLO Alert Service > resolveSLOAlert
includes resolvedBy user ID when provided
passed
0.001s
SLO Alert Service > getSLOAlertStats
returns aggregated statistics
passed
0.01s
SLO Alert Service > getSLOAlertStats
defaults to 7 days
passed
0.004s
SLO Alert Service > clearSLOAlertCooldowns
clears rate limiting cache
passed
0.014s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\admin\pricing\__tests__\route.test.ts
6.267s
GET /api/admin/pricing > Authentication & Authorization
returns 401 when not authenticated
passed
0.053s
GET /api/admin/pricing > Authentication & Authorization
returns 403 when user is not admin
passed
0.006s
GET /api/admin/pricing > Successful retrieval
returns all pricing rules for admin
passed
0.011s
GET /api/admin/pricing > Successful retrieval
returns empty array when no rules exist
passed
0.051s
GET /api/admin/pricing > Successful retrieval
supports filtering by type
passed
0.008s
GET /api/admin/pricing > Successful retrieval
supports filtering by active status
passed
0.005s
GET /api/admin/pricing > Error handling
returns 500 on database error
passed
0.142s
POST /api/admin/pricing > Authentication & Authorization
returns 401 when not authenticated
passed
0.007s
POST /api/admin/pricing > Authentication & Authorization
returns 403 when not admin
passed
0.006s
POST /api/admin/pricing > Validation
returns 400 for missing name
passed
0.042s
POST /api/admin/pricing > Validation
returns 400 for invalid discount type
passed
0.007s
POST /api/admin/pricing > Validation
returns 400 for invalid rule type
passed
0.007s
POST /api/admin/pricing > Validation
returns 400 for negative discount value
passed
0.029s
POST /api/admin/pricing > Validation
returns 400 for priority > 100
passed
0.006s
POST /api/admin/pricing > Successful creation
creates pricing rule successfully
passed
0.007s
POST /api/admin/pricing > Successful creation
creates rule with target products
passed
0.006s
POST /api/admin/pricing > Successful creation
creates rule with scheduling
passed
0.013s
POST /api/admin/pricing > Successful creation
creates rule with A/B testing
passed
0.006s
POST /api/admin/pricing > Error handling
returns 500 on database error
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\core\__tests__\serializers.test.ts
5.474s
serializePrismaObject > handling primitives
should return null as-is
passed
0.019s
serializePrismaObject > handling primitives
should return undefined as-is
passed
0.005s
serializePrismaObject > handling primitives
should return strings as-is
passed
0.004s
serializePrismaObject > handling primitives
should return numbers as-is
passed
0.008s
serializePrismaObject > handling primitives
should return booleans as-is
passed
0.009s
serializePrismaObject > handling Date objects
should convert Date to ISO string
passed
0.018s
serializePrismaObject > handling Date objects
should handle Date objects in objects
passed
0.006s
serializePrismaObject > handling Date objects
should handle Date objects in arrays
passed
0.003s
serializePrismaObject > handling arrays
should serialize arrays of primitives
passed
0.002s
serializePrismaObject > handling arrays
should serialize arrays of objects
passed
0.004s
serializePrismaObject > handling arrays
should handle nested arrays
passed
0.003s
serializePrismaObject > handling objects
should serialize simple objects
passed
0.003s
serializePrismaObject > handling objects
should serialize nested objects
passed
0.003s
serializePrismaObject > handling objects
should serialize objects with array properties
passed
0.003s
serializePrismaObject > real-world Prisma object scenarios
should serialize a typical product object
passed
0.004s
deserializePrismaObject > handling primitives
should return null as-is
passed
0.003s
deserializePrismaObject > handling primitives
should return undefined as-is
passed
0.006s
deserializePrismaObject > handling primitives
should return non-date strings as-is
passed
0.002s
deserializePrismaObject > handling primitives
should return numbers as-is
passed
0.014s
deserializePrismaObject > handling primitives
should return booleans as-is
passed
0.003s
deserializePrismaObject > handling ISO date strings
should convert ISO string to Date object
passed
0.003s
deserializePrismaObject > handling ISO date strings
should convert ISO date strings in objects
passed
0.006s
deserializePrismaObject > handling ISO date strings
should convert ISO date strings in arrays
passed
0.003s
deserializePrismaObject > handling arrays
should deserialize arrays of objects with dates
passed
0.003s
deserializePrismaObject > handling arrays
should handle nested arrays
passed
0.003s
deserializePrismaObject > handling objects
should deserialize nested objects with dates
passed
0.002s
deserializePrismaObject > handling objects
should deserialize objects with array properties
passed
0.003s
deserializePrismaObject > roundtrip serialization
should correctly roundtrip serialize and deserialize
passed
0.004s
deserializePrismaObject > edge cases
should not convert date-like strings that do not match ISO format
passed
0.003s
deserializePrismaObject > edge cases
should not convert random strings
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\charts\ResponseTimeChart\ResponseTimeChart.test.tsx
5.976s
ResponseTimeChart > Rendering
renders without crashing
passed
0.146s
ResponseTimeChart > Rendering
displays the chart title
passed
0.036s
ResponseTimeChart > Rendering
displays time range in title
passed
0.017s
ResponseTimeChart > Rendering
renders the chart container
passed
0.011s
ResponseTimeChart > Rendering
renders line chart
passed
0.013s
ResponseTimeChart > Loading State
displays loading message when isLoading is true
passed
0.01s
ResponseTimeChart > Loading State
does not render chart when loading
passed
0.007s
ResponseTimeChart > Empty State
displays empty message when no data
passed
0.09s
ResponseTimeChart > Empty State
does not render chart when empty
passed
0.013s
ResponseTimeChart > Time Range Variations
renders correctly with 1h time range
passed
0.015s
ResponseTimeChart > Time Range Variations
renders correctly with 6h time range
passed
0.054s
ResponseTimeChart > Time Range Variations
renders correctly with 24h time range
passed
0.012s
ResponseTimeChart > Time Range Variations
renders correctly with 7d time range
passed
0.081s
ResponseTimeChart > Time Range Variations
renders correctly with 30d time range
passed
0.011s
ResponseTimeChart > String timestamps
handles string timestamps correctly
passed
0.012s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\__tests__\demo-mode.test.ts
2.756s
Demo Mode Utility > isDemoMode
should return false when NEXT_PUBLIC_DEMO_MODE is not set
passed
0.03s
Demo Mode Utility > isDemoMode
should return false when NEXT_PUBLIC_DEMO_MODE is 'false'
passed
0.004s
Demo Mode Utility > isDemoMode
should return true when NEXT_PUBLIC_DEMO_MODE is 'true'
passed
0.004s
Demo Mode Utility > isDemoMode
should return false for other values
passed
0.004s
Demo Mode Utility > getDemoModeConfig
should return disabled config when demo mode is off
passed
0.005s
Demo Mode Utility > getDemoModeConfig
should return enabled config when demo mode is on
passed
0.005s
Demo Mode Utility > getDemoModeConfig
should have consistent enabled and skipPayment values
passed
0.003s
Demo Mode Utility > getClientDemoMode
should return false when NEXT_PUBLIC_DEMO_MODE is not set (server-side)
passed
0.005s
Demo Mode Utility > getClientDemoMode
should return true when NEXT_PUBLIC_DEMO_MODE is 'true' (server-side)
passed
0.003s
Demo Mode Utility > getClientDemoMode
should return false when NEXT_PUBLIC_DEMO_MODE is 'false' (server-side)
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\api-docs\__tests__\validator.test.ts
4.764s
API Response Validator > validateResponse
should validate a correct response
passed
0.024s
API Response Validator > validateResponse
should report missing required field
passed
0.02s
API Response Validator > validateResponse
should allow missing optional fields
passed
0.003s
API Response Validator > validateResponse
should report type mismatch
passed
0.003s
API Response Validator > validateResponse
should report undocumented status code
passed
0.004s
API Response Validator > validateResponse
should report undocumented fields
passed
0.003s
API Response Validator > validateResponse
should validate nested objects
passed
0.002s
API Response Validator > validateResponse
should report nested object type mismatches
passed
0.003s
API Response Validator > validateResponse
should validate arrays
passed
0.024s
API Response Validator > validateResponse
should validate enum values
passed
0.003s
API Response Validator > validateResponse
should calculate coverage correctly
passed
0.018s
API Response Validator > validateResponse
should handle null response body
passed
0.005s
API Response Validator > validateResponse
should handle empty response body
passed
0.002s
API Response Validator > getValidationSummary
should return success status for valid response
passed
0.007s
API Response Validator > getValidationSummary
should return error status for errors
passed
0.06s
API Response Validator > getValidationSummary
should return warning status for warnings only
passed
0.003s
API Response Validator > getValidationSummary
should return success with info for undocumented fields
passed
0.002s
API Response Validator > generateResponseDiff
should generate a readable diff report
passed
0.005s
API Response Validator > generateResponseDiff
should include issues in the diff
passed
0.015s
API Response Validator > generateResponseDiff
should indicate when no issues found
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\features\admin\monitoring\charts\EndpointDistributionChart\EndpointDistributionChart.test.tsx
3.477s
EndpointDistributionChart > Rendering
renders without crashing
passed
0.129s
EndpointDistributionChart > Rendering
displays the chart title
passed
0.024s
EndpointDistributionChart > Rendering
renders the pie chart
passed
0.035s
EndpointDistributionChart > Loading State
displays loading message when isLoading is true
passed
0.02s
EndpointDistributionChart > Empty State
displays empty message when no data
passed
0.017s
EndpointDistributionChart > Max Slices
groups endpoints when exceeding maxSlices
passed
0.053s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\database\__tests__\pagination.test.ts
6.582s
Cursor Pagination > cursorPaginate
returns first page of results without cursor
passed
0.015s
Cursor Pagination > cursorPaginate
returns subsequent page with cursor
passed
0.03s
Cursor Pagination > cursorPaginate
handles empty result set
passed
0.005s
Cursor Pagination > cursorPaginate
returns correct hasMore when less items than limit
passed
0.024s
Cursor Pagination > cursorPaginate
passes where clause to model
passed
0.003s
Cursor Pagination > cursorPaginate
passes orderBy clause to model
passed
0.004s
Cursor Pagination > cursorPaginate
requests limit + 1 items to check for more
passed
0.003s
Cursor Pagination > cursorPaginate
handles backward pagination direction
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\auth\__tests__\auth-utils.test.ts
5.943s
auth-utils > getServerSession
exports auth as getServerSession
passed
0.011s
auth-utils > requireAuth
returns session when user is authenticated
passed
0.008s
auth-utils > requireAuth
throws error when session is null
passed
0.105s
auth-utils > requireAuth
throws error when session exists but user is missing
passed
0.005s
auth-utils > requireAuth
throws error when session exists but user.id is missing
passed
0.04s
auth-utils > requireAuth
throws error when user.id is null
passed
0.005s
auth-utils > requireAuth
throws error when user.id is undefined
passed
0.004s
auth-utils > requireAuth
throws error when user.id is 0
passed
0.003s
auth-utils > requireAuth
accepts valid user.id
passed
0.003s
auth-utils > requireAdminRole
returns session when user is admin
passed
0.003s
auth-utils > requireAdminRole
throws Unauthorized when session is null
passed
0.037s
auth-utils > requireAdminRole
throws Unauthorized when user is missing
passed
0.012s
auth-utils > requireAdminRole
throws Forbidden when user is not admin
passed
0.004s
auth-utils > requireAdminRole
throws Forbidden when role is undefined
passed
0.004s
auth-utils > requireAdminRole
throws Forbidden when role is null
passed
0.003s
auth-utils > requireAdminRole
throws Forbidden when role is empty string
passed
0.009s
auth-utils > requireAdminRole
is case-sensitive for role check
passed
0.004s
auth-utils > requireAdminRole
accepts ADMIN role exactly
passed
0.003s
auth-utils > handleAuthError
returns 401 response for Unauthorized error
passed
0.006s
auth-utils > handleAuthError
returns 403 response for Forbidden error
passed
0.009s
auth-utils > handleAuthError
returns 403 response for any error containing Forbidden
passed
0.004s
auth-utils > handleAuthError
returns null for non-auth errors
passed
0.004s
auth-utils > handleAuthError
returns null for generic errors
passed
0.003s
auth-utils > handleAuthError
handles errors with empty message
passed
0.003s
auth-utils > handleAuthError
preserves full error message in Forbidden response
passed
0.003s
auth-utils > getCurrentUserId
returns user ID when authenticated
passed
0.004s
auth-utils > getCurrentUserId
throws error when not authenticated
passed
0.004s
auth-utils > getCurrentUserId
throws error when user.id is missing
passed
0.004s
auth-utils > getCurrentUserId
throws error when user.id is null
passed
0.004s
auth-utils > getCurrentUserId
returns correct ID for different user IDs
passed
0.004s
auth-utils > getCurrentUserRole
returns ADMIN role when user is admin
passed
0.004s
auth-utils > getCurrentUserRole
returns CUSTOMER role when user is customer
passed
0.003s
auth-utils > getCurrentUserRole
defaults to CUSTOMER when role is undefined
passed
0.006s
auth-utils > getCurrentUserRole
defaults to CUSTOMER when role is null
passed
0.004s
auth-utils > getCurrentUserRole
defaults to CUSTOMER when role is empty string
passed
0.003s
auth-utils > getCurrentUserRole
throws error when not authenticated
passed
0.007s
auth-utils > getCurrentUserRole
throws error when user is missing
passed
0.004s
auth-utils > getCurrentUserRole
returns exact role value when set
passed
0.004s
auth-utils > Integration scenarios
handles complete authentication flow
passed
0.004s
auth-utils > Integration scenarios
handles admin authentication flow
passed
0.005s
auth-utils > Integration scenarios
handles unauthenticated user across all functions
passed
0.008s
auth-utils > Integration scenarios
handles error responses consistently
passed
0.004s
auth-utils > Edge cases
handles session with extra properties
passed
0.003s
auth-utils > Edge cases
handles auth function throwing error
passed
0.008s
auth-utils > Edge cases
handles numeric user IDs as strings
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\monitoring\__tests__\sanitize.test.ts
5.564s
sanitizeErrorData > password redaction
redacts password= patterns
passed
0.016s
sanitizeErrorData > password redaction
redacts password: patterns
passed
0.006s
sanitizeErrorData > token redaction
redacts Bearer tokens
passed
0.006s
sanitizeErrorData > token redaction
redacts api_key patterns
passed
0.004s
sanitizeErrorData > token redaction
redacts access_token patterns
passed
0.003s
sanitizeErrorData > PII redaction
redacts email addresses
passed
0.004s
sanitizeErrorData > PII redaction
redacts phone numbers
passed
0.003s
sanitizeErrorData > PII redaction
redacts SSN patterns
passed
0.003s
sanitizeErrorData > PII redaction
redacts credit card numbers
passed
0.003s
sanitizeErrorData > database connection strings
redacts MySQL connection strings
passed
0.003s
sanitizeErrorData > database connection strings
redacts PostgreSQL connection strings
passed
0.016s
sanitizeErrorData > AWS credentials
redacts AWS access keys
passed
0.003s
sanitizeErrorData > IP addresses
redacts IP addresses
passed
0.003s
sanitizeErrorData > edge cases
handles empty string
passed
0.002s
sanitizeErrorData > edge cases
handles null/undefined
passed
0.003s
sanitizeErrorData > edge cases
preserves non-sensitive data
passed
0.003s
sanitizeErrorData > edge cases
handles multiple sensitive patterns
passed
0.003s
sanitizeMetadata > sensitive key redaction
redacts password keys
passed
0.007s
sanitizeMetadata > sensitive key redaction
redacts token keys
passed
0.003s
sanitizeMetadata > sensitive key redaction
redacts apiKey variants
passed
0.007s
sanitizeMetadata > sensitive key redaction
redacts keys containing sensitive words
passed
0.004s
sanitizeMetadata > value sanitization
sanitizes string values
passed
0.005s
sanitizeMetadata > value sanitization
passes through non-string values
passed
0.006s
sanitizeMetadata > nested objects
recursively sanitizes nested objects
passed
0.005s
sanitizeMetadata > arrays
sanitizes strings in arrays
passed
0.003s
sanitizeMetadata > arrays
sanitizes objects in arrays
passed
0.003s
sanitizeError
sanitizes complete error object
passed
0.008s
sanitizeError
preserves original object structure
passed
0.007s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\security\__tests__\security-config.test.ts
2.796s
Security Configuration > PASSWORD_CONFIG
has bcrypt rounds >= 12 (OWASP recommendation)
passed
0.008s
Security Configuration > PASSWORD_CONFIG
has minimum password length >= 8
passed
0.003s
Security Configuration > PASSWORD_CONFIG
has maximum password length to prevent DoS
passed
0.033s
Security Configuration > PASSWORD_CONFIG
requires uppercase letters
passed
0.004s
Security Configuration > PASSWORD_CONFIG
requires lowercase letters
passed
0.003s
Security Configuration > PASSWORD_CONFIG
requires numbers
passed
0.014s
Security Configuration > PASSWORD_CONFIG
has all expected properties
passed
0.006s
Security Configuration > SESSION_CONFIG
has max age of at least 1 hour
passed
0.004s
Security Configuration > SESSION_CONFIG
has max age of at most 30 days
passed
0.002s
Security Configuration > SESSION_CONFIG
has update age less than max age
passed
0.002s
Security Configuration > SESSION_CONFIG
has secure cookies flag
passed
0.002s
Security Configuration > SESSION_CONFIG
has all expected properties
passed
0.002s
Security Configuration > TOKEN_CONFIG
has password reset expiry between 30 minutes and 24 hours
passed
0.002s
Security Configuration > TOKEN_CONFIG
has email verification expiry between 1 hour and 7 days
passed
0.003s
Security Configuration > TOKEN_CONFIG
has CSRF token expiry between 30 minutes and 24 hours
passed
0.002s
Security Configuration > TOKEN_CONFIG
has token bytes >= 32 (256 bits of entropy)
passed
0.002s
Security Configuration > TOKEN_CONFIG
has all expected properties
passed
0.002s
Security Configuration > HEADERS_CONFIG
has CSP configuration
passed
0.016s
Security Configuration > HEADERS_CONFIG
CSP includes self directive
passed
0.013s
Security Configuration > HEADERS_CONFIG
CSP allows Stripe for payments
passed
0.001s
Security Configuration > HEADERS_CONFIG
has HSTS max age of at least 1 year
passed
0.002s
Security Configuration > HEADERS_CONFIG
has all expected properties
passed
0.002s
Security Configuration > Configuration Immutability
PASSWORD_CONFIG values are readonly
passed
0.001s
Security Configuration > Configuration Immutability
SESSION_CONFIG values are readonly
passed
0.001s
Security Configuration > Configuration Immutability
TOKEN_CONFIG values are readonly
passed
0.001s
Security Configuration > Security Best Practices
bcrypt rounds are computationally expensive enough
passed
0.001s
Security Configuration > Security Best Practices
token bytes provide sufficient entropy
passed
0.001s
Security Configuration > Security Best Practices
HSTS max age is at least 1 year (recommended)
passed
0.001s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\admin\monitoring\PriorityBadge.test.tsx
6.11s
PriorityBadge
renders low priority
passed
0.088s
PriorityBadge
renders medium priority
passed
0.018s
PriorityBadge
renders high priority
passed
0.013s
PriorityBadge
renders critical priority
passed
0.028s
PriorityBadge
has correct test id
passed
0.014s
PriorityBadge
applies custom className
passed
0.011s
PriorityBadge
handles unknown priority gracefully
passed
0.009s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\monitoring\__tests__\withMonitoring.test.ts
6.311s
withMonitoring > module structure
exports withMonitoring function
passed
0.037s
withMonitoring > logging behavior verification
provides mock logger for testing downstream code
passed
0.007s
withMonitoring > logging behavior verification
can track slow request warnings
passed
0.005s
withMonitoring > logging behavior verification
can track error logs
passed
0.003s
withMonitoring > prisma metric storage verification
provides mock for performance metric storage
passed
0.003s
withMonitoring integration patterns
should wrap handlers with monitoring logic pattern
passed
0.003s
withMonitoring integration patterns
should track duration in monitoring pattern
passed
0.03s
withMonitoring integration patterns
should detect slow requests pattern
passed
0.027s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\testimonials\__tests__\route.test.ts
5.628s
GET /api/testimonials > Successful requests
returns active testimonials
passed
0.078s
GET /api/testimonials > Successful requests
returns testimonial data with expected fields only
passed
0.007s
GET /api/testimonials > Successful requests
respects limit parameter
passed
0.004s
GET /api/testimonials > Successful requests
caps limit at 50
passed
0.003s
GET /api/testimonials > Successful requests
uses default limit of 10
passed
0.003s
GET /api/testimonials > Successful requests
orders by createdAt descending
passed
0.004s
GET /api/testimonials > Successful requests
includes cache headers
passed
0.003s
GET /api/testimonials > Successful requests
returns empty array when no testimonials exist
passed
0.004s
GET /api/testimonials > Error handling
returns 500 on database error
passed
0.059s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\redux\features\__tests__\quickViewSlice.test.ts
6.196s
quickView-slice > initial state
returns the initial state
passed
0.014s
quickView-slice > initial state
has empty initial values
passed
0.005s
quickView-slice > updateQuickView
updates the quick view with product data
passed
0.022s
quickView-slice > updateQuickView
sets isOpen to true
passed
0.004s
quickView-slice > updateQuickView
replaces all product data
passed
0.004s
quickView-slice > updateQuickView
overwrites existing product data
passed
0.005s
quickView-slice > updateQuickView
handles product with minimal data
passed
0.004s
quickView-slice > updateQuickView
preserves image arrays
passed
0.003s
quickView-slice > resetQuickView
resets to initial state
passed
0.003s
quickView-slice > resetQuickView
sets isOpen to false
passed
0.002s
quickView-slice > resetQuickView
clears all product data
passed
0.017s
quickView-slice > resetQuickView
is idempotent
passed
0.006s
quickView-slice > closeQuickView
sets isOpen to false
passed
0.003s
quickView-slice > closeQuickView
preserves product data
passed
0.005s
quickView-slice > action creators
creates updateQuickView action
passed
0.002s
quickView-slice > action creators
creates resetQuickView action
passed
0.009s
quickView-slice > action creators
creates closeQuickView action
passed
0.003s
quickView-slice > selectors
selectQuickViewProduct returns the product
passed
0.03s
quickView-slice > selectors
selectQuickViewIsOpen returns isOpen state
passed
0.003s
quickView-slice > state immutability
does not mutate previous state on update
passed
0.004s
quickView-slice > state immutability
does not mutate previous state on reset
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\__tests__\auth-utils.test.ts
3.57s
Auth Utils > requireAuth
returns session when user is authenticated
passed
0.018s
Auth Utils > requireAuth
throws error when session is null
passed
0.046s
Auth Utils > requireAuth
throws error when user is undefined
passed
0.004s
Auth Utils > requireAuth
throws error when user id is missing
passed
0.003s
Auth Utils > requireAuth
throws error when user id is null
passed
0.006s
Auth Utils > requireAdminRole
returns session when user is admin
passed
0.003s
Auth Utils > requireAdminRole
throws Unauthorized when session is null
passed
0.004s
Auth Utils > requireAdminRole
throws Unauthorized when user id is missing
passed
0.007s
Auth Utils > requireAdminRole
throws Forbidden when user is not admin
passed
0.004s
Auth Utils > requireAdminRole
throws Forbidden when user has no role
passed
0.004s
Auth Utils > handleAuthError
returns 401 response for Unauthorized error
passed
0.008s
Auth Utils > handleAuthError
returns correct error body for Unauthorized
passed
0.006s
Auth Utils > handleAuthError
returns 403 response for Forbidden error
passed
0.004s
Auth Utils > handleAuthError
returns correct error body for Forbidden
passed
0.012s
Auth Utils > handleAuthError
returns 403 for any error containing Forbidden
passed
0.006s
Auth Utils > handleAuthError
returns null for non-auth errors
passed
0.002s
Auth Utils > handleAuthError
returns null for generic errors
passed
0.002s
Auth Utils > getCurrentUserId
returns user id when authenticated
passed
0.002s
Auth Utils > getCurrentUserId
throws error when not authenticated
passed
0.008s
Auth Utils > getCurrentUserId
throws error when user id is missing after auth
passed
0.003s
Auth Utils > getCurrentUserRole
returns user role when authenticated
passed
0.003s
Auth Utils > getCurrentUserRole
returns CUSTOMER as default role when role is missing
passed
0.003s
Auth Utils > getCurrentUserRole
throws error when not authenticated
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\core\__tests__\http-cache.test.ts
5.767s
HTTP Cache Utilities > generateETag
should generate consistent ETag for same data
passed
0.008s
HTTP Cache Utilities > generateETag
should generate different ETag for different data
passed
0.018s
HTTP Cache Utilities > generateETag
should return a 16 character string
passed
0.006s
HTTP Cache Utilities > generateETag
should handle complex nested objects
passed
0.003s
HTTP Cache Utilities > generateETag
should handle arrays
passed
0.003s
HTTP Cache Utilities > generateETag
should handle strings
passed
0.007s
HTTP Cache Utilities > generateETag
should handle numbers
passed
0.003s
HTTP Cache Utilities > generateETag
should handle null
passed
0.002s
HTTP Cache Utilities > generateETag
should produce consistent ETags for boolean values
passed
0.022s
HTTP Cache Utilities > CACHE_PRESETS
should have publicStatic preset with correct values
passed
0.003s
HTTP Cache Utilities > CACHE_PRESETS
should have productList preset with correct values
passed
0.003s
HTTP Cache Utilities > CACHE_PRESETS
should have productDetail preset with correct values
passed
0.003s
HTTP Cache Utilities > CACHE_PRESETS
should have userPrivate preset with correct values
passed
0.003s
HTTP Cache Utilities > CACHE_PRESETS
should have search preset with correct values
passed
0.002s
HTTP Cache Utilities > CACHE_PRESETS
should have noCache preset with correct values
passed
0.002s
HTTP Cache Utilities > CACHE_PRESETS
should not overlap conflicting cache directives in presets
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\monitoring\__tests__\fingerprint.test.ts
6.242s
generateErrorFingerprint > basic fingerprinting
generates consistent fingerprint for same input
passed
0.025s
generateErrorFingerprint > basic fingerprinting
generates different fingerprints for different messages
passed
0.004s
generateErrorFingerprint > basic fingerprinting
handles empty input
passed
0.003s
generateErrorFingerprint > stack trace normalization
groups errors with different line numbers
passed
0.004s
generateErrorFingerprint > stack trace normalization
groups errors with different webpack hashes
passed
0.004s
generateErrorFingerprint > stack trace normalization
differentiates errors from different files
passed
0.003s
generateErrorFingerprint > URL normalization
groups errors from different product IDs
passed
0.009s
generateErrorFingerprint > URL normalization
generates consistent fingerprint for same URL with UUID
passed
0.004s
generateErrorFingerprint > URL normalization
differentiates errors from different routes
passed
0.003s
generateErrorFingerprint > message normalization
groups errors with different timestamps
passed
0.003s
generateErrorFingerprint > message normalization
groups errors with different UUIDs in message
passed
0.002s
generateErrorFingerprint > message normalization
groups errors with different numeric IDs
passed
0.002s
createShortHash
generates 8 character hash
passed
0.002s
createShortHash
generates consistent hash
passed
0.002s
createShortHash
generates different hash for different input
passed
0.007s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\admin\monitoring\CategoryBadge.test.tsx
2.865s
CategoryBadge
renders category text
passed
0.115s
CategoryBadge
has correct test id
passed
0.009s
CategoryBadge
applies custom className
passed
0.02s
CategoryBadge
returns null for null category
passed
0.007s
CategoryBadge
returns null for undefined category
passed
0.007s
CategoryBadge
renders empty string category as null
passed
0.006s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\errors\__tests__\error-classifier.test.ts
6.986s
classifyError > Network errors
should classify fetch TypeError as network error
passed
0.017s
classifyError > HTTP status errors
should classify 400 as validation error
passed
0.003s
classifyError > HTTP status errors
should classify 401 as authentication error
passed
0.002s
classifyError > HTTP status errors
should classify 403 as authorization error
passed
0.002s
classifyError > HTTP status errors
should classify 404 as not found error
passed
0.002s
classifyError > HTTP status errors
should classify 429 as rate limit error
passed
0.002s
classifyError > HTTP status errors
should classify 500 as server error
passed
0.001s
classifyError > HTTP status errors
should classify 502 as server error
passed
0.002s
classifyError > HTTP status errors
should classify 503 as server error
passed
0.002s
classifyError > Payment errors
should classify payment-related errors
passed
0.002s
classifyError > Payment errors
should classify card-related errors as payment errors
passed
0.009s
classifyError > Payment errors
should classify Stripe errors as payment errors
passed
0.011s
classifyError > Validation errors
should classify validation errors
passed
0.003s
classifyError > Validation errors
should classify invalid input errors
passed
0.002s
classifyError > Auth errors
should classify unauthorized errors
passed
0.002s
classifyError > Auth errors
should classify session expired errors
passed
0.001s
classifyError > Unknown errors
should classify unknown errors
passed
0.002s
classifyError > Unknown errors
should handle non-Error objects
passed
0.002s
classifyError > Unknown errors
should handle null
passed
0.001s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\components\admin\monitoring\StatusBadge.test.tsx
5.907s
StatusBadge
renders open status
passed
0.083s
StatusBadge
renders resolved status
passed
0.009s
StatusBadge
renders ignored status
passed
0.026s
StatusBadge
renders snoozed status
passed
0.012s
StatusBadge
has correct test id
passed
0.009s
StatusBadge
applies custom className
passed
0.009s
StatusBadge
handles unknown status gracefully
passed
0.008s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\health\db\__tests__\route.test.ts
5.316s
GET /api/health/db
returns healthy status when all checks pass
passed
0.014s
GET /api/health/db
returns degraded status when query performance has warnings
passed
0.007s
GET /api/health/db
returns unhealthy status when database connection fails
passed
0.005s
GET /api/health/db
returns unhealthy status when table check fails
passed
0.005s
GET /api/health/db
includes correct table counts
passed
0.012s
GET /api/health/db
includes timestamp in response
passed
0.033s
GET /api/health/db
sets no-cache headers
passed
0.008s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\app\api\cron\slo-check\__tests__\route.test.ts
6.464s
SLO Check Cron Job > POST /api/cron/slo-check
returns 401 without valid authorization
passed
0.014s
SLO Check Cron Job > POST /api/cron/slo-check
returns 401 without authorization header
passed
0.005s
SLO Check Cron Job > POST /api/cron/slo-check
allows request with valid authorization
passed
0.009s
SLO Check Cron Job > POST /api/cron/slo-check
allows request when CRON_SECRET is not set
passed
0.008s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\lib\core\__tests__\validators.test.ts
5.21s
validateProductForm > valid data
should return valid for complete product data
passed
0.012s
validateProductForm > valid data
should allow discountedPrice less than price
passed
0.004s
validateProductForm > valid data
should allow discountedPrice equal to price
passed
0.005s
validateProductForm > title validation
should error when title is missing
passed
0.003s
validateProductForm > title validation
should error when title is empty string
passed
0.004s
validateProductForm > title validation
should error when title is whitespace only
passed
0.004s
validateProductForm > title validation
should error when title is not a string
passed
0.035s
validateProductForm > price validation
should error when price is missing
passed
0.004s
validateProductForm > price validation
should error when price is zero
passed
0.003s
validateProductForm > price validation
should error when price is negative
passed
0.003s
validateProductForm > price validation
should accept string price that parses to valid number
passed
0.003s
validateProductForm > categoryId validation
should error when categoryId is missing
passed
0.003s
validateProductForm > discountedPrice validation
should error when discountedPrice is higher than price
passed
0.003s
validateProductForm > discountedPrice validation
should work with string prices for discountedPrice comparison
passed
0.002s
validateProductForm > multiple errors
should return all errors when multiple fields are invalid
passed
0.004s
validateCategoryForm > valid data
should return valid for complete category data
passed
0.003s
validateCategoryForm > title validation
should error when title is missing
passed
0.003s
validateCategoryForm > title validation
should error when title is empty string
passed
0.003s
validateCategoryForm > title validation
should error when title is whitespace only
passed
0.002s
validateCategoryForm > title validation
should error when title is not a string
passed
0.002s
validateCategoryForm > slug validation
should error when slug is missing
passed
0.002s
validateCategoryForm > slug validation
should error when slug is empty string
passed
0.007s
validateCategoryForm > slug validation
should error when slug is whitespace only
passed
0.003s
validateCategoryForm > slug validation
should error when slug is not a string
passed
0.003s
validateCategoryForm > multiple errors
should return all errors when multiple fields are invalid
passed
0.003s
C:\Users\me\Documents\Projects\elite_events_nextjs\src\services\__tests__\cart.service.test.ts
5.499s
CartService > getCart
returns empty cart for user with no items
passed
0.019s
CartService > getCart
returns transformed cart items with product details
passed
0.007s
CartService > getCart
returns multiple cart items ordered by updatedAt
passed
0.004s
CartService > addItem
creates new cart item when product exists and not in cart
passed
0.004s
CartService > addItem
updates quantity when item already exists in cart
passed
0.003s
CartService > addItem
throws error when product does not exist
passed
0.097s
CartService > addItem
uses default deviceId when not provided
passed
0.004s
CartService > addItem
uses composite key for finding existing cart item
passed
0.004s
CartService > updateQuantity
updates cart item quantity
passed
0.003s
CartService > updateQuantity
removes item when quantity is set to zero
passed
0.012s
CartService > updateQuantity
removes item when quantity is negative
passed
0.004s
CartService > updateQuantity
uses default deviceId when not provided
passed
0.003s
CartService > removeItem
deletes cart item by userId and productId
passed
0.004s
CartService > clearCart
deletes all cart items for user
passed
0.003s
CartService > clearCart
succeeds even if cart is empty
passed
0.003s
CartService > mergeAnonymousCartToUser
returns user items when no anonymous items exist
passed
0.003s
CartService > mergeAnonymousCartToUser
returns skip when anonymous items is null
passed
0.003s
CartService > mergeAnonymousCartToUser
adds new items from anonymous cart to user cart
passed
0.005s
CartService > mergeAnonymousCartToUser
sums quantities when same product exists in both carts
passed
0.004s
CartService > mergeAnonymousCartToUser
does not create conflict when quantities are same
passed
0.004s
CartService > mergeAnonymousCartToUser
handles multiple items with mixed scenarios
passed
0.005s
CartService > mergeAnonymousCartToUser
handles empty user cart with anonymous items
passed
0.003s
CartService > applyCartMerge
deletes existing cart and creates merged items
passed
0.004s
CartService > applyCartMerge
does not call createMany when merged items is empty
passed
0.004s
CartService > applyCartMerge
throws error when transaction fails
passed
0.011s
CartService > getStaleCartItems
retrieves cart items marked as stale
passed
0.005s
CartService > markCartItemsAsStale
marks specified cart items as stale
passed
0.004s
CartService > clearStaleFlags
clears stale flags from all user cart items
passed
0.008s
CartService > validateCartItems
returns true for valid cart items
passed
0.003s
CartService > validateCartItems
returns false for non-array input
passed
0.004s
CartService > validateCartItems
returns true for empty array
passed
0.003s
CartService > validateCartItems
returns false when item has no id
passed
0.003s
CartService > validateCartItems
returns false when item id is not a number
passed
0.003s
CartService > validateCartItems
returns false when item has no quantity
passed
0.003s
CartService > validateCartItems
returns false when quantity is not a number
passed
0.003s
CartService > validateCartItems
returns false when quantity is zero
passed
0.003s
CartService > validateCartItems
returns false when quantity is negative
passed
0.003s
CartService > validateCartItems
returns false if any item in array is invalid
passed
0.002s