summaryrefslogtreecommitdiff
path: root/date-fns/src/lightFormat/test.ts
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2021-08-23 16:46:06 -0300
committerSebastian <sebasjm@gmail.com>2021-08-23 16:48:30 -0300
commit38acabfa6089ab8ac469c12b5f55022fb96935e5 (patch)
tree453dbf70000cc5e338b06201af1eaca8343f8f73 /date-fns/src/lightFormat/test.ts
parentf26125e039143b92dc0d84e7775f508ab0cdcaa8 (diff)
downloadnode-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.tar.gz
node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.tar.bz2
node-vendor-38acabfa6089ab8ac469c12b5f55022fb96935e5.zip
added web vendorsHEADmaster
Diffstat (limited to 'date-fns/src/lightFormat/test.ts')
-rw-r--r--date-fns/src/lightFormat/test.ts158
1 files changed, 158 insertions, 0 deletions
diff --git a/date-fns/src/lightFormat/test.ts b/date-fns/src/lightFormat/test.ts
new file mode 100644
index 0000000..13a8fd8
--- /dev/null
+++ b/date-fns/src/lightFormat/test.ts
@@ -0,0 +1,158 @@
+// @flow
+/* eslint-env mocha */
+
+import assert from 'assert'
+import lightFormat from '.'
+
+describe('lightFormat', () => {
+ const date = new Date(1986, 3 /* Apr */, 4, 10, 32, 55, 123)
+
+ it('accepts a timestamp', () => {
+ const date = new Date(2014, 3, 4).getTime()
+ assert(lightFormat(date, 'yyyy-MM-dd') === '2014-04-04')
+ })
+
+ it('escapes characters between the single quote characters', () => {
+ const result = lightFormat(date, "'yyyy-'MM-dd'D yyyy-'MM-dd'")
+ assert(result === 'yyyy-04-04D yyyy-04-04')
+ })
+
+ it('two single quote characters are transformed into a "real" single quote', () => {
+ const date = new Date(2014, 3, 4, 5)
+ assert(lightFormat(date, "''h 'o''clock'''") === "'5 o'clock'")
+ })
+
+ it('accepts new line charactor', function () {
+ const date = new Date(2014, 3, 4, 5)
+ assert.equal(
+ lightFormat(date, "yyyy-MM-dd'\n'HH:mm:ss"),
+ '2014-04-04\n05:00:00'
+ )
+ })
+
+ describe('year', () => {
+ describe('regular year', () => {
+ it('works as expected', () => {
+ const result = lightFormat(date, 'y yy yyy yyyy yyyyy')
+ assert(result === '1986 86 1986 1986 01986')
+ })
+
+ it('1 BC formats as 1', () => {
+ const date = new Date(0)
+ date.setFullYear(0 /* Jan */, 1)
+ date.setHours(0, 0, 0, 0)
+ const result = lightFormat(date, 'y')
+ assert(result === '1')
+ })
+
+ it('2 BC formats as 2', () => {
+ const date = new Date(0)
+ date.setFullYear(-1, 0 /* Jan */, 1)
+ date.setHours(0, 0, 0, 0)
+ const result = lightFormat(date, 'y')
+ assert(result === '2')
+ })
+ })
+ })
+
+ describe('month', () => {
+ it('formatting month', () => {
+ const result = lightFormat(date, 'M MM')
+ assert(result === '4 04')
+ })
+ })
+
+ describe('day', () => {
+ it('date', () => {
+ const result = lightFormat(date, 'd dd')
+ assert(result === '4 04')
+ })
+ })
+
+ describe('hour', () => {
+ it('hour [1-12]', () => {
+ const result = lightFormat(
+ new Date(2018, 0 /* Jan */, 1, 0, 0, 0, 0),
+ 'h hh'
+ )
+ assert(result === '12 12')
+ })
+
+ it('hour [0-23]', () => {
+ const result = lightFormat(
+ new Date(2018, 0 /* Jan */, 1, 0, 0, 0, 0),
+ 'H HH'
+ )
+ assert(result === '0 00')
+ })
+
+ describe('AM, PM', () => {
+ it('works as expected', () => {
+ const result = lightFormat(
+ new Date(2018, 0 /* Jan */, 1, 0, 0, 0, 0),
+ 'a aa aaa aaaa aaaaa'
+ )
+ assert(result === 'AM AM am a.m. a')
+ })
+
+ it('12 PM', () => {
+ const date = new Date(1986, 3 /* Apr */, 4, 12, 0, 0, 900)
+ assert(lightFormat(date, 'h H a') === '12 12 PM')
+ })
+
+ it('12 AM', () => {
+ const date = new Date(1986, 3 /* Apr */, 6, 0, 0, 0, 900)
+ assert(lightFormat(date, 'h H a') === '12 0 AM')
+ })
+ })
+ })
+
+ it('minute', () => {
+ const result = lightFormat(date, 'm mm')
+ assert(result === '32 32')
+ })
+
+ describe('second', () => {
+ it('second', () => {
+ const result = lightFormat(date, 's ss')
+ assert(result === '55 55')
+ })
+ })
+
+ it('fractional seconds', function () {
+ const result = lightFormat(date, 'S SS SSS SSSS')
+ assert(result === '1 12 123 1230')
+ })
+
+ it('returns empty string when the format is an empty string', () => {
+ assert(lightFormat(Date.now(), '') === '')
+ })
+
+ it("throws RangeError if the date isn't valid", () => {
+ assert.throws(
+ lightFormat.bind(null, new Date(NaN), 'MMMM d, yyyy'),
+ RangeError
+ )
+ })
+
+ it('implicitly converts `formatString`', () => {
+ // eslint-disable-next-line no-new-wrappers
+ const formatString = new String('yyyy-MM-dd')
+
+ const date = new Date(2014, 3, 4)
+
+ // @ts-expect-error
+ assert(lightFormat(date, formatString) === '2014-04-04')
+ })
+
+ it('throws RangeError exception if the format string contains an unescaped latin alphabet character', function () {
+ assert.throws(lightFormat.bind(null, date, 'yyyy-MM-dd-nnnn'), RangeError)
+ })
+
+ it('throws TypeError exception if passed less than 2 arguments', () => {
+ // @ts-expect-error
+ assert.throws(lightFormat.bind(null), TypeError)
+ // @ts-expect-error
+ assert.throws(lightFormat.bind(null, 1), TypeError)
+ })
+})