# TeDS Default Validation Report

## Overview

Tool Version | teds 0.7.5
Specification Support | 1.0-1.0
Recommended Version | 1.0
Generated | 2025-09-29T18:21:19.412623+02:00
Report File | demo/sample_tests.yaml

## Executive Summary

This report analyzes 10 schema(s) with a total of 50 test cases.

### Results Summary

Status | Count | Description
--- | --- | ---
✓ SUCCESS | 40 | Test cases passed as expected
⚠ WARNING | 3 | Test cases with warnings (review recommended)
✗ ERROR | 7 | Test cases failed validation
Total | 50 | All test cases processed

## Detailed Results

### sample_schemas.yaml#/components/schemas/Email

#### Schema Summary

Valid Cases | 3
Invalid Cases | 1
Total Cases | 4

#### Valid Test Cases

Test Case | Payload | Status | Message
--- | --- | --- | ---
`.components.schemas.Email.examples[0]` | alice@example.com | ✓ SUCCESS |
`.components.schemas.Email.examples[1]` | not-an-email | ⚠ WARNING | Warnings: Relies on JSON Schema 'format' assertion (format: email). Validators that *enforce* 'format' will reject this instance. Consider enforcing the expected format by adding an explicit 'pattern' property to the schema.
`good email` | alice@example.com | ✓ SUCCESS |

#### Invalid Test Cases

Test Case | Payload | Status | Message
--- | --- | --- | ---
`not an email` | not-an-email | ✗ ERROR | UNEXPECTEDLY VALID A validator that *ignores* 'format' accepted this instance, while a strict validator (enforcing 'format') might reject it as desired (format: email). Consider enforcing the expected format by adding an explicit 'pattern' property to the schema.

### sample_schemas.yaml#/components/schemas/User

#### Schema Summary

Valid Cases | 4
Invalid Cases | 4
Total Cases | 8

#### Valid Test Cases

Test Case | Payload | Status | Message
--- | --- | --- | ---
`.components.schemas.User.examples[0]` | id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 name: Alice Example email: alice@example.com | ✓ SUCCESS |
`.components.schemas.User.examples[1]` | id: not-a-uuid name: bob email: x | ✗ ERROR | 'not-a-uuid' is not a 'uuid'
`minimal valid user` | id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 name: Alice Example email: alice@example.com | ✓ SUCCESS |
`parse as JSON string` | '{"id":"3fa85f64-5717-4562-b3fc-2c963f66afa6","name":"Bob Builder","email":"bob@example.com"}' | ✓ SUCCESS |

#### Invalid Test Cases

Test Case | Payload | Status | Message
--- | --- | --- | ---
`missing required prop` | id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 name: Alice Example | ✓ SUCCESS | 'email' is a required property
`additional property` | id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 name: Alice Example email: alice@example.com extra: nope | ✓ SUCCESS | Additional properties are not allowed ('extra' was unexpected)
`bad uuid` | id: not-a-uuid name: Alice Example email: alice@example.com | ✗ ERROR | UNEXPECTEDLY VALID A validator that *ignores* 'format' accepted this instance, while a strict validator (enforcing 'format') might reject it as desired (format: uuid). Consider enforcing the expected format by adding an explicit 'pattern' property to the schema.
`bad name pattern` | id: 3fa85f64-5717-4562-b3fc-2c963f66afa6 name: alice example email: alice@example.com | ✓ SUCCESS | 'alice example' does not match '^[A-Z][a-zA-Z]+(?: [A-Z][a-zA-Z]+)*$'

### sample_schemas.yaml#/components/schemas/Identifier

#### Schema Summary

Valid Cases | 4
Invalid Cases | 2
Total Cases | 6

#### Valid Test Cases

Test Case | Payload | Status | Message
--- | --- | --- | ---
`.components.schemas.Identifier.examples[0]` | AB-123 | ✓ SUCCESS |
`.components.schemas.Identifier.examples[1]` | 99 | ✓ SUCCESS |
`AB-777` | undefined | ✓ SUCCESS |
`forty-two` | 42 | ✓ SUCCESS |

#### Invalid Test Cases

