@@ -31,6 +31,7 @@ type TestMongo struct {
31
31
}
32
32
33
33
type MockScheduler struct {
34
+ isReady bool
34
35
callCount int
35
36
callId string
36
37
}
@@ -40,7 +41,11 @@ func (scheduler *MockScheduler) ScheduleMessage(id string) {
40
41
scheduler .callId = id
41
42
}
42
43
43
- func SetupTest (t * testing.T , realInterceptor bool ) (TestMongo , * MockScheduler ) {
44
+ func (scheduler * MockScheduler ) Ready () bool {
45
+ return scheduler .isReady
46
+ }
47
+
48
+ func SetupTest (t * testing.T , realInterceptor bool , schedulerReady bool ) (TestMongo , * MockScheduler ) {
44
49
// Turn off logging except for fatals
45
50
log .SetLevel (log .FatalLevel )
46
51
@@ -53,7 +58,9 @@ func SetupTest(t *testing.T, realInterceptor bool) (TestMongo, *MockScheduler) {
53
58
mongo .Client .Database (os .Getenv ("MONGO_DB" )).Collection ("discord_messages" ).Drop (context .Background ())
54
59
55
60
// Mock scheduler
56
- scheduler := & MockScheduler {}
61
+ scheduler := & MockScheduler {
62
+ isReady : schedulerReady ,
63
+ }
57
64
58
65
var interceptor ecfmp_grpc.AuthInterceptor
59
66
if realInterceptor {
@@ -114,7 +121,7 @@ func setupGrpcClient() TestClient {
114
121
}
115
122
116
123
func Test_ItCreatesADiscordMessage (t * testing.T ) {
117
- mongo , scheduler := SetupTest (t , false )
124
+ mongo , scheduler := SetupTest (t , false , true )
118
125
defer mongo .tearDown ()
119
126
120
127
grpcClient := setupGrpcClient ()
@@ -177,7 +184,7 @@ func Test_ItCreatesADiscordMessage(t *testing.T) {
177
184
}
178
185
179
186
func Test_ItCreatesADiscordMessageWithNoContent (t * testing.T ) {
180
- mongo , scheduler := SetupTest (t , false )
187
+ mongo , scheduler := SetupTest (t , false , true )
181
188
defer mongo .tearDown ()
182
189
183
190
grpcClient := setupGrpcClient ()
@@ -240,7 +247,7 @@ func Test_ItCreatesADiscordMessageWithNoContent(t *testing.T) {
240
247
}
241
248
242
249
func Test_ItAllowsCreateIfAuthenticated (t * testing.T ) {
243
- mongo , _ := SetupTest (t , true )
250
+ mongo , _ := SetupTest (t , true , true )
244
251
defer mongo .tearDown ()
245
252
246
253
grpcClient := setupGrpcClient ()
@@ -289,7 +296,7 @@ func Test_ItAllowsCreateIfAuthenticated(t *testing.T) {
289
296
}
290
297
291
298
func Test_ItForbidsCreateIfNotAuthenticated (t * testing.T ) {
292
- mongo , _ := SetupTest (t , true )
299
+ mongo , _ := SetupTest (t , true , true )
293
300
defer mongo .tearDown ()
294
301
295
302
grpcClient := setupGrpcClient ()
@@ -336,7 +343,7 @@ func Test_ItForbidsCreateIfNotAuthenticated(t *testing.T) {
336
343
}
337
344
338
345
func Test_ItReturnsPrexistingIdIfRequestAlreadyExists (t * testing.T ) {
339
- mongo , scheduler := SetupTest (t , false )
346
+ mongo , scheduler := SetupTest (t , false , true )
340
347
defer mongo .tearDown ()
341
348
342
349
grpcClient := setupGrpcClient ()
@@ -358,7 +365,7 @@ func Test_ItReturnsPrexistingIdIfRequestAlreadyExists(t *testing.T) {
358
365
}
359
366
360
367
func Test_ItRejectsRequestsThatDontHaveAClientRequestId (t * testing.T ) {
361
- mongo , scheduler := SetupTest (t , false )
368
+ mongo , scheduler := SetupTest (t , false , true )
362
369
defer mongo .tearDown ()
363
370
364
371
grpcClient := setupGrpcClient ()
@@ -374,7 +381,7 @@ func Test_ItRejectsRequestsThatDontHaveAClientRequestId(t *testing.T) {
374
381
}
375
382
376
383
func Test_ItRejectsRequestsThatHaveAnEmptyClientRequestId (t * testing.T ) {
377
- mongo , scheduler := SetupTest (t , false )
384
+ mongo , scheduler := SetupTest (t , false , true )
378
385
defer mongo .tearDown ()
379
386
380
387
grpcClient := setupGrpcClient ()
@@ -392,7 +399,7 @@ func Test_ItRejectsRequestsThatHaveAnEmptyClientRequestId(t *testing.T) {
392
399
}
393
400
394
401
func Test_ItRejectsAMessageThatHasMissingChannel (t * testing.T ) {
395
- mongo , scheduler := SetupTest (t , false )
402
+ mongo , scheduler := SetupTest (t , false , true )
396
403
defer mongo .tearDown ()
397
404
398
405
grpcClient := setupGrpcClient ()
@@ -435,7 +442,7 @@ func Test_ItRejectsAMessageThatHasMissingChannel(t *testing.T) {
435
442
}
436
443
437
444
func Test_ItRejectsAMessageThatHasEmptyChannel (t * testing.T ) {
438
- mongo , scheduler := SetupTest (t , false )
445
+ mongo , scheduler := SetupTest (t , false , true )
439
446
defer mongo .tearDown ()
440
447
441
448
grpcClient := setupGrpcClient ()
@@ -479,7 +486,7 @@ func Test_ItRejectsAMessageThatHasEmptyChannel(t *testing.T) {
479
486
}
480
487
481
488
func Test_ItRejectsAMessageThatHasMissingFieldName (t * testing.T ) {
482
- mongo , scheduler := SetupTest (t , false )
489
+ mongo , scheduler := SetupTest (t , false , true )
483
490
defer mongo .tearDown ()
484
491
485
492
grpcClient := setupGrpcClient ()
@@ -523,7 +530,7 @@ func Test_ItRejectsAMessageThatHasMissingFieldName(t *testing.T) {
523
530
}
524
531
525
532
func Test_ItRejectsAMessageThatHasMissingFieldValue (t * testing.T ) {
526
- mongo , scheduler := SetupTest (t , false )
533
+ mongo , scheduler := SetupTest (t , false , true )
527
534
defer mongo .tearDown ()
528
535
529
536
grpcClient := setupGrpcClient ()
@@ -567,7 +574,7 @@ func Test_ItRejectsAMessageThatHasMissingFieldValue(t *testing.T) {
567
574
}
568
575
569
576
func Test_ItDoesAHealthCheck (t * testing.T ) {
570
- mongo , _ := SetupTest (t , false )
577
+ mongo , _ := SetupTest (t , false , true )
571
578
defer mongo .tearDown ()
572
579
573
580
grpcClient := setupGrpcClient ()
@@ -580,8 +587,22 @@ func Test_ItDoesAHealthCheck(t *testing.T) {
580
587
assert .Equal (t , resp .Status , pb_health .HealthCheckResponse_SERVING )
581
588
}
582
589
590
+ func Test_ItDoesAFailedHealthCheck (t * testing.T ) {
591
+ mongo , _ := SetupTest (t , false , false )
592
+ defer mongo .tearDown ()
593
+
594
+ grpcClient := setupGrpcClient ()
595
+ defer grpcClient .close ()
596
+
597
+ client := pb_health .NewHealthClient (grpcClient .conn )
598
+
599
+ resp , err := client .Check (context .Background (), & pb_health.HealthCheckRequest {})
600
+ assert .Nil (t , err )
601
+ assert .Equal (t , resp .Status , pb_health .HealthCheckResponse_NOT_SERVING )
602
+ }
603
+
583
604
func Test_ItDoesAHealthCheckIfUnauthenticated (t * testing.T ) {
584
- mongo , _ := SetupTest (t , true )
605
+ mongo , _ := SetupTest (t , true , true )
585
606
defer mongo .tearDown ()
586
607
587
608
grpcClient := setupGrpcClient ()
@@ -595,7 +616,7 @@ func Test_ItDoesAHealthCheckIfUnauthenticated(t *testing.T) {
595
616
}
596
617
597
618
func Test_ItUpdatesAMessage (t * testing.T ) {
598
- mongo , scheduler := SetupTest (t , false )
619
+ mongo , scheduler := SetupTest (t , false , true )
599
620
defer mongo .tearDown ()
600
621
601
622
grpcClient := setupGrpcClient ()
@@ -663,7 +684,7 @@ func Test_ItUpdatesAMessage(t *testing.T) {
663
684
}
664
685
665
686
func Test_ItUpdatesAMessageWithNoContent (t * testing.T ) {
666
- mongo , scheduler := SetupTest (t , false )
687
+ mongo , scheduler := SetupTest (t , false , true )
667
688
defer mongo .tearDown ()
668
689
669
690
grpcClient := setupGrpcClient ()
@@ -731,7 +752,7 @@ func Test_ItUpdatesAMessageWithNoContent(t *testing.T) {
731
752
}
732
753
733
754
func Test_ItUpdatesAMessageIfAuthenticated (t * testing.T ) {
734
- mongo , _ := SetupTest (t , true )
755
+ mongo , _ := SetupTest (t , true , true )
735
756
defer mongo .tearDown ()
736
757
737
758
grpcClient := setupGrpcClient ()
@@ -785,7 +806,7 @@ func Test_ItUpdatesAMessageIfAuthenticated(t *testing.T) {
785
806
}
786
807
787
808
func Test_ItRejectsAMessageIfNotAuthenticated (t * testing.T ) {
788
- mongo , _ := SetupTest (t , true )
809
+ mongo , _ := SetupTest (t , true , true )
789
810
defer mongo .tearDown ()
790
811
791
812
grpcClient := setupGrpcClient ()
@@ -835,7 +856,7 @@ func Test_ItRejectsAMessageIfNotAuthenticated(t *testing.T) {
835
856
}
836
857
837
858
func Test_ItDoesntUpdateAMessageNotFound (t * testing.T ) {
838
- mongo , scheduler := SetupTest (t , false )
859
+ mongo , scheduler := SetupTest (t , false , true )
839
860
defer mongo .tearDown ()
840
861
841
862
grpcClient := setupGrpcClient ()
@@ -856,7 +877,7 @@ func Test_ItDoesntUpdateAMessageNotFound(t *testing.T) {
856
877
}
857
878
858
879
func Test_ItDoesntUpdateAMessageNoIdSpecified (t * testing.T ) {
859
- mongo , scheduler := SetupTest (t , false )
880
+ mongo , scheduler := SetupTest (t , false , true )
860
881
defer mongo .tearDown ()
861
882
862
883
grpcClient := setupGrpcClient ()
@@ -877,7 +898,7 @@ func Test_ItDoesntUpdateAMessageNoIdSpecified(t *testing.T) {
877
898
}
878
899
879
900
func Test_ItRejectsAnUpdateThatHasMissingFieldName (t * testing.T ) {
880
- mongo , scheduler := SetupTest (t , false )
901
+ mongo , scheduler := SetupTest (t , false , true )
881
902
defer mongo .tearDown ()
882
903
883
904
grpcClient := setupGrpcClient ()
@@ -924,7 +945,7 @@ func Test_ItRejectsAnUpdateThatHasMissingFieldName(t *testing.T) {
924
945
}
925
946
926
947
func Test_ItRejectsAnUpdateThatHasMissingFieldValue (t * testing.T ) {
927
- mongo , scheduler := SetupTest (t , false )
948
+ mongo , scheduler := SetupTest (t , false , true )
928
949
defer mongo .tearDown ()
929
950
930
951
grpcClient := setupGrpcClient ()
@@ -971,7 +992,7 @@ func Test_ItRejectsAnUpdateThatHasMissingFieldValue(t *testing.T) {
971
992
}
972
993
973
994
func Test_ItDoesntUpdateAMessageClientRequestIdEmpty (t * testing.T ) {
974
- mongo , scheduler := SetupTest (t , false )
995
+ mongo , scheduler := SetupTest (t , false , true )
975
996
defer mongo .tearDown ()
976
997
977
998
grpcClient := setupGrpcClient ()
@@ -992,7 +1013,7 @@ func Test_ItDoesntUpdateAMessageClientRequestIdEmpty(t *testing.T) {
992
1013
}
993
1014
994
1015
func Test_ItDoesntUpdateAMessageClientRequestIdMissing (t * testing.T ) {
995
- mongo , scheduler := SetupTest (t , false )
1016
+ mongo , scheduler := SetupTest (t , false , true )
996
1017
defer mongo .tearDown ()
997
1018
998
1019
grpcClient := setupGrpcClient ()
@@ -1011,7 +1032,7 @@ func Test_ItDoesntUpdateAMessageClientRequestIdMissing(t *testing.T) {
1011
1032
}
1012
1033
1013
1034
func Test_ItCanCreateThenUpdateAMessage (t * testing.T ) {
1014
- mongo , scheduler := SetupTest (t , false )
1035
+ mongo , scheduler := SetupTest (t , false , true )
1015
1036
defer mongo .tearDown ()
1016
1037
1017
1038
grpcClient := setupGrpcClient ()
0 commit comments