Summary
Add contract tests to ensure the dashboard's data models stay compatible with @guildpass/integration-client responses.
Current Behaviour
The dashboard view models and integration client types can drift independently. When live mode is wired in, mismatches may only appear at runtime.
Expected Behaviour
CI should catch breaking changes between integration client response types and dashboard mapping logic.
Suggested Implementation
Create fixture responses for membership lookup, wallet verification, error responses, and missing data. Test that the dashboard mapping layer converts them into the expected member, guild, activity, and verification view models.
Files or Areas Likely Affected
apps/dashboard/lib/data/
apps/dashboard/test/fixtures/
packages/integration-client/src/types.ts
packages/integration-client/src/client.ts
apps/dashboard/package.json
Acceptance Criteria
Additional Notes
Assumption: the integration client is the intended live boundary for at least some dashboard data.
Summary
Add contract tests to ensure the dashboard's data models stay compatible with
@guildpass/integration-clientresponses.Current Behaviour
The dashboard view models and integration client types can drift independently. When live mode is wired in, mismatches may only appear at runtime.
Expected Behaviour
CI should catch breaking changes between integration client response types and dashboard mapping logic.
Suggested Implementation
Create fixture responses for membership lookup, wallet verification, error responses, and missing data. Test that the dashboard mapping layer converts them into the expected member, guild, activity, and verification view models.
Files or Areas Likely Affected
apps/dashboard/lib/data/apps/dashboard/test/fixtures/packages/integration-client/src/types.tspackages/integration-client/src/client.tsapps/dashboard/package.jsonAcceptance Criteria
Additional Notes
Assumption: the integration client is the intended live boundary for at least some dashboard data.