Live video on the AT Protocol
1package aqtime
2
3import (
4 "testing"
5
6 "github.com/stretchr/testify/require"
7)
8
9func TestTimeFormat(t *testing.T) {
10 aqt := FromMillis(1726251017090)
11 require.Equal(t, "2024-09-13T18:10:17.090Z", aqt.String())
12 require.Equal(t, "2024-09-13T18-10-17-090Z", aqt.FileSafeString())
13 yr, mon, day, hr, min, sec, ms := aqt.Parts()
14 require.Equal(t, "2024", yr)
15 require.Equal(t, "09", mon)
16 require.Equal(t, "13", day)
17 require.Equal(t, "18", hr)
18 require.Equal(t, "10", min)
19 require.Equal(t, "17", sec)
20 require.Equal(t, "090", ms)
21}
22
23func TestTimeParse(t *testing.T) {
24 for _, str := range []string{"2024-09-13T18:10:17.090Z", "2024-09-13T18-10-17-090Z"} {
25 aqt, err := FromString(str)
26 require.NoError(t, err)
27 yr, mon, day, hr, min, sec, ms := aqt.Parts()
28 require.Equal(t, "2024", yr)
29 require.Equal(t, "09", mon)
30 require.Equal(t, "13", day)
31 require.Equal(t, "18", hr)
32 require.Equal(t, "10", min)
33 require.Equal(t, "17", sec)
34 require.Equal(t, "090", ms)
35 }
36}
37
38func TestBadCases(t *testing.T) {
39 for _, str := range []string{
40 "prefix2024-09-13T18:10:17.090Z",
41 "2024-09-13T18-10-17-090Zsuffix",
42 "2024-09-13T18-10-17-090ZZZZ",
43 "2024-09-13T18-10-17*090ZZZZ",
44 } {
45 _, err := FromString(str)
46 require.Error(t, err)
47 }
48}