1+ import { describe , expect , it } from '@jest/globals' ;
2+ import { parseNumber } from '@/utils/parseNumber' ;
3+
4+ describe ( "parseNumber" , ( ) => {
5+ it ( "input 0" , ( ) => {
6+ expect ( parseNumber ( 0 ) ) . toBe ( "0" ) ;
7+ } ) ;
8+
9+ describe ( "input million" , ( ) => {
10+ it ( "formats million to m" , ( ) => {
11+ expect ( parseNumber ( 1000000 ) ) . toBe ( "1.00M" ) ;
12+ expect ( parseNumber ( 1500000 ) ) . toBe ( "1.50M" ) ;
13+ expect ( parseNumber ( 20000000 ) ) . toBe ( "20.00M" ) ;
14+ } ) ;
15+
16+ it ( "handels rounding" , ( ) => {
17+ expect ( parseNumber ( 1234500 ) ) . toBe ( "1.23M" ) ;
18+ expect ( parseNumber ( 1235500 ) ) . toBe ( "1.24M" ) ;
19+ } ) ;
20+ } ) ;
21+
22+ describe ( "input thousand" , ( ) => {
23+ it ( "formats thousand to k" , ( ) => {
24+ expect ( parseNumber ( 1000 ) ) . toBe ( "1.00K" ) ;
25+ expect ( parseNumber ( 1500 ) ) . toBe ( "1.50K" ) ;
26+ expect ( parseNumber ( 999000 ) ) . toBe ( "999.00K" ) ;
27+ } ) ;
28+
29+ it ( "handels rounding" , ( ) => {
30+ expect ( parseNumber ( 1234 ) ) . toBe ( "1.23K" ) ;
31+ expect ( parseNumber ( 1236 ) ) . toBe ( "1.24K" ) ;
32+ } ) ;
33+ } ) ;
34+
35+ describe ( "under thousand" , ( ) => {
36+ it ( "formats" , ( ) => {
37+ expect ( parseNumber ( 1 ) ) . toBe ( "1.00" ) ;
38+ expect ( parseNumber ( 100 ) ) . toBe ( "100.00" ) ;
39+ expect ( parseNumber ( 999 ) ) . toBe ( "999.00" ) ;
40+ } ) ;
41+
42+ it ( "handles rounding" , ( ) => {
43+ expect ( parseNumber ( 10.5 ) ) . toBe ( "10.50" ) ;
44+ expect ( parseNumber ( 10.567 ) ) . toBe ( "10.57" ) ;
45+ } ) ;
46+ } ) ;
47+
48+ describe ( "edge cases" , ( ) => {
49+ it ( "handles negative numbers" , ( ) => {
50+ expect ( parseNumber ( - 5000 ) ) . toBe ( "-5,000.00" ) ;
51+ expect ( parseNumber ( - 123.456 ) ) . toBe ( "-123.46" ) ;
52+ } ) ;
53+ } ) ;
54+ } ) ;
0 commit comments