diff options
author | Tim Reichen <timreichen@users.noreply.github.com> | 2020-08-15 16:37:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-08-15 10:37:17 -0400 |
commit | 684eddcc6bf0c1446c9aba0cdf001c661c19ab24 (patch) | |
tree | 134f5f1609cf9f35295f841e27ba26d64c720795 /std/datetime/test.ts | |
parent | b684df784ef0ecbdf8bc3b6015177b6829420f86 (diff) |
feat(std/datetime): generalise parser, add formatter (#6619)
Diffstat (limited to 'std/datetime/test.ts')
-rw-r--r-- | std/datetime/test.ts | 98 |
1 files changed, 62 insertions, 36 deletions
diff --git a/std/datetime/test.ts b/std/datetime/test.ts index d5dccee73..7e81d3036 100644 --- a/std/datetime/test.ts +++ b/std/datetime/test.ts @@ -3,77 +3,103 @@ import { assert, assertEquals, assertThrows } from "../testing/asserts.ts"; import * as datetime from "./mod.ts"; Deno.test({ - name: "[std/datetime] parseDate", + name: "[std/datetime] parse", fn: () => { assertEquals( - datetime.parseDateTime("01-03-2019 16:30", "mm-dd-yyyy hh:mm"), + datetime.parse("01-03-2019 16:30", "MM-dd-yyyy hh:mm"), new Date(2019, 0, 3, 16, 30), ); assertEquals( - datetime.parseDateTime("03-01-2019 16:31", "dd-mm-yyyy hh:mm"), + datetime.parse("01.03.2019 16:30", "MM.dd.yyyy hh:mm"), + new Date(2019, 0, 3, 16, 30), + ); + assertEquals( + datetime.parse("03-01-2019 16:31", "dd-MM-yyyy hh:mm"), new Date(2019, 0, 3, 16, 31), ); assertEquals( - datetime.parseDateTime("2019-01-03 16:32", "yyyy-mm-dd hh:mm"), + datetime.parse("2019-01-03 16:32", "yyyy-MM-dd hh:mm"), new Date(2019, 0, 3, 16, 32), ); assertEquals( - datetime.parseDateTime("16:33 01-03-2019", "hh:mm mm-dd-yyyy"), + datetime.parse("16:33 01-03-2019", "hh:mm MM-dd-yyyy"), new Date(2019, 0, 3, 16, 33), ); assertEquals( - datetime.parseDateTime("16:34 03-01-2019", "hh:mm dd-mm-yyyy"), + datetime.parse("01-03-2019 16:33:23.123", "MM-dd-yyyy hh:mm:ss.SSS"), + new Date(2019, 0, 3, 16, 33, 23, 123), + ); + assertEquals( + datetime.parse("01-03-2019 09:33 PM", "MM-dd-yyyy hh:mm a"), + new Date(2019, 0, 3, 21, 33), + ); + assertEquals( + datetime.parse("16:34 03-01-2019", "hh:mm dd-MM-yyyy"), new Date(2019, 0, 3, 16, 34), ); assertEquals( - datetime.parseDateTime("16:35 2019-01-03", "hh:mm yyyy-mm-dd"), + datetime.parse("16:35 2019-01-03", "hh:mm yyyy-MM-dd"), new Date(2019, 0, 3, 16, 35), ); + assertEquals( + datetime.parse("01-03-2019", "MM-dd-yyyy"), + new Date(2019, 0, 3), + ); + assertEquals( + datetime.parse("03-01-2019", "dd-MM-yyyy"), + new Date(2019, 0, 3), + ); + assertEquals( + datetime.parse("2019-01-03", "yyyy-MM-dd"), + new Date(2019, 0, 3), + ); }, }); Deno.test({ name: "[std/datetime] invalidParseDateTimeFormatThrows", fn: () => { - assertThrows( - (): void => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (datetime as any).parseDateTime("2019-01-01 00:00", "x-y-z"); - }, - Error, - "Invalid datetime format!", - ); + assertThrows((): void => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (datetime as any).parse("2019-01-01 00:00", "x-y-z"); + }, Error); + assertThrows((): void => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + (datetime as any).parse("2019-01-01", "x-y-z"); + }, Error); }, }); Deno.test({ - name: "[std/datetime] parseDate", + name: "[std/datetime] format", fn: () => { assertEquals( - datetime.parseDate("01-03-2019", "mm-dd-yyyy"), - new Date(2019, 0, 3), + "2019-01-01", + datetime.format(new Date("2019-01-01T03:24:00"), "yyyy-MM-dd"), ); assertEquals( - datetime.parseDate("03-01-2019", "dd-mm-yyyy"), - new Date(2019, 0, 3), + "01.01.2019", + datetime.format(new Date("2019-01-01T03:24:00"), "dd.MM.yyyy"), ); assertEquals( - datetime.parseDate("2019-01-03", "yyyy-mm-dd"), - new Date(2019, 0, 3), + "03:24:00", + datetime.format(new Date("2019-01-01T03:24:00"), "hh:mm:ss"), ); - }, -}); - -Deno.test({ - name: "[std/datetime] invalidParseDateFormatThrows", - fn: () => { - assertThrows( - (): void => { - // eslint-disable-next-line @typescript-eslint/no-explicit-any - (datetime as any).parseDate("2019-01-01", "x-y-z"); - }, - Error, - "Invalid date format!", + assertEquals( + "03:24:00.532", + datetime.format(new Date("2019-01-01T03:24:00.532"), "hh:mm:ss.SSS"), + ); + assertEquals( + "03:24:00 AM", + datetime.format(new Date("2019-01-01T03:24:00"), "hh:mm:ss a"), + ); + assertEquals( + "09:24:00 PM", + datetime.format(new Date("2019-01-01T21:24:00"), "hh:mm:ss a"), + ); + assertEquals( + datetime.format(new Date(2019, 0, 20), "'today:' yyyy-MM-dd"), + "today: 2019-01-20", ); }, }); @@ -186,7 +212,7 @@ Deno.test({ }); Deno.test({ - name: "[std/datetime] Difference", + name: "[std/datetime] difference", fn(): void { const denoInit = new Date("2018/5/14"); const denoRelaseV1 = new Date("2020/5/13"); |