@@ -20,6 +20,8 @@ test('prettify milliseconds', t => {
2020 t . is ( prettyMilliseconds ( 1000 * 60 * 67 * 24 * 465 ) , '1y 154d 6h' ) ;
2121 t . is ( prettyMilliseconds ( 119_999 ) , '1m 59.9s' ) ;
2222 t . is ( prettyMilliseconds ( 120_000 ) , '2m' ) ;
23+ t . is ( prettyMilliseconds ( Number . MAX_SAFE_INTEGER ) , '285616y 151d 8h 59m 0.9s' ) ;
24+ t . is ( prettyMilliseconds ( Number . MAX_VALUE ) , '5700447535712568547083700427941645003808085225292279557374304680873482979681895890593452082909683139015032646149857723394516742095667500822861020052921074432454921864096959420926519725467567456931340929884912090099277441972878147362726992943838905852030073647982034630974035871792165820638724934142y 218d 8h 8m 48s' ) ;
2325} ) ;
2426
2527test ( 'have a compact option' , t => {
@@ -62,24 +64,24 @@ test('have a keepDecimalsOnWholeSeconds option', t => {
6264} ) ;
6365
6466test ( 'have a verbose option' , t => {
65- const fn = milliseconds => prettyMilliseconds ( milliseconds , { verbose : true } ) ;
67+ const format = milliseconds => prettyMilliseconds ( milliseconds , { verbose : true } ) ;
6668
67- t . is ( fn ( 0 ) , '0 milliseconds' ) ;
68- t . is ( fn ( 0.1 ) , '1 millisecond' ) ;
69- t . is ( fn ( 1 ) , '1 millisecond' ) ;
70- t . is ( fn ( 1000 ) , '1 second' ) ;
71- t . is ( fn ( 1000 + 400 ) , '1.4 seconds' ) ;
72- t . is ( fn ( ( 1000 * 2 ) + 400 ) , '2.4 seconds' ) ;
73- t . is ( fn ( 1000 * 5 ) , '5 seconds' ) ;
74- t . is ( fn ( 1000 * 55 ) , '55 seconds' ) ;
75- t . is ( fn ( 1000 * 67 ) , '1 minute 7 seconds' ) ;
76- t . is ( fn ( 1000 * 60 * 5 ) , '5 minutes' ) ;
77- t . is ( fn ( 1000 * 60 * 67 ) , '1 hour 7 minutes' ) ;
78- t . is ( fn ( 1000 * 60 * 60 * 12 ) , '12 hours' ) ;
79- t . is ( fn ( 1000 * 60 * 60 * 40 ) , '1 day 16 hours' ) ;
80- t . is ( fn ( 1000 * 60 * 60 * 999 ) , '41 days 15 hours' ) ;
81- t . is ( fn ( 1000 * 60 * 60 * 24 * 465 ) , '1 year 100 days' ) ;
82- t . is ( fn ( 1000 * 60 * 67 * 24 * 465 ) , '1 year 154 days 6 hours' ) ;
69+ t . is ( format ( 0 ) , '0 milliseconds' ) ;
70+ t . is ( format ( 0.1 ) , '1 millisecond' ) ;
71+ t . is ( format ( 1 ) , '1 millisecond' ) ;
72+ t . is ( format ( 1000 ) , '1 second' ) ;
73+ t . is ( format ( 1000 + 400 ) , '1.4 seconds' ) ;
74+ t . is ( format ( ( 1000 * 2 ) + 400 ) , '2.4 seconds' ) ;
75+ t . is ( format ( 1000 * 5 ) , '5 seconds' ) ;
76+ t . is ( format ( 1000 * 55 ) , '55 seconds' ) ;
77+ t . is ( format ( 1000 * 67 ) , '1 minute 7 seconds' ) ;
78+ t . is ( format ( 1000 * 60 * 5 ) , '5 minutes' ) ;
79+ t . is ( format ( 1000 * 60 * 67 ) , '1 hour 7 minutes' ) ;
80+ t . is ( format ( 1000 * 60 * 60 * 12 ) , '12 hours' ) ;
81+ t . is ( format ( 1000 * 60 * 60 * 40 ) , '1 day 16 hours' ) ;
82+ t . is ( format ( 1000 * 60 * 60 * 999 ) , '41 days 15 hours' ) ;
83+ t . is ( format ( 1000 * 60 * 60 * 24 * 465 ) , '1 year 100 days' ) ;
84+ t . is ( format ( 1000 * 60 * 67 * 24 * 465 ) , '1 year 154 days 6 hours' ) ;
8385} ) ;
8486
8587test ( 'have a separateMilliseconds option' , t => {
@@ -100,24 +102,24 @@ test('have a formatSubMilliseconds option', t => {
100102} ) ;
101103
102104test ( 'work with verbose and compact options' , t => {
103- const fn = milliseconds => prettyMilliseconds ( milliseconds , {
105+ const format = milliseconds => prettyMilliseconds ( milliseconds , {
104106 verbose : true ,
105107 compact : true ,
106108 } ) ;
107109
108- t . is ( fn ( 1000 ) , '1 second' ) ;
109- t . is ( fn ( 1000 + 400 ) , '1 second' ) ;
110- t . is ( fn ( ( 1000 * 2 ) + 400 ) , '2 seconds' ) ;
111- t . is ( fn ( 1000 * 5 ) , '5 seconds' ) ;
112- t . is ( fn ( 1000 * 55 ) , '55 seconds' ) ;
113- t . is ( fn ( 1000 * 67 ) , '1 minute' ) ;
114- t . is ( fn ( 1000 * 60 * 5 ) , '5 minutes' ) ;
115- t . is ( fn ( 1000 * 60 * 67 ) , '1 hour' ) ;
116- t . is ( fn ( 1000 * 60 * 60 * 12 ) , '12 hours' ) ;
117- t . is ( fn ( 1000 * 60 * 60 * 40 ) , '1 day' ) ;
118- t . is ( fn ( 1000 * 60 * 60 * 999 ) , '41 days' ) ;
119- t . is ( fn ( 1000 * 60 * 60 * 24 * 465 ) , '1 year' ) ;
120- t . is ( fn ( 1000 * 60 * 67 * 24 * 750 ) , '2 years' ) ;
110+ t . is ( format ( 1000 ) , '1 second' ) ;
111+ t . is ( format ( 1000 + 400 ) , '1 second' ) ;
112+ t . is ( format ( ( 1000 * 2 ) + 400 ) , '2 seconds' ) ;
113+ t . is ( format ( 1000 * 5 ) , '5 seconds' ) ;
114+ t . is ( format ( 1000 * 55 ) , '55 seconds' ) ;
115+ t . is ( format ( 1000 * 67 ) , '1 minute' ) ;
116+ t . is ( format ( 1000 * 60 * 5 ) , '5 minutes' ) ;
117+ t . is ( format ( 1000 * 60 * 67 ) , '1 hour' ) ;
118+ t . is ( format ( 1000 * 60 * 60 * 12 ) , '12 hours' ) ;
119+ t . is ( format ( 1000 * 60 * 60 * 40 ) , '1 day' ) ;
120+ t . is ( format ( 1000 * 60 * 60 * 999 ) , '41 days' ) ;
121+ t . is ( format ( 1000 * 60 * 60 * 24 * 465 ) , '1 year' ) ;
122+ t . is ( format ( 1000 * 60 * 67 * 24 * 750 ) , '2 years' ) ;
121123} ) ;
122124
123125test ( 'work with verbose and unitCount options' , t => {
@@ -130,29 +132,29 @@ test('work with verbose and unitCount options', t => {
130132} ) ;
131133
132134test ( 'work with verbose and secondsDecimalDigits options' , t => {
133- const fn = milliseconds => prettyMilliseconds ( milliseconds , {
135+ const format = milliseconds => prettyMilliseconds ( milliseconds , {
134136 verbose : true ,
135137 secondsDecimalDigits : 4 ,
136138 } ) ;
137139
138- t . is ( fn ( 1000 ) , '1 second' ) ;
139- t . is ( fn ( 1000 + 400 ) , '1.4000 seconds' ) ;
140- t . is ( fn ( ( 1000 * 2 ) + 400 ) , '2.4000 seconds' ) ;
141- t . is ( fn ( ( 1000 * 5 ) + 254 ) , '5.2540 seconds' ) ;
142- t . is ( fn ( 33_333 ) , '33.3330 seconds' ) ;
140+ t . is ( format ( 1000 ) , '1 second' ) ;
141+ t . is ( format ( 1000 + 400 ) , '1.4000 seconds' ) ;
142+ t . is ( format ( ( 1000 * 2 ) + 400 ) , '2.4000 seconds' ) ;
143+ t . is ( format ( ( 1000 * 5 ) + 254 ) , '5.2540 seconds' ) ;
144+ t . is ( format ( 33_333 ) , '33.3330 seconds' ) ;
143145} ) ;
144146
145147test ( 'work with verbose and millisecondsDecimalDigits options' , t => {
146- const fn = milliseconds => prettyMilliseconds ( milliseconds , {
148+ const format = milliseconds => prettyMilliseconds ( milliseconds , {
147149 verbose : true ,
148150 millisecondsDecimalDigits : 4 ,
149151 } ) ;
150152
151- t . is ( fn ( 1 ) , '1.0000 millisecond' ) ;
152- t . is ( fn ( 1 + 0.4 ) , '1.4000 milliseconds' ) ;
153- t . is ( fn ( ( 1 * 2 ) + 0.4 ) , '2.4000 milliseconds' ) ;
154- t . is ( fn ( ( 1 * 5 ) + 0.254 ) , '5.2540 milliseconds' ) ;
155- t . is ( fn ( 33.333 ) , '33.3330 milliseconds' ) ;
153+ t . is ( format ( 1 ) , '1.0000 millisecond' ) ;
154+ t . is ( format ( 1 + 0.4 ) , '1.4000 milliseconds' ) ;
155+ t . is ( format ( ( 1 * 2 ) + 0.4 ) , '2.4000 milliseconds' ) ;
156+ t . is ( format ( ( 1 * 5 ) + 0.254 ) , '5.2540 milliseconds' ) ;
157+ t . is ( format ( 33.333 ) , '33.3330 milliseconds' ) ;
156158} ) ;
157159
158160test ( 'work with verbose and formatSubMilliseconds options' , t => {
@@ -218,82 +220,91 @@ test('throw on invalid', t => {
218220} ) ;
219221
220222test ( 'properly rounds milliseconds with secondsDecimalDigits' , t => {
221- const fn = milliseconds =>
223+ const format = milliseconds =>
222224 prettyMilliseconds ( milliseconds , {
223225 verbose : true ,
224226 secondsDecimalDigits : 0 ,
225227 } ) ;
226- t . is ( fn ( 3 * 60 * 1000 ) , '3 minutes' ) ;
227- t . is ( fn ( ( 3 * 60 * 1000 ) - 1 ) , '2 minutes 59 seconds' ) ;
228- t . is ( fn ( 365 * 24 * 3600 * 1e3 ) , '1 year' ) ;
229- t . is ( fn ( ( 365 * 24 * 3600 * 1e3 ) - 1 ) , '364 days 23 hours 59 minutes 59 seconds' ) ;
230- t . is ( fn ( 24 * 3600 * 1e3 ) , '1 day' ) ;
231- t . is ( fn ( ( 24 * 3600 * 1e3 ) - 1 ) , '23 hours 59 minutes 59 seconds' ) ;
232- t . is ( fn ( 3600 * 1e3 ) , '1 hour' ) ;
233- t . is ( fn ( ( 3600 * 1e3 ) - 1 ) , '59 minutes 59 seconds' ) ;
234- t . is ( fn ( 2 * 3600 * 1e3 ) , '2 hours' ) ;
235- t . is ( fn ( ( 2 * 3600 * 1e3 ) - 1 ) , '1 hour 59 minutes 59 seconds' ) ;
228+ t . is ( format ( 3 * 60 * 1000 ) , '3 minutes' ) ;
229+ t . is ( format ( ( 3 * 60 * 1000 ) - 1 ) , '2 minutes 59 seconds' ) ;
230+ t . is ( format ( 365 * 24 * 3600 * 1e3 ) , '1 year' ) ;
231+ t . is ( format ( ( 365 * 24 * 3600 * 1e3 ) - 1 ) , '364 days 23 hours 59 minutes 59 seconds' ) ;
232+ t . is ( format ( 24 * 3600 * 1e3 ) , '1 day' ) ;
233+ t . is ( format ( ( 24 * 3600 * 1e3 ) - 1 ) , '23 hours 59 minutes 59 seconds' ) ;
234+ t . is ( format ( 3600 * 1e3 ) , '1 hour' ) ;
235+ t . is ( format ( ( 3600 * 1e3 ) - 1 ) , '59 minutes 59 seconds' ) ;
236+ t . is ( format ( 2 * 3600 * 1e3 ) , '2 hours' ) ;
237+ t . is ( format ( ( 2 * 3600 * 1e3 ) - 1 ) , '1 hour 59 minutes 59 seconds' ) ;
236238} ) ;
237239
238240test ( '`colonNotation` option' , t => {
241+ const format = ( milliseconds , options ) =>
242+ prettyMilliseconds ( milliseconds , {
243+ colonNotation : true ,
244+ ...options ,
245+ } ) ;
239246 // Default formats
240- t . is ( prettyMilliseconds ( 1000 , { colonNotation : true } ) , '0:01' ) ;
241- t . is ( prettyMilliseconds ( 1543 , { colonNotation : true } ) , '0:01.5' ) ;
242- t . is ( prettyMilliseconds ( 1000 * 60 , { colonNotation : true } ) , '1:00' ) ;
243- t . is ( prettyMilliseconds ( 1000 * 90 , { colonNotation : true } ) , '1:30' ) ;
244- t . is ( prettyMilliseconds ( 95_543 , { colonNotation : true } ) , '1:35.5' ) ;
245- t . is ( prettyMilliseconds ( ( 1000 * 60 * 10 ) + 543 , { colonNotation : true } ) , '10:00.5' ) ;
246- t . is ( prettyMilliseconds ( ( 1000 * 60 * 59 ) + ( 1000 * 59 ) + 543 , { colonNotation : true } ) , '59:59.5' ) ;
247- t . is ( prettyMilliseconds ( ( 1000 * 60 * 60 * 15 ) + ( 1000 * 60 * 59 ) + ( 1000 * 59 ) + 543 , { colonNotation : true } ) , '15:59:59.5' ) ;
247+ t . is ( format ( 1000 ) , '0:01' ) ;
248+ t . is ( format ( 1543 ) , '0:01.5' ) ;
249+ t . is ( format ( 1000 * 60 ) , '1:00' ) ;
250+ t . is ( format ( 1000 * 90 ) , '1:30' ) ;
251+ t . is ( format ( 95_543 ) , '1:35.5' ) ;
252+ t . is ( format ( ( 1000 * 60 * 10 ) + 543 ) , '10:00.5' ) ;
253+ t . is ( format ( ( 1000 * 60 * 59 ) + ( 1000 * 59 ) + 543 ) , '59:59.5' ) ;
254+ t . is ( format ( ( 1000 * 60 * 60 * 15 ) + ( 1000 * 60 * 59 ) + ( 1000 * 59 ) + 543 ) , '15:59:59.5' ) ;
248255
249256 // Together with `secondsDecimalDigits`
250- t . is ( prettyMilliseconds ( 999 , { colonNotation : true , secondsDecimalDigits : 0 } ) , '0:00' ) ;
251- t . is ( prettyMilliseconds ( 999 , { colonNotation : true , secondsDecimalDigits : 1 } ) , '0:00.9' ) ;
252- t . is ( prettyMilliseconds ( 999 , { colonNotation : true , secondsDecimalDigits : 2 } ) , '0:00.99' ) ;
253- t . is ( prettyMilliseconds ( 999 , { colonNotation : true , secondsDecimalDigits : 3 } ) , '0:00.999' ) ;
254- t . is ( prettyMilliseconds ( 1000 , { colonNotation : true , secondsDecimalDigits : 0 } ) , '0:01' ) ;
255- t . is ( prettyMilliseconds ( 1000 , { colonNotation : true , secondsDecimalDigits : 1 } ) , '0:01' ) ;
256- t . is ( prettyMilliseconds ( 1000 , { colonNotation : true , secondsDecimalDigits : 2 } ) , '0:01' ) ;
257- t . is ( prettyMilliseconds ( 1000 , { colonNotation : true , secondsDecimalDigits : 3 } ) , '0:01' ) ;
258- t . is ( prettyMilliseconds ( 1001 , { colonNotation : true , secondsDecimalDigits : 0 } ) , '0:01' ) ;
259- t . is ( prettyMilliseconds ( 1001 , { colonNotation : true , secondsDecimalDigits : 1 } ) , '0:01' ) ;
260- t . is ( prettyMilliseconds ( 1001 , { colonNotation : true , secondsDecimalDigits : 2 } ) , '0:01' ) ;
261- t . is ( prettyMilliseconds ( 1001 , { colonNotation : true , secondsDecimalDigits : 3 } ) , '0:01.001' ) ;
262- t . is ( prettyMilliseconds ( 1543 , { colonNotation : true , secondsDecimalDigits : 0 } ) , '0:01' ) ;
263- t . is ( prettyMilliseconds ( 1543 , { colonNotation : true , secondsDecimalDigits : 1 } ) , '0:01.5' ) ;
264- t . is ( prettyMilliseconds ( 1543 , { colonNotation : true , secondsDecimalDigits : 2 } ) , '0:01.54' ) ;
265- t . is ( prettyMilliseconds ( 1543 , { colonNotation : true , secondsDecimalDigits : 3 } ) , '0:01.543' ) ;
266- t . is ( prettyMilliseconds ( 95_543 , { colonNotation : true , secondsDecimalDigits : 0 } ) , '1:35' ) ;
267- t . is ( prettyMilliseconds ( 95_543 , { colonNotation : true , secondsDecimalDigits : 1 } ) , '1:35.5' ) ;
268- t . is ( prettyMilliseconds ( 95_543 , { colonNotation : true , secondsDecimalDigits : 2 } ) , '1:35.54' ) ;
269- t . is ( prettyMilliseconds ( 95_543 , { colonNotation : true , secondsDecimalDigits : 3 } ) , '1:35.543' ) ;
270- t . is ( prettyMilliseconds ( ( 1000 * 60 * 10 ) + 543 , { colonNotation : true , secondsDecimalDigits : 3 } ) , '10:00.543' ) ;
271- t . is ( prettyMilliseconds ( ( 1000 * 60 * 60 * 15 ) + ( 1000 * 60 * 59 ) + ( 1000 * 59 ) + 543 , { colonNotation : true , secondsDecimalDigits : 3 } ) , '15:59:59.543' ) ;
257+ t . is ( format ( 999 , { secondsDecimalDigits : 0 } ) , '0:00' ) ;
258+ t . is ( format ( 999 , { secondsDecimalDigits : 1 } ) , '0:00.9' ) ;
259+ t . is ( format ( 999 , { secondsDecimalDigits : 2 } ) , '0:00.99' ) ;
260+ t . is ( format ( 999 , { secondsDecimalDigits : 3 } ) , '0:00.999' ) ;
261+ t . is ( format ( 1000 , { secondsDecimalDigits : 0 } ) , '0:01' ) ;
262+ t . is ( format ( 1000 , { secondsDecimalDigits : 1 } ) , '0:01' ) ;
263+ t . is ( format ( 1000 , { secondsDecimalDigits : 2 } ) , '0:01' ) ;
264+ t . is ( format ( 1000 , { secondsDecimalDigits : 3 } ) , '0:01' ) ;
265+ t . is ( format ( 1001 , { secondsDecimalDigits : 0 } ) , '0:01' ) ;
266+ t . is ( format ( 1001 , { secondsDecimalDigits : 1 } ) , '0:01' ) ;
267+ t . is ( format ( 1001 , { secondsDecimalDigits : 2 } ) , '0:01' ) ;
268+ t . is ( format ( 1001 , { secondsDecimalDigits : 3 } ) , '0:01.001' ) ;
269+ t . is ( format ( 1543 , { secondsDecimalDigits : 0 } ) , '0:01' ) ;
270+ t . is ( format ( 1543 , { secondsDecimalDigits : 1 } ) , '0:01.5' ) ;
271+ t . is ( format ( 1543 , { secondsDecimalDigits : 2 } ) , '0:01.54' ) ;
272+ t . is ( format ( 1543 , { secondsDecimalDigits : 3 } ) , '0:01.543' ) ;
273+ t . is ( format ( 95_543 , { secondsDecimalDigits : 0 } ) , '1:35' ) ;
274+ t . is ( format ( 95_543 , { secondsDecimalDigits : 1 } ) , '1:35.5' ) ;
275+ t . is ( format ( 95_543 , { secondsDecimalDigits : 2 } ) , '1:35.54' ) ;
276+ t . is ( format ( 95_543 , { secondsDecimalDigits : 3 } ) , '1:35.543' ) ;
277+ t . is ( format ( ( 1000 * 60 * 10 ) + 543 , { secondsDecimalDigits : 3 } ) , '10:00.543' ) ;
278+ t . is ( format ( ( 1000 * 60 * 60 * 15 ) + ( 1000 * 60 * 59 ) + ( 1000 * 59 ) + 543 , { secondsDecimalDigits : 3 } ) , '15:59:59.543' ) ;
272279
273280 // Together with `keepDecimalsOnWholeSeconds`
274- t . is ( prettyMilliseconds ( 999 , { colonNotation : true , secondsDecimalDigits : 0 , keepDecimalsOnWholeSeconds : true } ) , '0:00' ) ;
275- t . is ( prettyMilliseconds ( 999 , { colonNotation : true , secondsDecimalDigits : 1 , keepDecimalsOnWholeSeconds : true } ) , '0:00.9' ) ;
276- t . is ( prettyMilliseconds ( 999 , { colonNotation : true , secondsDecimalDigits : 2 , keepDecimalsOnWholeSeconds : true } ) , '0:00.99' ) ;
277- t . is ( prettyMilliseconds ( 999 , { colonNotation : true , secondsDecimalDigits : 3 , keepDecimalsOnWholeSeconds : true } ) , '0:00.999' ) ;
278- t . is ( prettyMilliseconds ( 1000 , { colonNotation : true , keepDecimalsOnWholeSeconds : true } ) , '0:01.0' ) ;
279- t . is ( prettyMilliseconds ( 1000 , { colonNotation : true , secondsDecimalDigits : 0 , keepDecimalsOnWholeSeconds : true } ) , '0:01' ) ;
280- t . is ( prettyMilliseconds ( 1000 , { colonNotation : true , secondsDecimalDigits : 1 , keepDecimalsOnWholeSeconds : true } ) , '0:01.0' ) ;
281- t . is ( prettyMilliseconds ( 1000 , { colonNotation : true , secondsDecimalDigits : 3 , keepDecimalsOnWholeSeconds : true } ) , '0:01.000' ) ;
282- t . is ( prettyMilliseconds ( 1000 * 90 , { colonNotation : true , keepDecimalsOnWholeSeconds : true } ) , '1:30.0' ) ;
283- t . is ( prettyMilliseconds ( 1000 * 90 , { colonNotation : true , secondsDecimalDigits : 3 , keepDecimalsOnWholeSeconds : true } ) , '1:30.000' ) ;
284- t . is ( prettyMilliseconds ( 1000 * 60 * 10 , { colonNotation : true , secondsDecimalDigits : 3 , keepDecimalsOnWholeSeconds : true } ) , '10:00.000' ) ;
281+ t . is ( format ( 999 , { secondsDecimalDigits : 0 , keepDecimalsOnWholeSeconds : true } ) , '0:00' ) ;
282+ t . is ( format ( 999 , { secondsDecimalDigits : 1 , keepDecimalsOnWholeSeconds : true } ) , '0:00.9' ) ;
283+ t . is ( format ( 999 , { secondsDecimalDigits : 2 , keepDecimalsOnWholeSeconds : true } ) , '0:00.99' ) ;
284+ t . is ( format ( 999 , { secondsDecimalDigits : 3 , keepDecimalsOnWholeSeconds : true } ) , '0:00.999' ) ;
285+ t . is ( format ( 1000 , { keepDecimalsOnWholeSeconds : true } ) , '0:01.0' ) ;
286+ t . is ( format ( 1000 , { secondsDecimalDigits : 0 , keepDecimalsOnWholeSeconds : true } ) , '0:01' ) ;
287+ t . is ( format ( 1000 , { secondsDecimalDigits : 1 , keepDecimalsOnWholeSeconds : true } ) , '0:01.0' ) ;
288+ t . is ( format ( 1000 , { secondsDecimalDigits : 3 , keepDecimalsOnWholeSeconds : true } ) , '0:01.000' ) ;
289+ t . is ( format ( 1000 * 90 , { keepDecimalsOnWholeSeconds : true } ) , '1:30.0' ) ;
290+ t . is ( format ( 1000 * 90 , { secondsDecimalDigits : 3 , keepDecimalsOnWholeSeconds : true } ) , '1:30.000' ) ;
291+ t . is ( format ( 1000 * 60 * 10 , { secondsDecimalDigits : 3 , keepDecimalsOnWholeSeconds : true } ) , '10:00.000' ) ;
285292
286293 // Together with `unitCount`
287- t . is ( prettyMilliseconds ( 1000 * 90 , { colonNotation : true , secondsDecimalDigits : 0 , unitCount : 1 } ) , '1' ) ;
288- t . is ( prettyMilliseconds ( 1000 * 90 , { colonNotation : true , secondsDecimalDigits : 0 , unitCount : 2 } ) , '1:30' ) ;
289- t . is ( prettyMilliseconds ( 1000 * 60 * 90 , { colonNotation : true , secondsDecimalDigits : 0 , unitCount : 3 } ) , '1:30:00' ) ;
290- t . is ( prettyMilliseconds ( 95_543 , { colonNotation : true , secondsDecimalDigits : 1 , unitCount : 1 } ) , '1' ) ;
291- t . is ( prettyMilliseconds ( 95_543 , { colonNotation : true , secondsDecimalDigits : 1 , unitCount : 2 } ) , '1:35.5' ) ;
292- t . is ( prettyMilliseconds ( 95_543 + ( 1000 * 60 * 60 ) , { colonNotation : true , secondsDecimalDigits : 1 , unitCount : 3 } ) , '1:01:35.5' ) ;
294+ t . is ( format ( 1000 * 90 , { secondsDecimalDigits : 0 , unitCount : 1 } ) , '1' ) ;
295+ t . is ( format ( 1000 * 90 , { secondsDecimalDigits : 0 , unitCount : 2 } ) , '1:30' ) ;
296+ t . is ( format ( 1000 * 60 * 90 , { secondsDecimalDigits : 0 , unitCount : 3 } ) , '1:30:00' ) ;
297+ t . is ( format ( 95_543 , { secondsDecimalDigits : 1 , unitCount : 1 } ) , '1' ) ;
298+ t . is ( format ( 95_543 , { secondsDecimalDigits : 1 , unitCount : 2 } ) , '1:35.5' ) ;
299+ t . is ( format ( 95_543 + ( 1000 * 60 * 60 ) , { secondsDecimalDigits : 1 , unitCount : 3 } ) , '1:01:35.5' ) ;
293300
294301 // Make sure incompatible options fall back to `colonNotation`
295- t . is ( prettyMilliseconds ( ( 1000 * 60 * 59 ) + ( 1000 * 59 ) + 543 , { colonNotation : true , formatSubMilliseconds : true } ) , '59:59.5' ) ;
296- t . is ( prettyMilliseconds ( ( 1000 * 60 * 59 ) + ( 1000 * 59 ) + 543 , { colonNotation : true , separateMilliseconds : true } ) , '59:59.5' ) ;
297- t . is ( prettyMilliseconds ( ( 1000 * 60 * 59 ) + ( 1000 * 59 ) + 543 , { colonNotation : true , verbose : true } ) , '59:59.5' ) ;
298- t . is ( prettyMilliseconds ( ( 1000 * 60 * 59 ) + ( 1000 * 59 ) + 543 , { colonNotation : true , compact : true } ) , '59:59.5' ) ;
302+ t . is ( format ( ( 1000 * 60 * 59 ) + ( 1000 * 59 ) + 543 , { formatSubMilliseconds : true } ) , '59:59.5' ) ;
303+ t . is ( format ( ( 1000 * 60 * 59 ) + ( 1000 * 59 ) + 543 , { separateMilliseconds : true } ) , '59:59.5' ) ;
304+ t . is ( format ( ( 1000 * 60 * 59 ) + ( 1000 * 59 ) + 543 , { verbose : true } ) , '59:59.5' ) ;
305+ t . is ( format ( ( 1000 * 60 * 59 ) + ( 1000 * 59 ) + 543 , { compact : true } ) , '59:59.5' ) ;
306+
307+ // Big numbers
308+ t . is ( format ( Number . MAX_SAFE_INTEGER ) , '285616:151:08:59:00.9' ) ;
309+ t . is ( format ( Number . MAX_VALUE ) , '5700447535712568547083700427941645003808085225292279557374304680873482979681895890593452082909683139015032646149857723394516742095667500822861020052921074432454921864096959420926519725467567456931340929884912090099277441972878147362726992943838905852030073647982034630974035871792165820638724934142:218:08:08:48' ) ;
299310} ) ;
0 commit comments