Test Case | Payload | Status | Message
--- | --- | --- | ---
`zero not allowed` | 0 | ✓ SUCCESS | 0 is not valid under any of the given schemas
`wrong string pattern` | A-1 | ✓ SUCCESS | 'A-1' is not valid under any of the given schemas

### sample_schemas.yaml#/components/schemas/Color

#### Schema Summary

Valid Cases | 2
Invalid Cases | 1
Total Cases | 3

#### Valid Test Cases

Test Case | Payload | Status | Message
--- | --- | --- | ---
`.components.schemas.Color.examples[0]` | green | ✓ SUCCESS |
`simple enum ok` | red | ✓ SUCCESS |

#### Invalid Test Cases

Test Case | Payload | Status | Message
--- | --- | --- | ---
`not in enum` | yellow | ✓ SUCCESS | 'yellow' is not one of ['red', 'green', 'blue']

### sample_schemas.yaml#/components/schemas/Regexy

#### Schema Summary

Valid Cases | 2
Invalid Cases | 1
Total Cases | 3

#### Valid Test Cases

Test Case | Payload | Status | Message
--- | --- | --- | ---
`.components.schemas.Regexy.examples[0]` | abc12 | ✓ SUCCESS |
`regex ok` | abc12 | ✓ SUCCESS |

#### Invalid Test Cases

Test Case | Payload | Status | Message
--- | --- | --- | ---
`uppercase not allowed` | AB123 | ✓ SUCCESS | 'AB123' does not match '^[a-z]{3}\\d{2}$'

### sample_schemas.yaml#/components/schemas/Product

#### Schema Summary

Valid Cases | 3
Invalid Cases | 2
Total Cases | 5

#### Valid Test Cases

Test Case | Payload | Status | Message
--- | --- | --- | ---
`.components.schemas.Product.examples[0]` | sku: SKU1234 price: 12.5 tags: - key: env value: prod color: red | ✓ SUCCESS |
`full product` | sku: SKU1234 price: 12.5 tags: - key: env value: prod color: blue | ✓ SUCCESS |
`json string` | '{"sku":"SKU9999","price":0,"tags":[{"key":"env","value":"prod"}],"color":"green"}' | ✓ SUCCESS |

#### Invalid Test Cases

Test Case | Payload | Status | Message
--- | --- | --- | ---
`negative price` | sku: SKU1234 price: -1 | ✓ SUCCESS | -1 is less than the minimum of 0
`duplicate tags` | sku: SKU1234 price: 10 tags: - key: env value: prod - key: env value: prod | ⚠ WARNING | [{'key': 'env', 'value': 'prod'}, {'key': 'env', 'value': 'prod'}] has non-unique elements Warnings: Hyphenated SKUs are common in some systems; consider relaxing the pattern to allow '-' if business rules permit.

### sample_schemas.yaml#/components/schemas/Contact

#### Schema Summary

Valid Cases | 5
Invalid Cases | 1
Total Cases | 6

#### Valid Test Cases

Test Case | Payload | Status | Message
--- | --- | --- | ---
`.components.schemas.Contact.examples[0]` | email: someone@example.com | ✓ SUCCESS |
`.components.schemas.Contact.examples[1]` | phone: +49 621 1234567 | ✓ SUCCESS |
`.components.schemas.Contact.examples[2]` | email: someone@example.com phone: +49 621 1234567 | ✗ ERROR | {'email': 'someone@example.com', 'phone': '+49 621 1234567'} is not valid under any of the given schemas
`email contact` | email: someone@example.com | ⚠ WARNING | Warnings: If E.164-only is desired, tighten the schema (e.g., require '+' and country code) and normalize producers.
`parse json string` | '{"phone":"+4369912345678"}' | ✓ SUCCESS |

#### Invalid Test Cases

Test Case | Payload | Status | Message
--- | --- | --- | ---
`mixed variants` | email: someone@example.com phone: +49 621 1234567 | ✓ SUCCESS | {'email': 'someone@example.com', 'phone': '+49 621 1234567'} is not valid under any of the given schemas

### sample_schemas.yaml#/components/schemas/OrderLine

#### Schema Summary

Valid Cases | 6
Invalid Cases | 3
Total Cases | 9

#### Valid Test Cases

