From cbc2650f304898fc0c15979770f388a3ce159514 Mon Sep 17 00:00:00 2001 From: Koen Vlaswinkel Date: Fri, 16 Sep 2022 13:17:35 +0200 Subject: [PATCH] Add tests for date and number formatting functions --- extensions/ql-vscode/src/pure/number.ts | 2 +- extensions/ql-vscode/test/pure-tests/date.test.ts | 11 +++++++++++ extensions/ql-vscode/test/pure-tests/number.test.ts | 12 ++++++++++++ extensions/ql-vscode/test/pure-tests/time.test.ts | 11 +++++++---- 4 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 extensions/ql-vscode/test/pure-tests/date.test.ts create mode 100644 extensions/ql-vscode/test/pure-tests/number.test.ts diff --git a/extensions/ql-vscode/src/pure/number.ts b/extensions/ql-vscode/src/pure/number.ts index d56b4663e..088ff308c 100644 --- a/extensions/ql-vscode/src/pure/number.ts +++ b/extensions/ql-vscode/src/pure/number.ts @@ -2,7 +2,7 @@ * Contains an assortment of helper constants and functions for working with numbers. */ -const numberFormatter = new Intl.NumberFormat('en'); +const numberFormatter = new Intl.NumberFormat('en-US'); export function formatDecimal(value: number): string { return numberFormatter.format(value); diff --git a/extensions/ql-vscode/test/pure-tests/date.test.ts b/extensions/ql-vscode/test/pure-tests/date.test.ts new file mode 100644 index 000000000..2d00f2536 --- /dev/null +++ b/extensions/ql-vscode/test/pure-tests/date.test.ts @@ -0,0 +1,11 @@ +import { expect } from 'chai'; +import 'mocha'; + +import { formatDate } from '../../src/pure/date'; + +describe('Date', () => { + it('should return a formatted date', () => { + expect(formatDate(new Date(1663326904000))).to.eq('Sep 16, 1:15 PM'); + expect(formatDate(new Date(1631783704000))).to.eq('Sep 16, 2021, 11:15 AM'); + }); +}); diff --git a/extensions/ql-vscode/test/pure-tests/number.test.ts b/extensions/ql-vscode/test/pure-tests/number.test.ts new file mode 100644 index 000000000..e3e214560 --- /dev/null +++ b/extensions/ql-vscode/test/pure-tests/number.test.ts @@ -0,0 +1,12 @@ +import { expect } from 'chai'; +import 'mocha'; + +import { formatDecimal } from '../../src/pure/number'; + +describe('Number', () => { + it('should return a formatted decimal', () => { + expect(formatDecimal(9)).to.eq('9'); + expect(formatDecimal(10_000)).to.eq('10,000'); + expect(formatDecimal(100_000_000_000)).to.eq('100,000,000,000'); + }); +}); diff --git a/extensions/ql-vscode/test/pure-tests/time.test.ts b/extensions/ql-vscode/test/pure-tests/time.test.ts index 43c96955a..1bd874acb 100644 --- a/extensions/ql-vscode/test/pure-tests/time.test.ts +++ b/extensions/ql-vscode/test/pure-tests/time.test.ts @@ -5,10 +5,13 @@ import { humanizeRelativeTime, humanizeUnit } from '../../src/pure/time'; describe('Time', () => { it('should return a humanized unit', () => { - expect(humanizeUnit(undefined)).to.eq('Less than a minute'); - expect(humanizeUnit(0)).to.eq('Less than a minute'); - expect(humanizeUnit(-1)).to.eq('Less than a minute'); - expect(humanizeUnit(1000 * 60 - 1)).to.eq('Less than a minute'); + expect(humanizeUnit(undefined)).to.eq('Less than a second'); + expect(humanizeUnit(0)).to.eq('Less than a second'); + expect(humanizeUnit(-1)).to.eq('Less than a second'); + expect(humanizeUnit(1000 - 1)).to.eq('Less than a second'); + expect(humanizeUnit(1000)).to.eq('1 second'); + expect(humanizeUnit(1000 * 2)).to.eq('2 seconds'); + expect(humanizeUnit(1000 * 60 - 1)).to.eq('59 seconds'); expect(humanizeUnit(1000 * 60)).to.eq('1 minute'); expect(humanizeUnit(1000 * 60 * 2 - 1)).to.eq('1 minute'); expect(humanizeUnit(1000 * 60 * 2)).to.eq('2 minutes');