1
1
import assert from 'assert' ;
2
- import moment from 'moment-timezone ' ;
2
+ import dayjs from 'dayjs ' ;
3
3
4
4
import cleanDatePublished , { cleanDateString } from './date-published' ;
5
5
6
6
describe ( 'cleanDatePublished(dateString)' , ( ) => {
7
7
it ( 'returns a date' , ( ) => {
8
8
const datePublished = cleanDatePublished ( 'published: 1/1/2020' ) ;
9
9
10
- assert . equal ( datePublished , moment ( '1/1/2020' , 'MM/DD /YYYY' ) . toISOString ( ) ) ;
10
+ assert . equal ( datePublished , dayjs ( '1/1/2020' , 'M/D /YYYY' ) . toISOString ( ) ) ;
11
11
} ) ;
12
12
13
13
it ( 'returns null if date is invalid' , ( ) => {
@@ -28,37 +28,37 @@ describe('cleanDatePublished(dateString)', () => {
28
28
it ( 'accepts a custom date format' , ( ) => {
29
29
// The JS date parser is forgiving, but
30
30
// it needs am/pm separated from a time
31
- const datePublished = cleanDatePublished ( 'Mon Aug 03 12:45:00 EDT 2015' , {
31
+ const datePublished = cleanDatePublished ( 'Aug 03 12:45:00 EDT 2015' , {
32
32
timezone : 'America/New_York' ,
33
- format : 'ddd MMM DD HH:mm:ss zz YYYY' ,
33
+ format : 'MMM DD HH:mm:ss z YYYY' ,
34
34
} ) ;
35
35
assert . equal ( datePublished , '2015-08-03T16:45:00.000Z' ) ;
36
36
} ) ;
37
37
38
38
it ( 'can handle dates formatted as "[just|right] now"' , ( ) => {
39
39
const date1 = cleanDatePublished ( 'now' ) ;
40
- const newDate1 = moment ( date1 )
40
+ const newDate1 = dayjs ( date1 )
41
41
. format ( )
42
42
. split ( 'T' ) [ 0 ] ;
43
- const expectedDate1 = moment ( )
43
+ const expectedDate1 = dayjs ( )
44
44
. format ( )
45
45
. split ( 'T' ) [ 0 ] ;
46
46
assert . equal ( newDate1 , expectedDate1 ) ;
47
47
48
48
const date2 = cleanDatePublished ( 'just now' ) ;
49
- const newDate2 = moment ( date2 )
49
+ const newDate2 = dayjs ( date2 )
50
50
. format ( )
51
51
. split ( 'T' ) [ 0 ] ;
52
- const expectedDate2 = moment ( )
52
+ const expectedDate2 = dayjs ( )
53
53
. format ( )
54
54
. split ( 'T' ) [ 0 ] ;
55
55
assert . equal ( newDate2 , expectedDate2 ) ;
56
56
57
57
const date3 = cleanDatePublished ( 'right now' ) ;
58
- const newDate3 = moment ( date3 )
58
+ const newDate3 = dayjs ( date3 )
59
59
. format ( )
60
60
. split ( 'T' ) [ 0 ] ;
61
- const expectedDate3 = moment ( )
61
+ const expectedDate3 = dayjs ( )
62
62
. format ( )
63
63
. split ( 'T' ) [ 0 ] ;
64
64
assert . equal ( newDate3 , expectedDate3 ) ;
@@ -69,30 +69,30 @@ describe('cleanDatePublished(dateString)', () => {
69
69
// "X days ago" will not be accurate down to the exact time
70
70
// "X months ago" will not be accurate down to the exact day
71
71
const date1 = cleanDatePublished ( '1 hour ago' ) ;
72
- const newDate1 = moment ( date1 )
72
+ const newDate1 = dayjs ( date1 )
73
73
. format ( )
74
74
. split ( 'T' ) [ 0 ] ;
75
- const expectedDate1 = moment ( )
75
+ const expectedDate1 = dayjs ( )
76
76
. subtract ( 1 , 'hour' )
77
77
. format ( )
78
78
. split ( 'T' ) [ 0 ] ;
79
79
assert . equal ( newDate1 , expectedDate1 ) ;
80
80
81
81
const date2 = cleanDatePublished ( '5 days ago' ) ;
82
- const newDate2 = moment ( date2 )
82
+ const newDate2 = dayjs ( date2 )
83
83
. format ( )
84
84
. split ( 'T' ) [ 0 ] ;
85
- const expectedDate2 = moment ( )
85
+ const expectedDate2 = dayjs ( )
86
86
. subtract ( 5 , 'days' )
87
87
. format ( )
88
88
. split ( 'T' ) [ 0 ] ;
89
89
assert . equal ( newDate2 , expectedDate2 ) ;
90
90
91
91
const date3 = cleanDatePublished ( '10 months ago' ) ;
92
- const newDate3 = moment ( date3 )
92
+ const newDate3 = dayjs ( date3 )
93
93
. format ( )
94
94
. split ( 'T' ) [ 0 ] ;
95
- const expectedDate3 = moment ( )
95
+ const expectedDate3 = dayjs ( )
96
96
. subtract ( 10 , 'months' )
97
97
. format ( )
98
98
. split ( 'T' ) [ 0 ] ;
0 commit comments