2019-03-20 16:51:09 +13:00
|
|
|
import React from 'react';
|
2022-09-29 10:38:26 +13:00
|
|
|
import { render } from '../test-wrapper';
|
2019-03-20 16:51:09 +13:00
|
|
|
import Dater from '../../src/js/components/Dater';
|
|
|
|
|
|
2022-09-29 10:38:26 +13:00
|
|
|
jest.mock('react-redux', () => ({
|
|
|
|
|
useSelector: jest.fn(),
|
|
|
|
|
}));
|
2019-03-20 16:51:09 +13:00
|
|
|
|
2022-09-29 10:38:26 +13:00
|
|
|
describe('<Dater />', () => {
|
2019-03-22 09:02:00 +13:00
|
|
|
it('should render null when given invalid props', () => {
|
|
|
|
|
|
|
|
|
|
// Invalid type
|
2022-09-29 10:38:26 +13:00
|
|
|
const dom_1 = render(<Dater type="invalid-type" data={100000} />);
|
|
|
|
|
expect(dom_1.toJSON()).toEqual(null);
|
2019-03-22 09:02:00 +13:00
|
|
|
|
|
|
|
|
// Missing type
|
2022-09-29 10:38:26 +13:00
|
|
|
const dom_2 = render(<Dater data={100000} />);
|
|
|
|
|
expect(dom_2.toJSON()).toEqual(null);
|
2019-03-22 09:02:00 +13:00
|
|
|
|
|
|
|
|
// Missing data
|
2022-09-29 10:38:26 +13:00
|
|
|
const dom_4 = render(<Dater type="ago" />);
|
|
|
|
|
expect(dom_4.toJSON()).toEqual(null);
|
2019-03-22 09:02:00 +13:00
|
|
|
});
|
|
|
|
|
|
2019-03-20 16:51:09 +13:00
|
|
|
it('should handle milliseconds', () => {
|
2022-09-29 10:38:26 +13:00
|
|
|
const dom = render(<Dater type="length" data={30000} />);
|
|
|
|
|
expect(dom.toJSON()).toEqual('0:30');
|
2019-03-20 16:51:09 +13:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should handle date (yyyy-mm-dd)', () => {
|
2022-09-29 10:38:26 +13:00
|
|
|
const dom = render(<Dater type="date" data="2015-10-23" />);
|
|
|
|
|
expect(dom.toJSON()).toEqual("23/10/2015");
|
2019-03-20 16:51:09 +13:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should handle date (mm/dd/yyyy)', () => {
|
2022-09-29 10:38:26 +13:00
|
|
|
const dom = render(<Dater type="date" data="10/23/2015" />);
|
|
|
|
|
expect(dom.toJSON()).toEqual("23/10/2015");
|
2019-03-20 16:51:09 +13:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should handle ago (days)', () => {
|
|
|
|
|
var date = new Date();
|
|
|
|
|
date.setDate( date.getDate() - 3 );
|
|
|
|
|
|
2022-09-29 10:38:26 +13:00
|
|
|
const dom = render(<Dater type="ago" data={date} />);
|
|
|
|
|
expect(dom.toJSON().join('')).toEqual('3 days');
|
2019-03-20 16:51:09 +13:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should handle ago (hours)', () => {
|
|
|
|
|
var date = new Date();
|
|
|
|
|
date.setTime( date.getTime() - 3 * 3600000 );
|
|
|
|
|
|
2022-09-29 10:38:26 +13:00
|
|
|
const dom = render(<Dater type="ago" data={date} />);
|
|
|
|
|
expect(dom.toJSON().join('')).toEqual('3 hours');
|
2019-03-20 16:51:09 +13:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should handle ago (minutes)', () => {
|
|
|
|
|
var date = new Date();
|
|
|
|
|
date.setTime( date.getTime() - 3 * 60000 );
|
|
|
|
|
|
2022-09-29 10:38:26 +13:00
|
|
|
const dom = render(<Dater type="ago" data={date} />);
|
|
|
|
|
expect(dom.toJSON().join('')).toEqual('3 minutes');
|
2019-03-20 16:51:09 +13:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('should handle total time', () => {
|
2022-09-29 10:38:26 +13:00
|
|
|
const data = [
|
2019-03-22 09:02:00 +13:00
|
|
|
{
|
|
|
|
|
duration: 5 * 60000
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
duration: 5 * 60000
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
duration: 5 * 60000
|
|
|
|
|
}
|
|
|
|
|
];
|
2022-09-29 10:38:26 +13:00
|
|
|
const dom = render(<Dater type="total-time" data={data} />);
|
|
|
|
|
expect(dom.toJSON().join('')).toEqual('15 mins');
|
2019-03-20 16:51:09 +13:00
|
|
|
});
|
|
|
|
|
});
|