Testing

Testing Overview

Commands

GoalCommand
Build contractsmake build
Solidity testsmake test or pnpm test
Verbose testsmake test-v
Invariantsmake test-invariant
Deep invariantsmake test-invariant-deep
Docs buildpnpm docs:build
Frontend buildpnpm app:build

Solidity coverage

AreaFiles
Cap table setupCapTable.t.sol, CapTableFactory.sol, Issuer.t.sol
Access controlAccessControl.t.sol, Wallet.t.sol
Stock lifecycleStockIssuance.t.sol, StockTransfer.t.sol, StockCancellation.t.sol, StockRepurchase.t.sol, StockReissuance.t.sol, StockRetraction.t.sol, StockAcceptance.t.sol
Setup recordsStakeholder.t.sol, StockClass.t.sol, Minting.t.sol
Share adjustmentsAdjustment.t.sol
Invariantstest/invariants/CapTableInvariants.t.sol

Invariants

PropertyPurpose
Issuer shares_issued <= shares_authorizedPrevent issuer over-issuance.
Class shares_issued <= shares_authorizedPrevent class over-issuance.
Stakeholder and stock class counts stay consistent.Catch index drift.
Active position tracking stays consistent.Catch stale securities and missing deletes.

Before a PR

ChangeMinimum check
Docspnpm docs:build
Solidity logicmake test
Share accounting or lifecyclemake test && make test-invariant
Frontendpnpm app:build