blob: 89dcc2d5016f7391ce9cbb3b55414499c163a83b [file] [log] [blame]
import { HumanDateSk } from './human-date-sk';
import './index';
import { setUpElementUnderTest } from '../test_util';
import { expect } from 'chai';
import { $$ } from 'common-sk/modules/dom';
describe('human-date-sk', () => {
const newInstance = setUpElementUnderTest<HumanDateSk>('human-date-sk');
let element: HumanDateSk;
let nowImpl = () => new Date('September 22, 2020 10:21:52').getTime();
const localeImpl = global;
beforeEach(() => {
[nowImpl, Date.now] = [Date.now, nowImpl];
});
afterEach(() => {
[nowImpl, Date.now] = [Date.now, nowImpl];
});
describe('human-date-sk', () => {
it('displays number of seconds', () => {
element = newInstance((el: HumanDateSk) => {
el.date = 1600784512;
el.seconds = true;
});
// Make sure everything works but the hour, easier than mocking Date.toLocale*.
expect((<HTMLElement>$$('span', element)).innerText)
.to.contain('9/22/2020')
.and.to.contain(':21:52 ');
});
it('displays number of millis', () => {
element = newInstance((el: HumanDateSk) => {
el.date = 1600784512000;
});
// Make sure everything works but the hour, easier than mocking Date.toLocale*.
expect((<HTMLElement>$$('span', element)).innerText)
.to.contain('9/22/2020')
.and.to.contain(':21:52 ');
});
it('displays string', () => {
element = newInstance((el: HumanDateSk) => {
el.date = 'October 31, 2020 23:59:59';
});
expect($$('span', element)).to.have.property('innerText', '10/31/2020, 11:59:59 PM');
});
it('displays diff', () => {
element = newInstance((el: HumanDateSk) => {
el.date = 'September 22, 2020 04:21:52';
el.diff = true;
});
expect($$('span', element)).to.have.property('innerText', '6h');
});
});
});