Files
prefect-go/pkg/client/INTEGRATION_TESTS.md
Gregor Schulte 43b4910a63 Initial commit
2026-02-02 08:41:48 +01:00

70 lines
1.8 KiB
Markdown

# Integration Tests
Integration tests require a running Prefect server instance.
## Running Integration Tests
### 1. Start a Prefect Server
```bash
prefect server start
```
This will start a Prefect server on `http://localhost:4200`.
### 2. Run the Integration Tests
```bash
go test -v -tags=integration ./pkg/client/
```
Or using make:
```bash
make test-integration
```
### 3. Custom Server URL
If your Prefect server is running on a different URL, set the `PREFECT_API_URL` environment variable:
```bash
export PREFECT_API_URL="http://your-server:4200/api"
go test -v -tags=integration ./pkg/client/
```
## Test Coverage
The integration tests cover:
- **Flow Lifecycle**: Create, get, update, list, and delete flows
- **Flow Run Lifecycle**: Create, get, set state, and delete flow runs
- **Deployment Lifecycle**: Create, get, pause, resume, and delete deployments
- **Pagination**: Manual pagination and iterator-based pagination
- **Variables**: Create, get, update, and delete variables
- **Admin Endpoints**: Health check and version
- **Flow Run Monitoring**: Wait for flow run completion
## Notes
- Integration tests use the `integration` build tag to separate them from unit tests
- Each test creates and cleans up its own resources
- Tests use unique UUIDs in names to avoid conflicts
- Some tests may take several seconds to complete (e.g., flow run wait tests)
## Troubleshooting
### Connection Refused
If you see "connection refused" errors, make sure:
1. Prefect server is running (`prefect server start`)
2. The server is accessible at the configured URL
3. No firewall is blocking the connection
### Test Timeout
If tests timeout:
1. Increase the test timeout: `go test -timeout 5m -tags=integration ./pkg/client/`
2. Check server logs for errors
3. Ensure the server is not under heavy load