Skip to content

Add tests for carousel template payload validation #2

@ewilderj

Description

@ewilderj

Description

Add comprehensive tests for carousel template payload validation to ensure invalid payloads are properly rejected with clear error messages.

Work Required

  1. Create Test File: Add test/templates.validation.carousel.test.js
  2. Test Required Fields: Validate items array (required, must be array, non-empty)
  3. Test Bounds: Validate duration bounds (must be positive number within reasonable limits)
  4. Test Optional Parameters: Validate zoomScale, zoomMs, zoomOnVideo parameters
  5. 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

  • Invalid payloads are rejected with 400 status and clear error messages
  • All validation edge cases are covered
  • Tests follow existing patterns in the codebase
  • Test coverage includes both positive and negative test cases

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions