Files
testing/readme.md
T

43 lines
1.9 KiB
Markdown

# serve.zone Testing
Whole-system integration scenarios for serve.zone components.
Fast package tests stay in each component repo. This repo is for stateful cross-component tests that need Docker, Swarm, Cloudly, Coreflow, registry behavior, and later Coretraffic routing.
## Scenarios
- `registry-deploy-on-push`: starts Cloudly with isolated Mongo/S3 helpers, connects Coreflow as a cluster, pushes a Docker image to Cloudly's built-in registry, verifies Cloudly metadata updates, verifies Coreflow creates the workload service, verifies Coretraffic HTTPS routing, then pushes the same tag again and verifies service recreation and routing through the new digest.
- `corestore-volume-driver`: starts Corestore with isolated ports and a temporary Docker plugin socket, verifies the VolumeDriver protocol, snapshots/restores a managed volume through `containerarchive`, and checks Coreflow's generated corestore volume mount specs.
- `onebox-basic-lifecycle`: starts Onebox in dev mode, verifies core services, deploys a workload, checks HTTP plus HTTPS routing through ingress, removes the workload, and verifies cleanup.
## Host Run
Requires Docker with Swarm already active.
```bash
pnpm bootstrap:components
pnpm test
```
## Vagrant Run
Requires Vagrant plus a provider on the host. The Vagrant VM installs Docker, Node.js, pnpm, initializes Docker Swarm, and mounts the full `serve.zone` directory at `/serve.zone`.
```bash
pnpm vagrant:up
pnpm vagrant:test
pnpm vagrant:destroy
```
Provider options:
- VirtualBox: install `vagrant` and `virtualbox` on the host.
- libvirt: install `vagrant`, `libvirt`, and the `vagrant-libvirt` plugin on the host.
Useful environment variables:
- `SERVEZONE_ROOT`: host path mounted as `/serve.zone`.
- `SERVEZONE_VAGRANT_BOX`: defaults to `bento/ubuntu-24.04`.
- `SERVEZONE_VAGRANT_CPUS`: defaults to `4`.
- `SERVEZONE_VAGRANT_MEMORY`: defaults to `8192`.