Skip to content

Commit

Permalink
Added Tests for date utils
Browse files Browse the repository at this point in the history
Signed-off-by: Prathamesh Mutkure <pmutkure009@gmail.com>
  • Loading branch information
prathamesh-mutkure committed Sep 18, 2023
1 parent 2a71e75 commit 9765064
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 2 deletions.
39 changes: 39 additions & 0 deletions packages/jaeger-ui/src/utils/date.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@ import {
ONE_MINUTE,
ONE_HOUR,
ONE_DAY,
formatDate,
formatTime,
formatDatetime,
formatMillisecondTime,
formatSecondTime,
} from './date.tsx';

describe('formatDuration', () => {
Expand Down Expand Up @@ -184,6 +189,10 @@ describe('convertToTimeUnit', () => {
const input = 172800000000;
expect(convertToTimeUnit(input, 'days')).toBe(2);
});
it('convert duration to days', () => {
const input = 172800000000;
expect(convertToTimeUnit(input, 'days')).toBe(2);
});
});

describe('formatRelativeDate', () => {
Expand Down Expand Up @@ -218,3 +227,33 @@ describe('formatRelativeDate', () => {
expect(formatRelativeDate(input)).toBe(output);
});
});

describe('formatTime', () => {
const dateStr = 'January 1 2000, 10:00:00.000';
const dateInMilliseconds = Date.parse(dateStr);

it('formateDate formats microseconds to date', () => {
const dateInMicroseconds = dateInMilliseconds * ONE_MILLISECOND;
expect(formatDate(dateInMicroseconds)).toBe('2000-01-01');
});

it('formatTime formats microseconds to time', () => {
const dateInMicroseconds = dateInMilliseconds * ONE_MILLISECOND;
expect(formatTime(dateInMicroseconds)).toBe('10:00');
});

it('formatDateTime formats microseconds to standard date format', () => {
const dateInMicroseconds = dateInMilliseconds * ONE_MILLISECOND;
expect(formatDatetime(dateInMicroseconds)).toBe('January 1 2000, 10:00:00.000');
});

it('formatMillisecondTime formats microseconds to milliseconds', () => {
const durationInMicroseconds = 1000 * ONE_MILLISECOND;
expect(formatMillisecondTime(durationInMicroseconds)).toBe('1000ms');
});

it('formatSecondTime formats microseconds to seconds', () => {
const durationInMicroseconds = 1000 * ONE_MILLISECOND;
expect(formatSecondTime(durationInMicroseconds)).toBe('1s');
});
});
4 changes: 2 additions & 2 deletions packages/jaeger-ui/src/utils/date.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.

import dayjs from 'dayjs';
import dayjs, { ConfigType } from 'dayjs';
import _dropWhile from 'lodash/dropWhile';
import _round from 'lodash/round';
import _duration, { DurationUnitType } from 'dayjs/plugin/duration';
Expand Down Expand Up @@ -142,7 +142,7 @@ export function formatDuration(duration: number): string {
return secondaryValue === 0 ? primaryUnitString : `${primaryUnitString} ${secondaryUnitString}`;
}

export function formatRelativeDate(value: any, fullMonthName = false): string {
export function formatRelativeDate(value: ConfigType, fullMonthName = false): string {
const m = dayjs.isDayjs(value) ? value : dayjs(value);

const monthFormat = fullMonthName ? 'MMMM' : 'MMM';
Expand Down

0 comments on commit 9765064

Please sign in to comment.