# Integration Test

This directory contains an end-to-end test for publishing to the registry.

## What the Test Covers

1. **Publisher Tool**: Tests the `publisher` CLI that publishes metadata to the registry
2. **Registry API**: Validates the `/v0/publish` and `/v0/servers/{id}` endpoints work correctly
3. **Example Validation**: Ensures all example JSON in `docs/server-json/examples.md` is valid and can be published
4. **Data Consistency**: Verifies published data matches what's retrieved from the registry

## Test Flow

1. **Build**: Build `publisher` and `registry`
   - build `registry` with the `noauth` tag so that it accepts fake tokens
2. **Start Services**: Launch registry and MongoDB using Docker Compose with test configuration
3. **Publish Examples**: Extract JSON examples from documentation and run `publisher` to publish each one
4. **Validate Responses**: GET each published server from the registry and compare it to the example JSON
5. **Cleanup**: Stop Docker containers and remove temporary files

## How to Run

### Prerequisites

- Docker and Docker Compose
- Go 1.23
- Make sure you're in the repository root directory

### Run the Tests

```sh
./tests/integration/run.sh
```
