From f2f01c8be70616e70e41835338b362f9b50c9d5a Mon Sep 17 00:00:00 2001 From: Matthew Russell Date: Wed, 1 Nov 2023 12:07:14 -0700 Subject: [PATCH] fix: dont assume that you always want 2 dps --- .../fees-breakdown/fees-breakdown.spec.tsx | 36 +++++++++++++++++++ libs/utils/src/lib/format/number.ts | 2 +- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 libs/deal-ticket/src/components/fees-breakdown/fees-breakdown.spec.tsx diff --git a/libs/deal-ticket/src/components/fees-breakdown/fees-breakdown.spec.tsx b/libs/deal-ticket/src/components/fees-breakdown/fees-breakdown.spec.tsx new file mode 100644 index 000000000..9d99789c5 --- /dev/null +++ b/libs/deal-ticket/src/components/fees-breakdown/fees-breakdown.spec.tsx @@ -0,0 +1,36 @@ +import { render, screen } from '@testing-library/react'; +import { FeesBreakdown } from './fees-breakdown'; + +describe('FeesBreakdown', () => { + it('formats fee factors correctly', () => { + const feeFactors = { + makerFee: '0.00005', + infrastructureFee: '0.001', + liquidityFee: '0.5', + }; + const fees = { + makerFee: '100', + infrastructureFee: '100', + liquidityFee: '100', + }; + const props = { + totalFeeAmount: '100', + fees, + feeFactors, + symbol: 'USD', + decimals: 2, + referralDiscountFactor: '0.01', + volumeDiscountFactor: '0.01', + }; + render(); + expect(screen.getByText('Maker fee').nextElementSibling).toHaveTextContent( + '0.005%' + ); + expect( + screen.getByText('Infrastructure fee').nextElementSibling + ).toHaveTextContent('0.1%'); + expect( + screen.getByText('Liquidity fee').nextElementSibling + ).toHaveTextContent('50%'); + }); +}); diff --git a/libs/utils/src/lib/format/number.ts b/libs/utils/src/lib/format/number.ts index 783dfaf5c..6f721ccbd 100644 --- a/libs/utils/src/lib/format/number.ts +++ b/libs/utils/src/lib/format/number.ts @@ -158,7 +158,7 @@ export const addDecimalsFixedFormatNumber = ( export const formatNumberPercentage = (value: BigNumber, decimals?: number) => { const decimalPlaces = - typeof decimals === 'undefined' ? Math.max(value.dp() || 0, 2) : decimals; + typeof decimals === 'undefined' ? value.dp() || 0 : decimals; return `${formatNumber(value, decimalPlaces)}%`; };