@@ -11,7 +11,8 @@ import (
11
11
"testing"
12
12
"time"
13
13
14
- "github.com/go-test/deep"
14
+ "github.com/stretchr/testify/assert"
15
+ "github.com/stretchr/testify/require"
15
16
"go.mongodb.org/mongo-driver/bson/primitive"
16
17
17
18
"github.com/square/etre"
@@ -90,9 +91,7 @@ func setup(t *testing.T, cfg config.Config, store mock.EntityStore) *server {
90
91
}
91
92
92
93
acls , err := srv .MapConfigACLRoles (cfg .Security .ACL )
93
- if err != nil {
94
- t .Fatalf ("invalid Config.ACL: %s" , err )
95
- }
94
+ require .NoError (t , err , "invalid Config.ACL: %s" , err )
96
95
97
96
appCtx := app.Context {
98
97
Config : server .cfg ,
@@ -108,9 +107,8 @@ func setup(t *testing.T, cfg config.Config, store mock.EntityStore) *server {
108
107
server .ts = httptest .NewServer (server .api )
109
108
110
109
u , err := url .Parse (server .ts .URL )
111
- if err != nil {
112
- t .Fatal (err )
113
- }
110
+ require .NoError (t , err )
111
+
114
112
server .url = fmt .Sprintf ("http://%s" , u .Host )
115
113
116
114
return server
@@ -138,19 +136,13 @@ func TestStatus(t *testing.T) {
138
136
var gotStatus map [string ]string
139
137
url := server .url + etre .API_ROOT + "/status"
140
138
statusCode , err := test .MakeHTTPRequest ("GET" , url , nil , & gotStatus )
141
- if err != nil {
142
- t .Fatal (err )
143
- }
144
- if statusCode != http .StatusOK {
145
- t .Errorf ("got HTTP status = %d, expected %d" , statusCode , http .StatusOK )
146
- }
139
+ require .NoError (t , err )
140
+ assert .Equal (t , http .StatusOK , statusCode )
147
141
expectStatus := map [string ]string {
148
142
"ok" : "yes" ,
149
143
"version" : etre .VERSION ,
150
144
}
151
- if diff := deep .Equal (gotStatus , expectStatus ); diff != nil {
152
- t .Error (diff )
153
- }
145
+ assert .Equal (t , expectStatus , gotStatus )
154
146
}
155
147
156
148
func TestValidateEntityType (t * testing.T ) {
@@ -163,27 +155,16 @@ func TestValidateEntityType(t *testing.T) {
163
155
164
156
var gotError etre.Error
165
157
statusCode , err := test .MakeHTTPRequest ("GET" , etreurl , nil , & gotError )
166
- if err != nil {
167
- t .Fatal (err )
168
- }
169
-
170
- if statusCode != http .StatusBadRequest {
171
- t .Errorf ("response status = %d, expected %d" , statusCode , http .StatusBadRequest )
172
- }
173
- if gotError .Message == "" {
174
- t .Errorf ("no error message in etre.Error, expected one: %+v" , gotError )
175
- }
158
+ require .NoError (t , err )
159
+ assert .Equal (t , http .StatusBadRequest , statusCode )
160
+ assert .NotEmpty (t , gotError .Message )
176
161
177
162
// -- Metrics -----------------------------------------------------------
178
163
expectMetrics := []mock.MetricMethodArgs {
179
164
{Method : "Inc" , Metric : metrics .InvalidEntityType , IntVal : 1 },
180
165
{Method : "Inc" , Metric : metrics .ClientError , IntVal : 1 }, // error
181
166
}
182
- if diffs := deep .Equal (server .metricsrec .Called , expectMetrics ); diffs != nil {
183
- t .Logf (" got: %+v" , server .metricsrec .Called )
184
- t .Logf ("expect: %+v" , expectMetrics )
185
- t .Error (diffs )
186
- }
167
+ assert .Equal (t , expectMetrics , server .metricsrec .Called )
187
168
188
169
// ----------------------------------------------------------------------
189
170
// Write
@@ -193,26 +174,13 @@ func TestValidateEntityType(t *testing.T) {
193
174
194
175
var gotWR etre.WriteResult
195
176
statusCode , err = test .MakeHTTPRequest ("PUT" , etreurl , nil , & gotWR )
196
- if err != nil {
197
- t .Fatal (err )
198
- }
199
-
200
- if statusCode != http .StatusBadRequest {
201
- t .Errorf ("response status = %d, expected %d" , statusCode , http .StatusBadRequest )
202
- }
203
-
204
- if gotWR .Error == nil {
205
- t .Errorf ("WriteResult.Error is nil, expected error message" )
206
- } else if gotWR .Error .Type != "invalid-entity-type" {
207
- t .Errorf ("WriteResult.Error.Type = %s, expected invalid-entity-type" , gotWR .Error .Type )
208
- }
177
+ require .NoError (t , err )
178
+ assert .Equal (t , http .StatusBadRequest , statusCode )
179
+ require .NotNil (t , gotWR .Error )
180
+ assert .Equal (t , "invalid-entity-type" , gotWR .Error .Type )
209
181
210
182
// -- Metrics -----------------------------------------------------------
211
- if diffs := deep .Equal (server .metricsrec .Called , expectMetrics ); diffs != nil {
212
- t .Logf (" got: %+v" , server .metricsrec .Called )
213
- t .Logf ("expect: %+v" , expectMetrics )
214
- t .Error (diffs )
215
- }
183
+ assert .Equal (t , expectMetrics , server .metricsrec .Called )
216
184
}
217
185
218
186
func TestClientQueryTimeout (t * testing.T ) {
@@ -237,24 +205,15 @@ func TestClientQueryTimeout(t *testing.T) {
237
205
etreurl := server .url + etre .API_ROOT + "/entity/" + entityType + "/" + testEntityIds [0 ]
238
206
var gotEntity etre.Entity
239
207
statusCode , err := test .MakeHTTPRequest ("GET" , etreurl , nil , & gotEntity )
240
- if err != nil {
241
- t .Fatal (err )
242
- }
243
- if statusCode != http .StatusOK {
244
- t .Errorf ("response status = %d, expected %d" , statusCode , http .StatusOK )
245
- }
208
+ require .NoError (t , err )
209
+ assert .Equal (t , http .StatusOK , statusCode )
246
210
247
211
// If set properly, the deadline of the context will be very close to 2s.
248
212
// This is a number number because the deadline is in the future.
249
213
gotDeadline , set := gotCtx .Deadline ()
250
214
d := time .Now ().Sub (gotDeadline ).Seconds ()
251
- t .Logf ("deadline: set=%t, %s (%f)" , set , gotDeadline , d )
252
- if ! set {
253
- t .Errorf ("query timeout deadline not set, expected it to be set" )
254
- }
255
- if d < - 2.2 || d > - 1.8 {
256
- t .Errorf ("deadline %f, expected between 1.8-2.2s (2s default)" , d )
257
- }
215
+ assert .True (t , set , "query timeout deadline not set, expected it to be set" )
216
+ assert .True (t , - d >= 1.8 && - d <= 2.2 , "deadline %f, expected between 1.8-2.2s (2s default)" , d )
258
217
259
218
// ----------------------------------------------------------------------
260
219
// Client passes X-Etre-Query-Timeout
@@ -264,19 +223,10 @@ func TestClientQueryTimeout(t *testing.T) {
264
223
defer func () { test .Headers = map [string ]string {} }()
265
224
266
225
statusCode , err = test .MakeHTTPRequest ("GET" , etreurl , nil , & gotEntity )
267
- if err != nil {
268
- t .Fatal (err )
269
- }
270
- if statusCode != http .StatusOK {
271
- t .Errorf ("response status = %d, expected %d" , statusCode , http .StatusOK )
272
- }
226
+ require .NoError (t , err )
227
+ assert .Equal (t , http .StatusOK , statusCode )
273
228
gotDeadline , set = gotCtx .Deadline ()
274
229
d = time .Now ().Sub (gotDeadline ).Seconds ()
275
- t .Logf ("deadline: set=%t, %s (%f)" , set , gotDeadline , d )
276
- if ! set {
277
- t .Errorf ("query timeout deadline not set, expected it to be set" )
278
- }
279
- if d < - 5.2 || d > - 4.8 {
280
- t .Errorf ("deadline %f, expected between 4.8-5.2s (2s default)" , d )
281
- }
230
+ assert .True (t , set , "query timeout deadline not set, expected it to be set" )
231
+ assert .True (t , - d >= 4.8 && - d <= 5.2 , "deadline %f, expected between 4.8-5.2s (5s client)" , d )
282
232
}
0 commit comments