table: fixes #14484. Renders epoch string if date column style

This commit is contained in:
Daniel Lee 2018-12-15 23:40:17 +01:00
parent 217596b4a1
commit 0ebd5e0c80
2 changed files with 22 additions and 0 deletions

View File

@ -91,7 +91,14 @@ export class TableRenderer {
if (_.isArray(v)) {
v = v[0];
}
// if is an epoch (numeric string and len > 12)
if (_.isString(v) && !isNaN(v) && v.length > 12) {
v = parseInt(v, 10);
}
let date = moment(v);
if (this.isUtc) {
date = date.utc();
}

View File

@ -186,6 +186,21 @@ describe('when rendering table', () => {
expect(html).toBe('<td>2014-01-01T06:06:06Z</td>');
});
it('time column with epoch as string should be formatted', () => {
const html = renderer.renderCell(0, 0, '1388556366666');
expect(html).toBe('<td>2014-01-01T06:06:06Z</td>');
});
it('time column with RFC2822 date as string should be formatted', () => {
const html = renderer.renderCell(0, 0, 'Sat, 01 Dec 2018 01:00:00 GMT');
expect(html).toBe('<td>2018-12-01T01:00:00Z</td>');
});
it('time column with ISO date as string should be formatted', () => {
const html = renderer.renderCell(0, 0, '2018-12-01T01:00:00Z');
expect(html).toBe('<td>2018-12-01T01:00:00Z</td>');
});
it('undefined time column should be rendered as -', () => {
const html = renderer.renderCell(0, 0, undefined);
expect(html).toBe('<td>-</td>');