-
Notifications
You must be signed in to change notification settings - Fork 19
/
Copy pathtest.js
118 lines (104 loc) · 4.66 KB
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
'use strict'
const test = require('tape')
const interval = require('./')
const PostgresInterval = require('./')
test(function (t) {
t.test('parser', function (t) {
t.equal(Object.assign(interval(), { milliseconds: 1000 }).toPostgres(), '1 second')
t.deepEqual(interval('01:02:03.456'), Object.assign(new PostgresInterval(), {
hours: 1,
minutes: 2,
seconds: 3,
milliseconds: 456
}))
t.deepEqual(interval('-01:02:03.456'), Object.assign(new PostgresInterval(), {
hours: -1,
minutes: -2,
seconds: -3,
milliseconds: -456
}))
t.equal(interval('00:00:00-5').milliseconds, 0, 'invalid interval format')
t.equal(interval('00:00:00.5').milliseconds, 500)
t.equal(interval('00:00:00.50').milliseconds, 500)
t.equal(interval('00:00:00.500').milliseconds, 500)
t.equal(interval('00:00:00.5000').milliseconds, 500)
t.equal(interval('00:00:00.100500').milliseconds, 100.5)
t.equal(interval('00:00:00.1005005').milliseconds, 100.5005)
t.equal(interval('00:00:00.05').milliseconds, 50)
t.equal(interval('00:00:00.005').milliseconds, 5)
t.equal(interval('00:00:00.0005').milliseconds, 0.5)
t.equal(interval('00:00:00.00005').milliseconds, 0.05)
t.equal(interval('00:00:00.000005').milliseconds, 0.005)
t.equal(interval('00:00:00.0000005').milliseconds, 0.0005)
t.test('zero', function (t) {
const result = interval('00:00:00')
t.equal(result.years, 0)
t.equal(result.months, 0)
t.equal(result.days, 0)
t.equal(result.hours, 0)
t.equal(result.seconds, 0)
t.equal(result.milliseconds, 0)
t.end()
})
t.test('empty', function (t) {
const result = interval('')
t.equal(result.years, 0)
t.equal(result.months, 0)
t.equal(result.days, 0)
t.equal(result.hours, 0)
t.equal(result.seconds, 0)
t.equal(result.milliseconds, 0)
t.end()
})
t.end()
})
t.test('toPostgres', function (t) {
t.equal(interval('01:02:03').toPostgres(), '1 hour 2 minutes 3 seconds')
t.equal(interval('100:02:03').toPostgres(), '100 hours 2 minutes 3 seconds')
t.equal(interval('1 year -32 days').toPostgres(), '1 year -32 days')
t.equal(interval('1 day -00:00:03').toPostgres(), '1 day -3 seconds')
t.equal(interval('00:00:00').toPostgres(), '0')
t.equal(interval('00:00:01.100').toPostgres(), '1.1 seconds')
t.equal(interval('00:00:00.5').toPostgres(), '0.5 seconds')
t.equal(interval('00:00:00.100500').toPostgres(), '0.1005 seconds')
t.equal(interval('00:00:00.123456').toPostgres(), '0.123456 seconds')
t.equal(interval('-00:00:00.123456').toPostgres(), '-0.123456 seconds')
t.equal(interval('-00:00:59.999999').toPostgres(), '-59.999999 seconds')
t.end()
})
t.test('toISOString', function (t) {
t.equal(interval('01:02:03').toISOString(), 'P0Y0M0DT1H2M3S')
t.equal(interval('100:02:03').toISOString(), 'P0Y0M0DT100H2M3S')
t.equal(interval('1 year -32 days').toISOString(), 'P1Y0M-32DT0H0M0S')
t.equal(interval('1 day -00:00:03').toISOString(), 'P0Y0M1DT0H0M-3S')
t.equal(interval('00:00:00').toISOString(), 'P0Y0M0DT0H0M0S')
t.equal(interval('00:00:00.0').toISOString(), 'P0Y0M0DT0H0M0S')
t.equal(interval('00:00:01.100').toISOString(), 'P0Y0M0DT0H0M1.1S')
t.equal(interval('00:00:00.5').toISOString(), 'P0Y0M0DT0H0M0.5S')
t.equal(interval('00:00:00.100500').toISOString(), 'P0Y0M0DT0H0M0.1005S')
t.equal(interval('00:00:00.123456').toISOString(), 'P0Y0M0DT0H0M0.123456S')
t.equal(interval('-00:00:00.123456').toISOString(), 'P0Y0M0DT0H0M-0.123456S')
t.equal(interval('-00:00:59.999999').toISOString(), 'P0Y0M0DT0H0M-59.999999S')
t.end()
})
t.test('toISO', function (t) {
t.equal(interval('01:02:03').toISOString(), 'P0Y0M0DT1H2M3S')
t.equal(interval('100:02:03').toISOString(), 'P0Y0M0DT100H2M3S')
t.end()
})
t.test('toISOStringShort', function (t) {
t.equal(interval('01:02:03').toISOStringShort(), 'PT1H2M3S')
t.equal(interval('100:02:03').toISOStringShort(), 'PT100H2M3S')
t.equal(interval('1 year -32 days').toISOStringShort(), 'P1Y-32D')
t.equal(interval('1 day -00:00:03').toISOStringShort(), 'P1DT-3S')
t.equal(interval('00:00:00').toISOStringShort(), 'PT0S')
t.equal(interval('00:00:00.0').toISOStringShort(), 'PT0S')
t.equal(interval('00:00:01.100').toISOStringShort(), 'PT1.1S')
t.equal(interval('00:00:00.5').toISOStringShort(), 'PT0.5S')
t.equal(interval('00:00:00.100500').toISOStringShort(), 'PT0.1005S')
t.equal(interval('00:00:00.123456').toISOStringShort(), 'PT0.123456S')
t.equal(interval('-00:00:00.123456').toISOStringShort(), 'PT-0.123456S')
t.end()
})
t.end()
})