Skip to content

Commit e3a8e10

Browse files
committed
improve tests for date and time tests
1 parent c752121 commit e3a8e10

File tree

5 files changed

+66
-26
lines changed

5 files changed

+66
-26
lines changed

schema/json/generator/date_test.go

Lines changed: 30 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,25 @@
11
package generator
22

33
import (
4-
"github.com/brianvoe/gofakeit/v6"
5-
"github.com/stretchr/testify/require"
64
"mokapi/schema/json/schema/schematest"
75
"testing"
6+
"time"
7+
8+
"github.com/brianvoe/gofakeit/v6"
9+
"github.com/stretchr/testify/require"
810
)
911

1012
func TestStringDate(t *testing.T) {
13+
// tests depends on current year so without this, all tests will break in next year
14+
isDateString := func(t *testing.T, s any) {
15+
_, err := time.Parse("2006-01-02", s.(string))
16+
require.NoError(t, err)
17+
}
18+
isDateTimeString := func(t *testing.T, s any) {
19+
_, err := time.Parse(time.RFC3339, s.(string))
20+
require.NoError(t, err)
21+
}
22+
1123
testcases := []struct {
1224
name string
1325
req *Request
@@ -21,7 +33,7 @@ func TestStringDate(t *testing.T) {
2133
},
2234
test: func(t *testing.T, v interface{}, err error) {
2335
require.NoError(t, err)
24-
require.Equal(t, "2020-08-26", v)
36+
isDateString(t, v)
2537
},
2638
},
2739
{
@@ -31,7 +43,7 @@ func TestStringDate(t *testing.T) {
3143
},
3244
test: func(t *testing.T, v interface{}, err error) {
3345
require.NoError(t, err)
34-
require.Equal(t, "2020-08-26", v)
46+
isDateString(t, v)
3547
},
3648
},
3749
{
@@ -41,7 +53,7 @@ func TestStringDate(t *testing.T) {
4153
},
4254
test: func(t *testing.T, v interface{}, err error) {
4355
require.NoError(t, err)
44-
require.Equal(t, "2020-08-26", v)
56+
isDateString(t, v)
4557
},
4658
},
4759
{
@@ -51,7 +63,7 @@ func TestStringDate(t *testing.T) {
5163
},
5264
test: func(t *testing.T, v interface{}, err error) {
5365
require.NoError(t, err)
54-
require.Equal(t, "2020-08-26", v)
66+
isDateString(t, v)
5567
},
5668
},
5769
{
@@ -61,7 +73,7 @@ func TestStringDate(t *testing.T) {
6173
},
6274
test: func(t *testing.T, v interface{}, err error) {
6375
require.NoError(t, err)
64-
require.Equal(t, "2020-08-26", v)
76+
isDateString(t, v)
6577
},
6678
},
6779
{
@@ -71,7 +83,7 @@ func TestStringDate(t *testing.T) {
7183
},
7284
test: func(t *testing.T, v interface{}, err error) {
7385
require.NoError(t, err)
74-
require.Equal(t, "2020-08-26", v)
86+
isDateString(t, v)
7587
},
7688
},
7789
{
@@ -81,7 +93,7 @@ func TestStringDate(t *testing.T) {
8193
},
8294
test: func(t *testing.T, v interface{}, err error) {
8395
require.NoError(t, err)
84-
require.Equal(t, "2020-08-26", v)
96+
isDateString(t, v)
8597
},
8698
},
8799
{
@@ -91,7 +103,7 @@ func TestStringDate(t *testing.T) {
91103
},
92104
test: func(t *testing.T, v interface{}, err error) {
93105
require.NoError(t, err)
94-
require.Equal(t, "2020-08-26", v)
106+
isDateString(t, v)
95107
},
96108
},
97109
{
@@ -101,7 +113,7 @@ func TestStringDate(t *testing.T) {
101113
},
102114
test: func(t *testing.T, v interface{}, err error) {
103115
require.NoError(t, err)
104-
require.Equal(t, "2020-08-26", v)
116+
isDateString(t, v)
105117
},
106118
},
107119
{
@@ -111,7 +123,7 @@ func TestStringDate(t *testing.T) {
111123
},
112124
test: func(t *testing.T, v interface{}, err error) {
113125
require.NoError(t, err)
114-
require.Equal(t, "1970-08-26", v)
126+
isDateString(t, v)
115127
},
116128
},
117129
{
@@ -124,7 +136,9 @@ func TestStringDate(t *testing.T) {
124136
},
125137
test: func(t *testing.T, v interface{}, err error) {
126138
require.NoError(t, err)
127-
require.Equal(t, map[string]any{"activeFrom": "2020-08-26T07:02:11Z", "inactiveFrom": "2029-08-30T11:01:28Z"}, v)
139+
m := v.(map[string]interface{})
140+
isDateTimeString(t, m["activeFrom"])
141+
isDateTimeString(t, m["inactiveFrom"])
128142
},
129143
},
130144
{
@@ -137,7 +151,9 @@ func TestStringDate(t *testing.T) {
137151
},
138152
test: func(t *testing.T, v interface{}, err error) {
139153
require.NoError(t, err)
140-
require.Equal(t, map[string]any{"publishedFrom": "2020-08-26T07:02:11Z", "publishedUntil": "2029-08-30T11:01:28Z"}, v)
154+
m := v.(map[string]interface{})
155+
isDateTimeString(t, m["publishedFrom"])
156+
isDateTimeString(t, m["publishedUntil"])
141157
},
142158
},
143159
}

