Skip to content

feat(insurance): add cursor pagination tests for active policy listing#597

Merged
Baskarayelu merged 2 commits into
Remitwise-Org:mainfrom
Arowolokehinde:feature/insurance-policy-pagination
Apr 27, 2026
Merged

feat(insurance): add cursor pagination tests for active policy listing#597
Baskarayelu merged 2 commits into
Remitwise-Org:mainfrom
Arowolokehinde:feature/insurance-policy-pagination

Conversation

@Arowolokehinde
Copy link
Copy Markdown
Contributor

Add comprehensive unit tests in insurance/src/test.rs covering get_active_policies pagination semantics:

  • Empty results, single policy, cursor progression across pages
  • Inactive policy exclusion (partial and full deactivation)
  • Stable ID-ascending ordering guarantee
  • Cursor skip over inactive gaps
  • Cursor past last ID returns empty
  • next_cursor equals last returned ID on full pages, zero on final page
  • count field always matches items.len()
  • No duplicates across paginated responses
  • Limit clamping: zero -> DEFAULT_PAGE_LIMIT, above max -> MAX_PAGE_LIMIT
  • Per-owner isolation between different users
  • Core contract functions: create, get, deactivate, pay_premium, batch_pay_premiums, get_total_monthly_premium, set_pause_admin

Also fixes pre-existing build errors:

  • stress_tests.rs: correct create_policy call signature (CoverageType enum instead of String, add missing external_ref argument)
  • remittance_split/Cargo.toml: remove duplicate proptest key

Closes #519

Add comprehensive unit tests in insurance/src/test.rs covering
get_active_policies pagination semantics:

- Empty results, single policy, cursor progression across pages
- Inactive policy exclusion (partial and full deactivation)
- Stable ID-ascending ordering guarantee
- Cursor skip over inactive gaps
- Cursor past last ID returns empty
- next_cursor equals last returned ID on full pages, zero on final page
- count field always matches items.len()
- No duplicates across paginated responses
- Limit clamping: zero -> DEFAULT_PAGE_LIMIT, above max -> MAX_PAGE_LIMIT
- Per-owner isolation between different users
- Core contract functions: create, get, deactivate, pay_premium,
  batch_pay_premiums, get_total_monthly_premium, set_pause_admin

Also fixes pre-existing build errors:
- stress_tests.rs: correct create_policy call signature (CoverageType
  enum instead of String, add missing external_ref argument)
- remittance_split/Cargo.toml: remove duplicate proptest key
@Arowolokehinde Arowolokehinde force-pushed the feature/insurance-policy-pagination branch from cd6b5f1 to 2f9ab49 Compare April 27, 2026 09:35
@Baskarayelu Baskarayelu merged commit 111b021 into Remitwise-Org:main Apr 27, 2026
4 of 5 checks passed
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.

SC-066 Insurance: Implement/standardize get_active_policies(owner,cursor,limit) paging contract

2 participants