- CCIP/trustless bridge contracts, GRU tokens, DEX/PMM tests, reserve vault. - Token-aggregation service routes, planner, chain config, relay env templates. - Config snapshots and multi-chain deployment markdown updates. - gitignore services/btc-intake/dist/ (tsc output); do not track dist. Run forge build && forge test before deploy (large solc graph). Made-with: Cursor
69 lines
1.7 KiB
Markdown
69 lines
1.7 KiB
Markdown
# API Tests
|
|
|
|
This directory contains reference contract tests and opt-in integration smoke tests for the eMoney control-plane API surface.
|
|
|
|
The default repo validation pass does not start an external REST or GraphQL control-plane service, so the integration suites are intentionally opt-in.
|
|
|
|
## Test Structure
|
|
|
|
```
|
|
test/emoney/api/
|
|
├── integration/ # Optional smoke tests against an external API service
|
|
│ ├── rest-api.test.ts
|
|
│ └── graphql.test.ts
|
|
└── contract/ # Contract validation tests
|
|
├── openapi-validation.test.ts
|
|
└── event-schema-validation.test.ts
|
|
```
|
|
|
|
Reference API specs used by the contract tests live under `test/api/packages/`.
|
|
|
|
## Running Tests
|
|
|
|
```bash
|
|
# Run all tests
|
|
pnpm test
|
|
|
|
# Run only integration tests
|
|
pnpm run test:integration
|
|
|
|
# Run only contract tests
|
|
pnpm run test:contract
|
|
|
|
# Watch mode
|
|
pnpm run test:watch
|
|
```
|
|
|
|
## Test Types
|
|
|
|
### Integration Tests
|
|
|
|
Test actual API endpoints against running services:
|
|
- REST API operations
|
|
- GraphQL queries and mutations
|
|
- End-to-end flows
|
|
|
|
Enable them explicitly:
|
|
|
|
```bash
|
|
export RUN_EMONEY_API_INTEGRATION=1
|
|
export RUN_EMONEY_GRAPHQL_INTEGRATION=1
|
|
```
|
|
|
|
### Contract Tests
|
|
|
|
Validate that implementations conform to specifications:
|
|
- OpenAPI schema validation
|
|
- AsyncAPI event schema validation
|
|
- Request/response format validation
|
|
|
|
## Mock Servers
|
|
|
|
Mock server tooling is not checked into this monorepo checkout. If you have an external mock or implementation, point the integration tests at it with environment variables.
|
|
|
|
```bash
|
|
export API_URL=http://localhost:3000
|
|
export GRAPHQL_URL=http://localhost:4000/graphql
|
|
export ACCESS_TOKEN=your-test-token
|
|
```
|