Skip to content

test(utils): add unit tests for portfolio allocation utilities (#1974) - #1999

Draft
s6pa1rta3n-lab wants to merge 1 commit into
Commitlabs-Org:masterfrom
s6pa1rta3n-lab:fix-issue-1974
Draft

s6pa1rta3n-lab wants to merge 1 commit into
Commitlabs-Org:masterfrom
s6pa1rta3n-lab:fix-issue-1974

Conversation

@s6pa1rta3n-lab

Copy link
Copy Markdown

Summary

  • Adds src/utils/portfolioAllocation.ts exporting pure functions aggregateByRiskProfile, aggregateByAsset, and formatAllocationValue.
  • Adds unit test suite in src/utils/tests/portfolioAllocation.test.ts covering grouping/summing behavior, unknown risk profile fallback color (#666), palette cycling past length, and non-numeric amount handling.

Changes

  • src/utils/portfolioAllocation.ts: Implements pure allocation aggregation functions with TypeScript contracts and JSDoc documentation.
  • src/utils/tests/portfolioAllocation.test.ts: Vitest test suite asserting:
    • aggregateByRiskProfile: Groups commitments by risk profile, sums parsed amounts, assigns configured risk colors, defaults undefined types to Unknown with fallback color #666, assigns fallback color #666 for unrecognized profile names, treats non-numeric amounts as zero, and handles empty input.
    • aggregateByAsset: Groups commitments by asset, sums amounts, defaults missing asset names to Unknown, treats non-numeric amounts as zero, cycles asset palette colors past length 10, and handles empty input.
    • formatAllocationValue: Formats numbers with locale separators up to two decimal places, handles integers, and rounds decimal values.

Verification

  • pnpm exec vitest run src/utils/tests/portfolioAllocation.test.ts passes (13/13 tests).
  • pnpm exec vitest --coverage run src/utils/tests/portfolioAllocation.test.ts reports 100% statement, branch, function, and line coverage on src/utils/portfolioAllocation.ts.
  • pnpm exec prettier --check src/utils/portfolioAllocation.ts src/utils/tests/portfolioAllocation.test.ts passes.
  • pnpm exec eslint src/utils/portfolioAllocation.ts src/utils/tests/portfolioAllocation.test.ts passes with zero errors.

Closes #1974

Payout Routing

  • EVM (Base/Arbitrum/Polygon/ETH): 0xF46C9F6d70C50BF81ef3588AB523a90a594a2F89
  • Stellar: GCL6OXAMLD75BMTINA6EMRUDWK5THQUSHMYNLSNBCJAPZJHNYJTUNIBC

@vercel

vercel Bot commented Sep 28, 2026

Copy link
Copy Markdown

@s6pa1rta3n-lab is attempting to deploy a commit to the 1nonly's projects Team on Vercel.

A member of the Team first needs to authorize it.

This branch has not been deployed

No deployments
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.

Add unit tests for src/utils/portfolioAllocation.ts

1 participant