v / vlib / time / relative_test.v
58 lines · 56 sloc · 2.25 KB · 91c1157810d7aee3ce7ea3f90ca10964dc5d8912
Raw
1import time
2
3fn test_relative() {
4 // past
5 mut date := time.now()
6 assert date.relative() == 'now'
7 date = date.add_seconds(-61)
8 assert date.relative() == '1 minute ago'
9 assert date.relative_short() == '1m ago'
10 date = date.add_seconds(-120)
11 assert date.relative() == '3 minutes ago'
12 assert date.relative_short() == '3m ago'
13 date = date.add_seconds(-1 * time.seconds_per_hour)
14 assert date.relative() == '1 hour ago'
15 assert date.relative_short() == '1h ago'
16 date = date.add_seconds(-5 * time.seconds_per_hour)
17 assert date.relative() == '6 hours ago'
18 assert date.relative_short() == '6h ago'
19 date = date.add_seconds(-1 * time.seconds_per_day)
20 assert date.relative() == '1 day ago'
21 assert date.relative_short() == '1d ago'
22 date = date.add_seconds(-4 * time.seconds_per_day)
23 assert date.relative() == '5 days ago'
24 assert date.relative_short() == '5d ago'
25 date = time.now().add_seconds(-75 * time.seconds_per_day)
26 assert date.relative() == 'last ${date.custom_format('MMM')} ${date.custom_format('D')}'
27 assert date.relative_short() == '75d ago'
28 date = time.now().add_seconds(-400 * time.seconds_per_day)
29 assert date.relative() == '1 year ago'
30 assert date.relative_short() == '1y ago'
31
32 // future
33 date = time.now()
34 date = date.add_seconds(61)
35 assert date.relative() == 'in 1 minute'
36 assert date.relative_short() == 'in 1m'
37 date = date.add_seconds(120)
38 assert date.relative() == 'in 3 minutes'
39 assert date.relative_short() == 'in 3m'
40 date = date.add_seconds(1 * time.seconds_per_hour)
41 assert date.relative() == 'in 1 hour'
42 assert date.relative_short() == 'in 1h'
43 date = date.add_seconds(5 * time.seconds_per_hour)
44 assert date.relative() == 'in 6 hours'
45 assert date.relative_short() == 'in 6h'
46 date = date.add_seconds(time.seconds_per_day)
47 assert date.relative() == 'in 1 day'
48 assert date.relative_short() == 'in 1d'
49 date = date.add_seconds(4 * time.seconds_per_day)
50 assert date.relative() == 'in 5 days'
51 assert date.relative_short() == 'in 5d'
52 date = time.now().add_seconds(75 * time.seconds_per_day)
53 assert date.relative() == 'on ${date.custom_format('MMM')} ${date.custom_format('D')}'
54 assert date.relative_short() == 'in 75d'
55 date = time.now().add_seconds(400 * time.seconds_per_day)
56 assert date.relative() == 'in 1 year'
57 assert date.relative_short() == 'in 1y'
58}
59