Test Cases Overview
Our test suite comprises comprehensive test cases covering all aspects of the KagePool system. This interactive guide helps you understand our testing approach and browse through specific test cases.
Test Categories
Test Coverage Summary
| Category | Test Count | Coverage % | Gas Analysis |
|---|---|---|---|
| Access Control | 11 | 100% | 220,238 avg |
| Early Withdrawal | 3 | 100% | 169,008 avg |
| Edge Cases | 7 | 100% | 216,438 avg |
| Emergency Functions | 6 | 100% | 114,918 avg |
| Integration Tests | 3 | 100% | 250,638 avg |
Interactive Test Browser
Browse by Category
Click on a category to see detailed test cases and their results
Access Control Tests
Pool Management Authorization (3 tests)
describe("Pool Management Authorization", () => {
it("should allow owner to add new pool")
it("should prevent non-owner from adding pool")
it("should validate pool parameters")
});
Gas Usage: 133,610 (avg)
Critical Settings Protection (4 tests)
describe("Critical Settings Protection", () => {
it("should enforce owner-only fee changes")
it("should validate fee ranges")
it("should prevent unauthorized treasury changes")
it("should emit events on critical changes")
});
Gas Usage: 48,375 (avg)
Early Withdrawal Tests
Penalty and Rewards Handling (3 tests)
describe("Early Withdrawal Mechanics", () => {
it("should calculate penalties correctly")
it("should adjust rewards appropriately")
it("should prevent duplicate withdrawals")
});
Gas Usage: 169,008 (avg)
Gas Analysis Results
Operation Costs Breakdown
Performance Metrics
- Average Gas Used: 220,238
- Maximum Gas Used: 250,638
- Minimum Gas Used: 216,438
- Standard Deviation: 10,748
Running Tests Locally
# Run all tests
yarn test
# Run specific category
yarn test test/access-control.spec.ts
# Run with gas reporting
REPORT_GAS=true yarn test
Test Documentation
Each test file is thoroughly documented with:
- Test purpose and scope
- Input parameters and expected outcomes
- Gas usage analysis
- Edge cases covered
Example test documentation:
/**
* @title Early Withdrawal Test Suite
* @notice Tests early withdrawal mechanics and penalty calculations
* @dev Covers penalty calculation edge cases and reward adjustments
*
* Test Cases:
* 1. Basic early withdrawal with penalty
* 2. Multiple withdrawals attempt
* 3. Reward calculation after early withdrawal
*/
describe("Early Withdrawal", () => {
// Test implementations...
});
Contributing New Tests
- Follow the existing test structure
- Document all test cases thoroughly
- Include gas analysis
- Add to this documentation
For detailed contribution guidelines, see our Contributing Guide.
Test Environment
- Framework: Hardhat
- Network: Local test network
- Block Gas Limit: 6,000,000
- Test Coverage: 100%
Continuous Integration
Our GitHub Actions workflow automatically runs all tests on:
- Pull requests
- Main branch commits
- Release tags
View the latest test results in our GitHub Actions dashboard.