@@ -35,6 +35,8 @@ import (
35
35
)
36
36
37
37
func TestSendHeartbeats (t * testing.T ) {
38
+ resetSingleton (t )
39
+
38
40
testServerURL , router , tearDown := setupTestServer ()
39
41
defer tearDown ()
40
42
@@ -120,6 +122,8 @@ func TestSendHeartbeats(t *testing.T) {
120
122
}
121
123
122
124
func TestSendHeartbeats_RateLimited (t * testing.T ) {
125
+ resetSingleton (t )
126
+
123
127
testServerURL , router , tearDown := setupTestServer ()
124
128
defer tearDown ()
125
129
@@ -133,6 +137,11 @@ func TestSendHeartbeats_RateLimited(t *testing.T) {
133
137
numCalls ++
134
138
})
135
139
140
+ tmpFile , err := os .CreateTemp (t .TempDir (), "wakatime" )
141
+ require .NoError (t , err )
142
+
143
+ defer tmpFile .Close ()
144
+
136
145
v := viper .New ()
137
146
v .SetDefault ("sync-offline-activity" , 1000 )
138
147
v .Set ("api-url" , testServerURL )
@@ -152,6 +161,7 @@ func TestSendHeartbeats_RateLimited(t *testing.T) {
152
161
v .Set ("timeout" , 5 )
153
162
v .Set ("write" , true )
154
163
v .Set ("heartbeat-rate-limit-seconds" , 500 )
164
+ v .Set ("internal-config" , tmpFile .Name ())
155
165
v .Set ("internal.heartbeats_last_sent_at" , time .Now ().Add (- time .Minute ).Format (time .RFC3339 ))
156
166
157
167
offlineQueueFile , err := os .CreateTemp (t .TempDir (), "" )
@@ -164,6 +174,8 @@ func TestSendHeartbeats_RateLimited(t *testing.T) {
164
174
}
165
175
166
176
func TestSendHeartbeats_WithFiltering_Exclude (t * testing.T ) {
177
+ resetSingleton (t )
178
+
167
179
testServerURL , router , tearDown := setupTestServer ()
168
180
defer tearDown ()
169
181
@@ -198,6 +210,8 @@ func TestSendHeartbeats_WithFiltering_Exclude(t *testing.T) {
198
210
}
199
211
200
212
func TestSendHeartbeats_ExtraHeartbeats (t * testing.T ) {
213
+ resetSingleton (t )
214
+
201
215
testServerURL , router , tearDown := setupTestServer ()
202
216
defer tearDown ()
203
217
@@ -292,8 +306,6 @@ func TestSendHeartbeats_ExtraHeartbeats(t *testing.T) {
292
306
293
307
os .Stdin = r
294
308
295
- cmdparams .Once = sync.Once {}
296
-
297
309
data , err := os .ReadFile ("testdata/extra_heartbeats.json" )
298
310
require .NoError (t , err )
299
311
@@ -340,6 +352,8 @@ func TestSendHeartbeats_ExtraHeartbeats(t *testing.T) {
340
352
}
341
353
342
354
func TestSendHeartbeats_ExtraHeartbeats_Sanitize (t * testing.T ) {
355
+ resetSingleton (t )
356
+
343
357
testServerURL , router , tearDown := setupTestServer ()
344
358
defer tearDown ()
345
359
@@ -376,8 +390,6 @@ func TestSendHeartbeats_ExtraHeartbeats_Sanitize(t *testing.T) {
376
390
377
391
os .Stdin = r
378
392
379
- cmdparams .Once = sync.Once {}
380
-
381
393
data , err := os .ReadFile ("testdata/extra_heartbeats.json" )
382
394
require .NoError (t , err )
383
395
@@ -476,6 +488,8 @@ func TestSendHeartbeats_ExtraHeartbeats_Sanitize(t *testing.T) {
476
488
}
477
489
478
490
func TestSendHeartbeats_NonExistingEntity (t * testing.T ) {
491
+ resetSingleton (t )
492
+
479
493
tmpDir := t .TempDir ()
480
494
481
495
logFile , err := os .CreateTemp (tmpDir , "" )
@@ -518,6 +532,8 @@ func TestSendHeartbeats_NonExistingEntity(t *testing.T) {
518
532
}
519
533
520
534
func TestSendHeartbeats_IsUnsavedEntity (t * testing.T ) {
535
+ resetSingleton (t )
536
+
521
537
testServerURL , router , tearDown := setupTestServer ()
522
538
defer tearDown ()
523
539
@@ -586,8 +602,6 @@ func TestSendHeartbeats_IsUnsavedEntity(t *testing.T) {
586
602
587
603
os .Stdin = inr
588
604
589
- cmdparams .Once = sync.Once {}
590
-
591
605
data , err := os .ReadFile ("testdata/extra_heartbeats_is_unsaved_entity.json" )
592
606
require .NoError (t , err )
593
607
@@ -652,6 +666,8 @@ func TestSendHeartbeats_IsUnsavedEntity(t *testing.T) {
652
666
}
653
667
654
668
func TestSendHeartbeats_NonExistingExtraHeartbeatsEntity (t * testing.T ) {
669
+ resetSingleton (t )
670
+
655
671
testServerURL , router , tearDown := setupTestServer ()
656
672
defer tearDown ()
657
673
@@ -718,8 +734,6 @@ func TestSendHeartbeats_NonExistingExtraHeartbeatsEntity(t *testing.T) {
718
734
719
735
os .Stdin = inr
720
736
721
- cmdparams .Once = sync.Once {}
722
-
723
737
data , err := os .ReadFile ("testdata/extra_heartbeats_nonexisting_entity.json" )
724
738
require .NoError (t , err )
725
739
@@ -776,6 +790,8 @@ func TestSendHeartbeats_NonExistingExtraHeartbeatsEntity(t *testing.T) {
776
790
}
777
791
778
792
func TestSendHeartbeats_ErrAuth_UnsetAPIKey (t * testing.T ) {
793
+ resetSingleton (t )
794
+
779
795
_ , router , tearDown := setupTestServer ()
780
796
defer tearDown ()
781
797
@@ -811,6 +827,8 @@ func TestSendHeartbeats_ErrAuth_UnsetAPIKey(t *testing.T) {
811
827
}
812
828
813
829
func TestSendHeartbeats_ErrBackoff (t * testing.T ) {
830
+ resetSingleton (t )
831
+
814
832
testServerURL , router , tearDown := setupTestServer ()
815
833
defer tearDown ()
816
834
@@ -874,6 +892,8 @@ func TestSendHeartbeats_ErrBackoff(t *testing.T) {
874
892
}
875
893
876
894
func TestSendHeartbeats_ErrBackoff_Verbose (t * testing.T ) {
895
+ resetSingleton (t )
896
+
877
897
testServerURL , router , tearDown := setupTestServer ()
878
898
defer tearDown ()
879
899
@@ -938,6 +958,8 @@ func TestSendHeartbeats_ErrBackoff_Verbose(t *testing.T) {
938
958
}
939
959
940
960
func TestSendHeartbeats_ObfuscateProject (t * testing.T ) {
961
+ resetSingleton (t )
962
+
941
963
testServerURL , router , tearDown := setupTestServer ()
942
964
defer tearDown ()
943
965
@@ -1022,6 +1044,8 @@ func TestSendHeartbeats_ObfuscateProject(t *testing.T) {
1022
1044
}
1023
1045
1024
1046
func TestSendHeartbeats_ObfuscateProjectNotBranch (t * testing.T ) {
1047
+ resetSingleton (t )
1048
+
1025
1049
testServerURL , router , tearDown := setupTestServer ()
1026
1050
defer tearDown ()
1027
1051
@@ -1107,6 +1131,8 @@ func TestSendHeartbeats_ObfuscateProjectNotBranch(t *testing.T) {
1107
1131
}
1108
1132
1109
1133
func TestRateLimited (t * testing.T ) {
1134
+ resetSingleton (t )
1135
+
1110
1136
p := cmdheartbeat.RateLimitParams {
1111
1137
Timeout : time .Duration (offline .RateLimitDefaultSeconds ) * time .Second ,
1112
1138
LastSentAt : time .Now (),
@@ -1116,6 +1142,8 @@ func TestRateLimited(t *testing.T) {
1116
1142
}
1117
1143
1118
1144
func TestRateLimited_NotLimited (t * testing.T ) {
1145
+ resetSingleton (t )
1146
+
1119
1147
p := cmdheartbeat.RateLimitParams {
1120
1148
LastSentAt : time .Now ().Add (time .Duration (- offline .RateLimitDefaultSeconds * 2 ) * time .Second ),
1121
1149
Timeout : time .Duration (offline .RateLimitDefaultSeconds ) * time .Second ,
@@ -1125,6 +1153,8 @@ func TestRateLimited_NotLimited(t *testing.T) {
1125
1153
}
1126
1154
1127
1155
func TestRateLimited_Disabled (t * testing.T ) {
1156
+ resetSingleton (t )
1157
+
1128
1158
p := cmdheartbeat.RateLimitParams {
1129
1159
Disabled : true ,
1130
1160
}
@@ -1133,6 +1163,8 @@ func TestRateLimited_Disabled(t *testing.T) {
1133
1163
}
1134
1164
1135
1165
func TestRateLimited_TimeoutZero (t * testing.T ) {
1166
+ resetSingleton (t )
1167
+
1136
1168
p := cmdheartbeat.RateLimitParams {
1137
1169
LastSentAt : time.Time {},
1138
1170
}
@@ -1141,6 +1173,8 @@ func TestRateLimited_TimeoutZero(t *testing.T) {
1141
1173
}
1142
1174
1143
1175
func TestRateLimited_LastSentAtZero (t * testing.T ) {
1176
+ resetSingleton (t )
1177
+
1144
1178
p := cmdheartbeat.RateLimitParams {
1145
1179
Timeout : 0 ,
1146
1180
}
@@ -1149,6 +1183,8 @@ func TestRateLimited_LastSentAtZero(t *testing.T) {
1149
1183
}
1150
1184
1151
1185
func TestResetRateLimit (t * testing.T ) {
1186
+ resetSingleton (t )
1187
+
1152
1188
tmpFile , err := os .CreateTemp (t .TempDir (), "wakatime" )
1153
1189
require .NoError (t , err )
1154
1190
@@ -1216,3 +1252,9 @@ func copyFile(t *testing.T, source, destination string) {
1216
1252
err = os .WriteFile (destination , input , 0600 )
1217
1253
require .NoError (t , err )
1218
1254
}
1255
+
1256
+ func resetSingleton (t * testing.T ) {
1257
+ t .Helper ()
1258
+
1259
+ cmdparams .Once = sync.Once {}
1260
+ }
0 commit comments