fix: use date-fns for abbreviated expire timer
parent
be23ef0e92
commit
cd3dccea02
@ -0,0 +1,89 @@
|
||||
import { expect } from 'chai';
|
||||
import { formatAbbreviatedExpireDoubleTimer } from '../../../../../util/i18n';
|
||||
|
||||
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();
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue