- Add Foundry project configuration (foundry.toml, foundry.lock) - Add Solidity contracts (TokenFactory138, BridgeVault138, ComplianceRegistry, etc.) - Add API definitions (OpenAPI, GraphQL, gRPC, AsyncAPI) - Add comprehensive test suite (unit, integration, fuzz, invariants) - Add API services (REST, GraphQL, orchestrator, packet service) - Add documentation (ISO20022 mapping, runbooks, adapter guides) - Add development tools (RBC tool, Swagger UI, mock server) - Update OpenZeppelin submodules to v5.0.0
1.4 KiB
1.4 KiB
API Tests
This directory contains integration and contract tests for the eMoney Token Factory API.
Test Structure
test/api/
├── integration/ # Integration tests
│ ├── rest-api.test.ts
│ └── graphql.test.ts
└── contract/ # Contract validation tests
├── openapi-validation.test.ts
└── event-schema-validation.test.ts
Running Tests
# 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
Contract Tests
Validate that implementations conform to specifications:
- OpenAPI schema validation
- AsyncAPI event schema validation
- Request/response format validation
Mock Servers
Use mock servers for testing without requiring full infrastructure:
# Start all mock servers
cd api/tools/mock-server
pnpm run start:all
# Or start individually
pnpm run start:rest # REST API mock (port 4010)
pnpm run start:graphql # GraphQL mock (port 4020)
Test Environment
Set environment variables:
export API_URL=http://localhost:3000
export GRAPHQL_URL=http://localhost:4000/graphql
export ACCESS_TOKEN=your-test-token