From 9f4739b3c78b8f81e7fb2a20381878298ee62797 Mon Sep 17 00:00:00 2001 From: siva kumar Date: Thu, 24 Aug 2017 15:25:39 +0530 Subject: [PATCH] [ADF-1456] timeAgo Pipe - Return invalid date when the input is empty. (#2240) * [ADF-1456] timeAgo Pipe - Return invalid date when the input is empty. * Return the empty string instead of an Invalid Date error when the given date is empty. * Added test cases. * [ADF-1456] timeAgo Pipe - Return invalid date when the input is empty. * Changed test case to handle modified time zone. --- .../src/pipes/time-ago.pipe.spec.ts | 42 +++++++++++++++++++ .../src/pipes/time-ago.pipe.ts | 9 ++-- 2 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 ng2-components/ng2-alfresco-core/src/pipes/time-ago.pipe.spec.ts diff --git a/ng2-components/ng2-alfresco-core/src/pipes/time-ago.pipe.spec.ts b/ng2-components/ng2-alfresco-core/src/pipes/time-ago.pipe.spec.ts new file mode 100644 index 0000000000..408ad750a5 --- /dev/null +++ b/ng2-components/ng2-alfresco-core/src/pipes/time-ago.pipe.spec.ts @@ -0,0 +1,42 @@ +/*! + * @license + * Copyright 2016 Alfresco Software, Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { TimeAgoPipe } from './time-ago.pipe'; + +describe('TimeAgoPipe', () => { + + let pipe: TimeAgoPipe; + + beforeEach(() => { + pipe = new TimeAgoPipe(); + }); + + it('should return time difference for a given date', () => { + let date = new Date(); + expect(pipe.transform(date)).toBe('a few seconds ago'); + }); + + it('should return exact date if given date is more than seven days ', () => { + let date = new Date('1990-11-03T15:25:42.749'); + expect(pipe.transform(date)).toBe('03/11/1990 15:25'); + }); + + it('should return empty string if given date is empty', () => { + expect(pipe.transform(null)).toBe(''); + expect(pipe.transform(undefined)).toBe(''); + }); +}); diff --git a/ng2-components/ng2-alfresco-core/src/pipes/time-ago.pipe.ts b/ng2-components/ng2-alfresco-core/src/pipes/time-ago.pipe.ts index 4f0df102ed..8b4fad14fb 100644 --- a/ng2-components/ng2-alfresco-core/src/pipes/time-ago.pipe.ts +++ b/ng2-components/ng2-alfresco-core/src/pipes/time-ago.pipe.ts @@ -25,8 +25,11 @@ import { Pipe, PipeTransform } from '@angular/core'; export class TimeAgoPipe implements PipeTransform { transform(value: Date) { - const then = moment(value); - const diff = moment().diff(then, 'days'); - return diff > 7 ? then.format('DD/MM/YYYY HH:mm') : then.fromNow(); + if (value !== null && value !== undefined ) { + const then = moment(value); + const diff = moment().diff(then, 'days'); + return diff > 7 ? then.format('DD/MM/YYYY HH:mm') : then.fromNow(); + } + return ''; } }