Verification: Arda API Proxy
Verification Approach
Section titled “Verification Approach”All tests use mocked fetch — no live API calls. Each proxy gets a test file verifying construction, standard CRUD, time coordinate handling, module-specific operations, and error handling. Coverage is enforced via Istanbul at 80% lines and 80% branches.
Traceability Matrix
Section titled “Traceability Matrix”| Requirement | Test | Status |
|---|---|---|
| REQ-CORE-001 | tests/shared/http-client.test.ts — verifies HttpClient builds correct base URL from ProxyConfig and basePath | pending |
| REQ-CORE-002 | tests/shared/http-client.test.ts — verifies X-Author and Content-Type headers are set on every request | pending |
| REQ-CORE-003 | tests/shared/http-client.test.ts — verifies effectiveasof/recordedasof query params appended when provided, omitted when absent | pending |
| REQ-CORE-004 | tests/shared/http-client.test.ts — verifies ArdaApiError thrown with correct status, responseMessage, and details on non-OK response | pending |
| REQ-CORE-005 | CI check — package.json has no dependencies field (only devDependencies) | pending |
| REQ-CORE-006 | CI check — no import of @modelcontextprotocol/sdk anywhere in src/ | pending |
| REQ-CORE-007 | tests/shared/http-client.test.ts — types are used in test assertions; compilation verifies export surface | pending |
| REQ-PROXY-001 | Each proxy test file — constructs proxy with ProxyConfig, no shared state between instances | pending |
| REQ-PROXY-002 | Structural — proxy classes hold HttpClient reference, do not extend a base class; verified by code review | pending |
| REQ-PROXY-003 | Each proxy test file — verifies all 7 standard methods call correct HTTP method, path, and body | pending |
| REQ-SYS-001 | tests/system/tenant.test.ts — standard CRUD against /v1/tenant | pending |
| REQ-SYS-002 | tests/system/user-account.test.ts — standard CRUD against /v1/user-account | pending |
| REQ-SYS-003 | tests/system/agent-for.test.ts — standard CRUD against /v1/agent-for | pending |
| REQ-SYS-004 | tests/system/invitation.test.ts — standard CRUD against /v1/invitation | pending |
| REQ-REF-001 | tests/reference/business-affiliate.test.ts — standard CRUD against /v1/business-affiliate | pending |
| REQ-REF-002 | tests/reference/business-affiliate.test.ts — getWithDetails, getRoles, createRole, updateRole | pending |
| REQ-REF-003 | tests/reference/item.test.ts — standard CRUD against /v1/item | pending |
| REQ-REF-004 | tests/reference/item.test.ts — draft, supply, lookup, print, and CSV upload operations | pending |
| REQ-RES-001 | tests/resources/kanban.test.ts — standard CRUD against /v1/kanban | pending |
| REQ-RES-002 | tests/resources/kanban.test.ts — details, summaries, notes, events, print | pending |
| REQ-RES-003 | tests/resources/kanban.test.ts — postEvent accepts only valid event names; TypeScript compilation rejects invalid values | pending |
| REQ-PROC-001 | tests/procurement/order.test.ts — standard CRUD against /v1/order | pending |
| REQ-PROC-002 | tests/procurement/order.test.ts — getFull, createFromItems, addItemsToOrder, createFromKanbanCards, addKanbanCardsToOrder | pending |
| REQ-PROC-003 | tests/procurement/order.test.ts — addLine, updateLine, deleteLine, moveLine | pending |
| REQ-PROC-004 | tests/procurement/order.test.ts — submit, accept, receive, archive, annotate, annotateLine | pending |
| REQ-PKG-001 | Build verification — npm run build succeeds; each export path resolves to a valid .js and .d.ts file | pending |
| REQ-PKG-002 | Code review — types compared against OpenAPI specs and Kotlin source during implementation | pending |
| REQ-PKG-003 | CI check — npm run typecheck passes with strict: true and verbatimModuleSyntax | pending |
| REQ-PKG-004 | CI workflow — publish.yml runs npm publish to npm.pkg.github.com on merge to main | pending |
| REQ-PKG-005 | CI workflow — ci.yml runs format, typecheck, lint, and test:coverage with 80%/80% thresholds | pending |
Copyright: © Arda Systems 2025-2026, All rights reserved