schema/json/generator/file_test.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,21 @@
11
package generator
22

33
import (
4-
"github.com/brianvoe/gofakeit/v6"
5-
"github.com/stretchr/testify/require"
64
"mokapi/schema/json/schema/schematest"
75
"testing"
6+
"time"
7+
8+
"github.com/brianvoe/gofakeit/v6"
9+
"github.com/stretchr/testify/require"
810
)
911

1012
func TestFile(t *testing.T) {
13+
// tests depends on current year so without this, all tests will break in next year
14+
isDateString := func(t *testing.T, s any) {
15+
_, err := time.Parse("2006-01-02", s.(string))
16+
require.NoError(t, err)
17+
}
18+
1119
testcases := []struct {
1220
name string
1321
req *Request
@@ -41,7 +49,7 @@ func TestFile(t *testing.T) {
4149
},
4250
test: func(t *testing.T, v interface{}, err error) {
4351
require.NoError(t, err)
44-
require.Equal(t, "2020-08-26", v)
52+
isDateString(t, v)
4553
},
4654
},
4755
{
@@ -62,7 +70,7 @@ func TestFile(t *testing.T) {
6270
},
6371
test: func(t *testing.T, v interface{}, err error) {
6472
require.NoError(t, err)
65-
require.Equal(t, "2020-08-26", v)
73+
isDateString(t, v)
6674
},
6775
},
6876
}

schema/json/generator/it_test.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package generator
22

33
import (
4-
"github.com/brianvoe/gofakeit/v6"
5-
"github.com/stretchr/testify/require"
64
"mokapi/schema/json/schema/schematest"
75
"testing"
6+
"time"
7+
8+
"github.com/brianvoe/gofakeit/v6"
9+
"github.com/stretchr/testify/require"
810
)
911

1012
func TestIt(t *testing.T) {
@@ -99,6 +101,12 @@ func TestStringHash(t *testing.T) {
99101
}
100102

101103
func TestUser(t *testing.T) {
104+
// tests depends on current year so without this, all tests will break in next year
105+
isDateTimeString := func(t *testing.T, s any) {
106+
_, err := time.Parse(time.RFC3339, s.(string))
107+
require.NoError(t, err)
108+
}
109+
102110
testcases := []struct {
103111
name string
104112
req *Request
@@ -141,7 +149,7 @@ func TestUser(t *testing.T) {
141149
},
142150
test: func(t *testing.T, v interface{}, err error) {
143151
require.NoError(t, err)
144-
require.Equal(t, "2024-08-26T07:02:11Z", v)
152+
isDateTimeString(t, v)
145153
},
146154
},
147155
{

schema/json/generator/person.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ func fakeDateInPastWithMinYear(r *Request, minYear int) (any, error) {
345345
year := gofakeit.Number(1940, time.Now().Year())
346346
year = int(math.Max(float64(year), float64(minYear)))
347347
month := gofakeit.Number(1, 12)
348-
if year == time.Now().Year() {
348+
if year == now.Year() {
349349
month = gofakeit.Number(1, int(now.Month()))
350350
}
351351

schema/json/generator/person_test.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,21 @@
11
package generator
22

33
import (
4-
"github.com/brianvoe/gofakeit/v6"
5-
"github.com/stretchr/testify/require"
64
"mokapi/schema/json/schema/schematest"
75
"testing"
6+
"time"
7+
8+
"github.com/brianvoe/gofakeit/v6"
9+
"github.com/stretchr/testify/require"
810
)
911

1012
func TestPerson(t *testing.T) {
13+
// tests depends on current year so without this, all tests will break in next year
14+
isDateString := func(t *testing.T, s any) {
15+
_, err := time.Parse("2006-01-02", s.(string))
16+
require.NoError(t, err)
17+
}
18+
1119
testcases := []struct {
1220
name string
1321
req *Request
@@ -265,7 +273,7 @@ func TestPerson(t *testing.T) {
265273
},
266274
test: func(t *testing.T, v interface{}, err error) {
267275
require.NoError(t, err)
268-
require.Equal(t, "1970-08-26", v)
276+
isDateString(t, v)
269277
},
270278
},
271279
{
@@ -276,7 +284,7 @@ func TestPerson(t *testing.T) {
276284
},
277285
test: func(t *testing.T, v interface{}, err error) {
278286
require.NoError(t, err)
279-
require.Equal(t, "1970-08-26", v)
287+
isDateString(t, v)
280288
},
281289
},
282290
{

0 commit comments

Comments
 (0)