[Glitch] Fix short numbers rounding up instead of truncating (#37899)
Port 75ef5bfd2d to glitch-soc
Signed-off-by: Claire <claire.github-309c@sitedethib.com>
This commit is contained in:
@@ -0,0 +1,80 @@
|
|||||||
|
import { IntlProvider } from 'react-intl';
|
||||||
|
|
||||||
|
import { render, screen } from '@testing-library/react';
|
||||||
|
|
||||||
|
import { ShortNumber } from '../short_number';
|
||||||
|
|
||||||
|
function renderShortNumber(value: number) {
|
||||||
|
return render(
|
||||||
|
<IntlProvider locale='en'>
|
||||||
|
<ShortNumber value={value} />
|
||||||
|
</IntlProvider>,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
describe('ShortNumber Component', () => {
|
||||||
|
it('does not abbreviate numbers under 1000', () => {
|
||||||
|
renderShortNumber(999);
|
||||||
|
expect(screen.getByText('999')).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('formats thousands correctly for 1000', () => {
|
||||||
|
renderShortNumber(1000);
|
||||||
|
expect(screen.getByText('1K')).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('truncates decimals for 1051', () => {
|
||||||
|
renderShortNumber(1051);
|
||||||
|
expect(screen.getByText('1K')).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('truncates decimals for 2999', () => {
|
||||||
|
renderShortNumber(2999);
|
||||||
|
expect(screen.getByText('2.9K')).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('truncates decimals for 9999', () => {
|
||||||
|
renderShortNumber(9999);
|
||||||
|
expect(screen.getByText('9.9K')).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('truncates decimals for 10501', () => {
|
||||||
|
renderShortNumber(10501);
|
||||||
|
expect(screen.getByText('10K')).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('truncates decimals for 11000', () => {
|
||||||
|
renderShortNumber(11000);
|
||||||
|
expect(screen.getByText('11K')).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('truncates decimals for 99999', () => {
|
||||||
|
renderShortNumber(99999);
|
||||||
|
expect(screen.getByText('99K')).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('truncates decimals for 100501', () => {
|
||||||
|
renderShortNumber(100501);
|
||||||
|
expect(screen.getByText('100K')).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('truncates decimals for 101000', () => {
|
||||||
|
renderShortNumber(101000);
|
||||||
|
expect(screen.getByText('101K')).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('truncates decimals for 999999', () => {
|
||||||
|
renderShortNumber(999999);
|
||||||
|
expect(screen.getByText('999K')).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('truncates decimals for 2999999', () => {
|
||||||
|
renderShortNumber(2999999);
|
||||||
|
expect(screen.getByText('2.9M')).toBeDefined();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('truncates decimals for 9999999', () => {
|
||||||
|
renderShortNumber(9999999);
|
||||||
|
expect(screen.getByText('9.9M')).toBeDefined();
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -51,6 +51,7 @@ const ShortNumberCounter: React.FC<ShortNumberCounterProps> = ({ value }) => {
|
|||||||
<FormattedNumber
|
<FormattedNumber
|
||||||
value={rawNumber ?? 0}
|
value={rawNumber ?? 0}
|
||||||
maximumFractionDigits={maxFractionDigits}
|
maximumFractionDigits={maxFractionDigits}
|
||||||
|
roundingMode='trunc'
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user