Description
Add comprehensive tests for carousel template payload validation to ensure invalid payloads are properly rejected with clear error messages.
Work Required
- Create Test File: Add
test/templates.validation.carousel.test.js
- Test Required Fields: Validate
items array (required, must be array, non-empty)
- Test Bounds: Validate
duration bounds (must be positive number within reasonable limits)
- Test Optional Parameters: Validate
zoomScale, zoomMs, zoomOnVideo parameters
- Follow Existing Pattern: Use same structure as
test/templates.validation.api.test.js
Implementation Details
Based on templates/carousel.html, the template expects:
items: Array of URLs (required, non-empty)
duration: Number in milliseconds (optional, defaults to 4000)
zoomScale: Number for zoom effect (optional, defaults to 1.05)
zoomMs: Duration for zoom animation (optional, defaults to duration)
zoomOnVideo: Boolean for video zoom (optional)
Test Cases to Cover
- Empty payload
{}
- Missing
items field
- Empty
items array []
- Invalid
items type (string, number, etc.)
- Invalid
duration values (negative, zero, non-numeric)
- Invalid
zoomScale values (negative, extreme values)
- Valid payload with all parameters
- Valid payload with minimal required fields
Files to Create/Modify
test/templates.validation.carousel.test.js - New test file
Acceptance Criteria
Description
Add comprehensive tests for carousel template payload validation to ensure invalid payloads are properly rejected with clear error messages.
Work Required
test/templates.validation.carousel.test.jsitemsarray (required, must be array, non-empty)durationbounds (must be positive number within reasonable limits)zoomScale,zoomMs,zoomOnVideoparameterstest/templates.validation.api.test.jsImplementation Details
Based on
templates/carousel.html, the template expects:items: Array of URLs (required, non-empty)duration: Number in milliseconds (optional, defaults to 4000)zoomScale: Number for zoom effect (optional, defaults to 1.05)zoomMs: Duration for zoom animation (optional, defaults to duration)zoomOnVideo: Boolean for video zoom (optional)Test Cases to Cover
{}itemsfielditemsarray[]itemstype (string, number, etc.)durationvalues (negative, zero, non-numeric)zoomScalevalues (negative, extreme values)Files to Create/Modify
test/templates.validation.carousel.test.js- New test fileAcceptance Criteria