Skip to content

Conversation

@lempira
Copy link
Contributor

@lempira lempira commented Nov 22, 2025

This PR adds indexer client polytests using zod schemas generated from model metadata for runtime validation.

Implemented a utility (zod-utils.ts) that converts ModelMetadata to zod schemas for runtime validation, supporting all metadata types including passthrough types for type aliases. This same utility is also implemented in the algod polytests PR. I just had to make and update to handle passthrough types.

Added 20 polytest files covering all indexer endpoints (accounts, applications, assets, transactions, blocks, block headers). Each test combines compile-time type checking with runtime validation using zod schemas to catch schema mismatches early in development. Tests use TestNet object constants for validation against live data. This is the PR for the indexer endpoints.

The health endpoint test is skipped due to a schema mismatch where the API returns additional fields (migration-required, read-only-mode) not defined in HealthCheckDataMeta. This highlights the value of runtime validation in identifying discrepancies between generated models and actual API responses.

PatrickDinh and others added 30 commits November 5, 2025 15:28
the zod utilities were taken from the algod polytest test branch. They will be merged later
- Add lookupAccountAppLocalStates test for app opt-ins
- Add lookupAccountCreatedApplications test
- Add lookupAccountCreatedAssets test
- Add lookupAccountTransactions test with pagination
- Add passthrough to meta model to zod transformation
- Search for assets
- Lookup asset by ID
- Lookup asset balances
- Lookup asset transactions
- Search for transactions
- Lookup transaction by TXID
- Lookup block by round number
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants