# 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`, checks Coreflow's generated corestore volume mount specs, and verifies Coreflow backup/restore orchestration for volume, database, and object-storage snapshots. - `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`.