End-to-end publish test using examples from docs (#199)
This commit is contained in:
parent
774a0df592
commit
4f5e85b510
1 changed files with 1041 additions and 919 deletions
33
tests/integration/README.md
Normal file
33
tests/integration/README.md
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
# 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
|
||||
```
|
||||
Loading…
Reference in a new issue