@@ -2,12 +2,31 @@ package epoch
2
2
3
3
import (
4
4
"errors"
5
+ "reflect"
5
6
"testing"
6
7
"time"
7
-
8
- "github.com/stretchr/testify/require"
9
8
)
10
9
10
+ func equalError (t * testing.T , got , want error ) {
11
+ t .Helper ()
12
+
13
+ if (got == nil && want != nil ) ||
14
+ (got != nil && want == nil ) ||
15
+ (got .Error () != want .Error ()) {
16
+ t .Logf ("got %q, want %q" , got , want )
17
+ t .FailNow ()
18
+ }
19
+ }
20
+
21
+ func equal [T any ](t * testing.T , got , want T ) {
22
+ t .Helper ()
23
+
24
+ if ! reflect .DeepEqual (got , want ) {
25
+ t .Logf ("got '%#v', want '%#v" , got , want )
26
+ t .FailNow ()
27
+ }
28
+ }
29
+
11
30
func TestParseUnit (t * testing.T ) {
12
31
testCases := []struct {
13
32
description string
@@ -46,14 +65,13 @@ func TestParseUnit(t *testing.T) {
46
65
t .Run (tt .description , func (t * testing.T ) {
47
66
unit , err := ParseUnit (tt .given )
48
67
if err != nil {
49
- require . EqualError (t , tt . expectedErr , err . Error (), err )
68
+ equalError (t , err , tt . expectedErr )
50
69
return
51
70
} else if tt .expectedErr != nil {
52
- require . EqualError (t , err , tt . expectedErr . Error () , tt .expectedErr )
71
+ equalError (t , err , tt .expectedErr )
53
72
return
54
73
}
55
-
56
- require .Equal (t , tt .expected , unit )
74
+ equal (t , unit , tt .expected )
57
75
})
58
76
}
59
77
}
@@ -109,14 +127,14 @@ func TestToTimestamp(t *testing.T) {
109
127
t .Run (tt .description , func (t * testing.T ) {
110
128
timestamp , err := ToTimestamp (tt .given .time , tt .given .unit )
111
129
if err != nil {
112
- require . EqualError (t , tt . expected . err , err . Error (), err )
130
+ equalError (t , err , tt . expected . err )
113
131
return
114
132
} else if tt .expected .err != nil {
115
- require . EqualError (t , err , tt . expected . err . Error () , tt .expected .err )
133
+ equalError (t , err , tt .expected .err )
116
134
return
117
135
}
118
136
119
- require . Equal (t , tt .expected .timestamp , timestamp )
137
+ equal (t , timestamp , tt .expected .timestamp )
120
138
})
121
139
}
122
140
}
@@ -172,14 +190,14 @@ func TestParseTimestamp(t *testing.T) {
172
190
t .Run (tt .description , func (t * testing.T ) {
173
191
timestamp , err := ParseTimestamp (tt .given .timestamp , tt .given .unit )
174
192
if err != nil {
175
- require . EqualError (t , tt . expected . err , err . Error (), err )
193
+ equalError (t , err , tt . expected . err )
176
194
return
177
195
} else if tt .expected .err != nil {
178
- require . EqualError (t , err , tt . expected . err . Error () , tt .expected .err )
196
+ equalError (t , err , tt .expected .err )
179
197
return
180
198
}
181
199
182
- require . Equal (t , tt . expected . time . UTC (), timestamp .UTC ())
200
+ equal (t , timestamp . UTC (), tt . expected . time .UTC ())
183
201
})
184
202
}
185
203
}
@@ -230,7 +248,7 @@ func TestGuessUnit(t *testing.T) {
230
248
for _ , tt := range testCases {
231
249
t .Run (tt .description , func (t * testing.T ) {
232
250
unit := GuessUnit (tt .given .timestamp , tt .given .ref )
233
- require . Equal (t , tt .expected .unit , unit )
251
+ equal (t , unit , tt .expected .unit )
234
252
})
235
253
}
236
254
}
@@ -266,16 +284,16 @@ func TestParseFormatted(t *testing.T) {
266
284
for _ , tt := range testCases {
267
285
t .Run (tt .description , func (t * testing.T ) {
268
286
parsed , layout , err := ParseFormatted (tt .given .formatted )
269
- require . Equal (t , tt .expected .layout , layout )
287
+ equal (t , layout , tt .expected .layout )
270
288
if err != nil {
271
- require . EqualError (t , tt . expected . err , err . Error (), err )
289
+ equalError (t , err , tt . expected . err )
272
290
return
273
291
} else if tt .expected .err != nil {
274
- require . EqualError (t , err , tt . expected . err . Error () , tt .expected .err )
292
+ equalError (t , err , tt .expected .err )
275
293
return
276
294
}
277
295
278
- require . Equal (t , tt .expected .time , parsed )
296
+ equal (t , parsed , tt .expected .time )
279
297
})
280
298
}
281
299
}
0 commit comments