Skip to content

[Quality] Add stateful invariant tests across lending lifecycle operations #1904

Description

@1nonlypiece

Problem

Unit tests cover individual paths, but sequences of deposit, borrow, repay, withdraw, accrual, and liquidation can violate global invariants.

This issue requires a meaningful production implementation. Typo-only, documentation-only, formatting-only, dependency-only, or cosmetic changes do not satisfy the scope.

Objective

Build a bounded stateful/property test model for the lending workspace.

Scope

Define generated actors/assets, model balances and debt, shrinking, deterministic seeds, and CI runtime limits.

Acceptance criteria

  • Generated sequences preserve debt, collateral, reserve, and authorization invariants.
  • Invalid operations fail without partial mutation.
  • Failures provide a reproducible minimized seed and sequence.
  • The suite runs reliably in CI and complements existing targeted tests.
  • Existing CI/CD checks remain green.
  • The PR explains the design, tradeoffs, test evidence, and any remaining limitations.
  • The PR references this issue with Closes #{issue-number} or Fixes #{issue-number}.

Implementation notes

Implement only the stated behavior; keep unrelated refactors out of the PR.

Non-goals

  • Do not remove tests merely to make CI pass.
  • Do not introduce secrets, private keys, credentials, or mainnet-only values.
  • Do not change unrelated APIs, UI surfaces, contract behavior, or deployment configuration.

Contributor application

Before starting, comment with relevant experience, a 1–4 bullet implementation approach, and an estimate for opening the first draft PR. Wait for maintainer assignment before coding. Only the assigned contributor is eligible for reward consideration.

Submission requirements

  • Use PR title format [#<issue-number>] <short summary>.
  • Check off each completed acceptance criterion.
  • Include focused automated tests for success, failure, authorization, and boundary behavior where applicable.
  • Include the validation commands and results in the PR description.
  • Address maintainer review feedback before merge.

GrantFox reward consideration is based on the original scope, implementation quality, tests, security review, CI/CD results, review feedback, and follow-up stability; completion or merge alone is not a guarantee.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

GRANTFOX OSSGrantFox open-source campaignMAYBE REWARDEDEligible for GrantFox rewardThird CampaignThird GrantFox campaignpriority:highMeaningful implementation work with high difficulty

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions