import  {  expect  }  from  'chai' ;  
						 
					
						
							
								
							 
							
								
									
										 
								
							 
							
								 
							
							
								import  {  formatAbbreviatedExpireDoubleTimer  }  from  '../../../../../util/i18n/formatting/expirationTimer' ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								describe ( 'formatAbbreviatedExpireDoubleTimer' ,  ( )  = >  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it ( '<= 0 returns 0s' ,  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 0 ) ) . to . be . deep . eq ( [ '0s' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( - 1 ) ) . to . be . deep . eq ( [ '0s' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( - 3600 ) ) . to . be . deep . eq ( [ '0s' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( Number . MIN_SAFE_INTEGER ) ) . to . be . deep . eq ( [ '0s' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it ( 'single units' ,  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 1 ) ) . to . be . deep . eq ( [ '1s' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 60  -  1 ) ) . to . be . deep . eq ( [ '59s' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 60 ) ) . to . be . deep . eq ( [ '1m' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 60  *  2 ) ) . to . be . deep . eq ( [ '2m' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  -  60 ) ) . to . be . deep . eq ( [ '59m' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600 ) ) . to . be . deep . eq ( [ '1h' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  -  3600 ) ) . to . be . deep . eq ( [ '23h' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24 ) ) . to . be . deep . eq ( [ '1d' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  *  7  -  3600  *  24 ) ) . to . be . deep . eq ( [ '6d' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  *  7 ) ) . to . be . deep . eq ( [ '1w' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  *  7  *  2 ) ) . to . be . deep . eq ( [ '2w' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  *  7  *  4 ) ) . to . be . deep . eq ( [ '4w' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it ( 'double units' ,  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 60  +  1 ) ) . to . be . deep . eq ( [ '1m' ,  '1s' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 60  +  59 ) ) . to . be . deep . eq ( [ '1m' ,  '59s' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 60  +  60  +  59 ) ) . to . be . deep . eq ( [ '2m' ,  '59s' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  -  60  +  1 ) ) . to . be . deep . eq ( [ '59m' ,  '1s' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  -  1 ) ) . to . be . deep . eq ( [ '59m' ,  '59s' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  +  1 ) ) . to . be . deep . eq ( [ '1h' ,  '1s' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  +  59 ) ) . to . be . deep . eq ( [ '1h' ,  '59s' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  +  60  +  1 ) ) . to . be . deep . eq ( [ '1h' ,  '1m' ] ) ;  // even if we have an extra 1s to display','we crop at 2 units display
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  +  1 ) ) . to . be . deep . eq ( [ '1h' ,  '1s' ] ) ;  // we don't have minutes to display so we show h+s
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  23  +  1 ) ) . to . be . deep . eq ( [ '23h' ,  '1s' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  23  +  60  +  1 ) ) . to . be . deep . eq ( [ '23h' ,  '1m' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  +  1 ) ) . to . be . deep . eq ( [ '1d' ,  '1s' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  +  60 ) ) . to . be . deep . eq ( [ '1d' ,  '1m' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  +  60  +  1 ) ) . to . be . deep . eq ( [ '1d' ,  '1m' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  +  60  +  59 ) ) . to . be . deep . eq ( [ '1d' ,  '1m' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  +  60  *  2 ) ) . to . be . deep . eq ( [ '1d' ,  '2m' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  +  60  *  2 ) ) . to . be . deep . eq ( [ '1d' ,  '2m' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  +  60  *  59 ) ) . to . be . deep . eq ( [ '1d' ,  '59m' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  +  60  *  59  +  6 ) ) . to . be . deep . eq ( [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      '1d' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      '59m' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  *  7  +  6 ) ) . to . be . deep . eq ( [ '1w' ,  '6s' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  *  7  +  60 ) ) . to . be . deep . eq ( [ '1w' ,  '1m' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  *  7  +  60  *  59 ) ) . to . be . deep . eq ( [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      '1w' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      '59m' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  *  7  +  3600 ) ) . to . be . deep . eq ( [ '1w' ,  '1h' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  *  7  +  3600  +  1 ) ) . to . be . deep . eq ( [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      '1w' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      '1h' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  *  7  +  3600  *  24  *  6 ) ) . to . be . deep . eq ( [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      '1w' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      '6d' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  *  14  +  1 ) ) . to . be . deep . eq ( [ '2w' ,  '1s' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  *  14  +  59 ) ) . to . be . deep . eq ( [ '2w' ,  '59s' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  *  14  +  60 ) ) . to . be . deep . eq ( [ '2w' ,  '1m' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  *  14  +  60  +  1 ) ) . to . be . deep . eq ( [ '2w' ,  '1m' ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  *  14  +  60  *  59 ) ) . to . be . deep . eq ( [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      '2w' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      '59m' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  *  14  +  3600  *  24 ) ) . to . be . deep . eq ( [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      '2w' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      '1d' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( formatAbbreviatedExpireDoubleTimer ( 3600  *  24  *  14  +  3600  *  24  *  6 ) ) . to . be . deep . eq ( [ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      '2w' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      '6d' , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ] ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  it ( 'throws if invalid' ,  ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      formatAbbreviatedExpireDoubleTimer ( Number . MAX_VALUE ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ) . to . throw ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    expect ( ( )  = >  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								      formatAbbreviatedExpireDoubleTimer ( 3600  *  24  *  7  *  4  +  1 ) ;  // 1s more than 4 weeks
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } ) . to . throw ( ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  } ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} ) ;