Test Case | Payload | Status | Message
--- | --- | --- | ---
`.components.schemas.OrderLine.examples[0]` | sku: SKU1234 unitPrice: 19.99 quantity: 2 | ✓ SUCCESS |
`.components.schemas.OrderLine.examples[1]` | bundleId: B-42 items: - sku: SKU9 quantity: 1 | ✓ SUCCESS |
`.components.schemas.OrderLine.examples[2]` | sku: SKU1 unitPrice: 10 quantity: 1 items: - sku: SKU2 quantity: 1 | ✗ ERROR | {'sku': 'SKU1', 'unitPrice': 10, 'quantity': 1, 'items': [{'sku': 'SKU2', 'quantity': 1}]} is not valid under any of the given schemas
`priced ok` | sku: SKU1234 unitPrice: 19.99 quantity: 2 | ✓ SUCCESS |
`bundled ok` | bundleId: B-42 items: - sku: SKU9 quantity: 1 | ✓ SUCCESS |
`priced via json string` | '{"sku":"SKU7777","unitPrice":0,"quantity":1}' | ✓ SUCCESS |

#### Invalid Test Cases

Test Case | Payload | Status | Message
--- | --- | --- | ---
`mixed properties` | sku: SKU1 unitPrice: 10 quantity: 1 items: - sku: SKU2 quantity: 1 | ✓ SUCCESS | {'sku': 'SKU1', 'unitPrice': 10, 'quantity': 1, 'items': [{'sku': 'SKU2', 'quantity': 1}]} is not valid under any of the given schemas
`missing required priced` | sku: SKU9999 | ✓ SUCCESS | {'sku': 'SKU9999'} is not valid under any of the given schemas
`wrong types` | sku: SKU1234 unitPrice: 10 quantity: 0 | ✓ SUCCESS | {'sku': 'SKU1234', 'unitPrice': 10, 'quantity': 0} is not valid under any of the given schemas

### sample_schemas.yaml#/components/schemas/URI

#### Schema Summary

Valid Cases | 2
Invalid Cases | 1
Total Cases | 3

#### Valid Test Cases

Test Case | Payload | Status | Message
--- | --- | --- | ---
`.components.schemas.URI.examples[0]` | https://example.com | ✓ SUCCESS |
`good uri` | https://example.com | ✓ SUCCESS |

#### Invalid Test Cases

Test Case | Payload | Status | Message
--- | --- | --- | ---
`not a uri` | not a uri | ✗ ERROR | UNEXPECTEDLY VALID A validator that *ignores* 'format' accepted this instance, while a strict validator (enforcing 'format') might reject it as desired (format: uri). Consider enforcing the expected format by adding an explicit 'pattern' property to the schema.

### sample_schemas.yaml#/components/schemas/DateISO

#### Schema Summary

Valid Cases | 2
Invalid Cases | 1
Total Cases | 3

#### Valid Test Cases

Test Case | Payload | Status | Message
--- | --- | --- | ---
`.components.schemas.DateISO.examples[0]` | '2025-08-31' | ✓ SUCCESS |
`good date` | '2025-08-31' | ✓ SUCCESS |

#### Invalid Test Cases

Test Case | Payload | Status | Message
--- | --- | --- | ---
`not a date` | 31-12-2025 | ✗ ERROR | UNEXPECTEDLY VALID A validator that *ignores* 'format' accepted this instance, while a strict validator (enforcing 'format') might reject it as desired (format: date). Consider enforcing the expected format by adding an explicit 'pattern' property to the schema.

## Appendix

### Tool Information

TeDS Version | 0.7.5
Supported Spec Range | 1.0-1.0
Recommended Spec Version | 1.0
Report Generation Time | 2025-09-29T18:21:19.412623+02:00

### Report Scope

This default report includes:

- Executive Summary - High-level overview of validation results
- Schema Coverage Analysis - Warnings for incomplete test coverage
- Detailed Results - Complete breakdown of all test cases by schema
- Color-coded Status Indicators - Visual distinction between SUCCESS, WARNING, and ERROR states
- Tabular Format - Structured presentation for easy analysis

For questions about this report or TeDS functionality, please refer to the TeDS documentation.