# A2UI Specification Tests

This directory contains test cases and a runner for validating the A2UI JSON schemas.

## Prerequisites

- **Python 3**
- **Yarn**: The tests use `yarn` to run `ajv`.

## Installation (Optional)

To speed up test execution, install the dependencies locally:

```bash
cd specification/v1_0/test
yarn install
```

## Running Tests

Run the Python test script from the repository root or the test directory:

```bash
python3 specification/v1_0/test/run_tests.py
```

The script will:

1. Load all schemas from `specification/v1_0/json`.
2. Execute all test suites defined in `specification/v1_0/test/cases/*.json`.
3. Report pass/fail status for each test case.

## Adding Tests

Create a new JSON file in `cases/` (e.g., `cases/my_feature.json`):

```json
{
  "schema": "server_to_client.json",
  "tests": [
    {
      "description": "Description of the test case",
      "valid": true,
      "data": {
        "updateComponents": { ... }
      }
    },
    {
      "description": "Should fail validation",
      "valid": false,
      "data": { ... }
    }
  ]
}
```
