Skip to content

Commit 9dd13b0

Browse files
authored
Merge pull request #1077 from wakatime/misc/cleanup-tests
Cleanup tests and remove unused pointer
2 parents 35e88b4 + 2ace324 commit 9dd13b0

File tree

3 files changed

+73
-11
lines changed

3 files changed

+73
-11
lines changed

cmd/heartbeat/heartbeat_test.go

+50-8
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ import (
3535
)
3636

3737
func TestSendHeartbeats(t *testing.T) {
38+
resetSingleton(t)
39+
3840
testServerURL, router, tearDown := setupTestServer()
3941
defer tearDown()
4042

@@ -120,6 +122,8 @@ func TestSendHeartbeats(t *testing.T) {
120122
}
121123

122124
func TestSendHeartbeats_RateLimited(t *testing.T) {
125+
resetSingleton(t)
126+
123127
testServerURL, router, tearDown := setupTestServer()
124128
defer tearDown()
125129

@@ -133,6 +137,11 @@ func TestSendHeartbeats_RateLimited(t *testing.T) {
133137
numCalls++
134138
})
135139

140+
tmpFile, err := os.CreateTemp(t.TempDir(), "wakatime")
141+
require.NoError(t, err)
142+
143+
defer tmpFile.Close()
144+
136145
v := viper.New()
137146
v.SetDefault("sync-offline-activity", 1000)
138147
v.Set("api-url", testServerURL)
@@ -152,6 +161,7 @@ func TestSendHeartbeats_RateLimited(t *testing.T) {
152161
v.Set("timeout", 5)
153162
v.Set("write", true)
154163
v.Set("heartbeat-rate-limit-seconds", 500)
164+
v.Set("internal-config", tmpFile.Name())
155165
v.Set("internal.heartbeats_last_sent_at", time.Now().Add(-time.Minute).Format(time.RFC3339))
156166

157167
offlineQueueFile, err := os.CreateTemp(t.TempDir(), "")
@@ -164,6 +174,8 @@ func TestSendHeartbeats_RateLimited(t *testing.T) {
164174
}
165175

166176
func TestSendHeartbeats_WithFiltering_Exclude(t *testing.T) {
177+
resetSingleton(t)
178+
167179
testServerURL, router, tearDown := setupTestServer()
168180
defer tearDown()
169181

@@ -198,6 +210,8 @@ func TestSendHeartbeats_WithFiltering_Exclude(t *testing.T) {
198210
}
199211

200212
func TestSendHeartbeats_ExtraHeartbeats(t *testing.T) {
213+
resetSingleton(t)
214+
201215
testServerURL, router, tearDown := setupTestServer()
202216
defer tearDown()
203217

@@ -292,8 +306,6 @@ func TestSendHeartbeats_ExtraHeartbeats(t *testing.T) {
292306

293307
os.Stdin = r
294308

295-
cmdparams.Once = sync.Once{}
296-
297309
data, err := os.ReadFile("testdata/extra_heartbeats.json")
298310
require.NoError(t, err)
299311

@@ -340,6 +352,8 @@ func TestSendHeartbeats_ExtraHeartbeats(t *testing.T) {
340352
}
341353

342354
func TestSendHeartbeats_ExtraHeartbeats_Sanitize(t *testing.T) {
355+
resetSingleton(t)
356+
343357
testServerURL, router, tearDown := setupTestServer()
344358
defer tearDown()
345359

@@ -376,8 +390,6 @@ func TestSendHeartbeats_ExtraHeartbeats_Sanitize(t *testing.T) {
376390

377391
os.Stdin = r
378392

379-
cmdparams.Once = sync.Once{}
380-
381393
data, err := os.ReadFile("testdata/extra_heartbeats.json")
382394
require.NoError(t, err)
383395

@@ -476,6 +488,8 @@ func TestSendHeartbeats_ExtraHeartbeats_Sanitize(t *testing.T) {
476488
}
477489

478490
func TestSendHeartbeats_NonExistingEntity(t *testing.T) {
491+
resetSingleton(t)
492+
479493
tmpDir := t.TempDir()
480494

481495
logFile, err := os.CreateTemp(tmpDir, "")
@@ -518,6 +532,8 @@ func TestSendHeartbeats_NonExistingEntity(t *testing.T) {
518532
}
519533

520534
func TestSendHeartbeats_IsUnsavedEntity(t *testing.T) {
535+
resetSingleton(t)
536+
521537
testServerURL, router, tearDown := setupTestServer()
522538
defer tearDown()
523539

@@ -586,8 +602,6 @@ func TestSendHeartbeats_IsUnsavedEntity(t *testing.T) {
586602

587603
os.Stdin = inr
588604

589-
cmdparams.Once = sync.Once{}
590-
591605
data, err := os.ReadFile("testdata/extra_heartbeats_is_unsaved_entity.json")
592606
require.NoError(t, err)
593607

@@ -652,6 +666,8 @@ func TestSendHeartbeats_IsUnsavedEntity(t *testing.T) {
652666
}
653667

654668
func TestSendHeartbeats_NonExistingExtraHeartbeatsEntity(t *testing.T) {
669+
resetSingleton(t)
670+
655671
testServerURL, router, tearDown := setupTestServer()
656672
defer tearDown()
657673

@@ -718,8 +734,6 @@ func TestSendHeartbeats_NonExistingExtraHeartbeatsEntity(t *testing.T) {
718734

719735
os.Stdin = inr
720736

721-
cmdparams.Once = sync.Once{}
722-
723737
data, err := os.ReadFile("testdata/extra_heartbeats_nonexisting_entity.json")
724738
require.NoError(t, err)
725739

@@ -776,6 +790,8 @@ func TestSendHeartbeats_NonExistingExtraHeartbeatsEntity(t *testing.T) {
776790
}
777791

778792
func TestSendHeartbeats_ErrAuth_UnsetAPIKey(t *testing.T) {
793+
resetSingleton(t)
794+
779795
_, router, tearDown := setupTestServer()
780796
defer tearDown()
781797

@@ -811,6 +827,8 @@ func TestSendHeartbeats_ErrAuth_UnsetAPIKey(t *testing.T) {
811827
}
812828

813829
func TestSendHeartbeats_ErrBackoff(t *testing.T) {
830+
resetSingleton(t)
831+
814832
testServerURL, router, tearDown := setupTestServer()
815833
defer tearDown()
816834

@@ -874,6 +892,8 @@ func TestSendHeartbeats_ErrBackoff(t *testing.T) {
874892
}
875893

876894
func TestSendHeartbeats_ErrBackoff_Verbose(t *testing.T) {
895+
resetSingleton(t)
896+
877897
testServerURL, router, tearDown := setupTestServer()
878898
defer tearDown()
879899

@@ -938,6 +958,8 @@ func TestSendHeartbeats_ErrBackoff_Verbose(t *testing.T) {
938958
}
939959

940960
func TestSendHeartbeats_ObfuscateProject(t *testing.T) {
961+
resetSingleton(t)
962+
941963
testServerURL, router, tearDown := setupTestServer()
942964
defer tearDown()
943965

@@ -1022,6 +1044,8 @@ func TestSendHeartbeats_ObfuscateProject(t *testing.T) {
10221044
}
10231045

10241046
func TestSendHeartbeats_ObfuscateProjectNotBranch(t *testing.T) {
1047+
resetSingleton(t)
1048+
10251049
testServerURL, router, tearDown := setupTestServer()
10261050
defer tearDown()
10271051

@@ -1107,6 +1131,8 @@ func TestSendHeartbeats_ObfuscateProjectNotBranch(t *testing.T) {
11071131
}
11081132

11091133
func TestRateLimited(t *testing.T) {
1134+
resetSingleton(t)
1135+
11101136
p := cmdheartbeat.RateLimitParams{
11111137
Timeout: time.Duration(offline.RateLimitDefaultSeconds) * time.Second,
11121138
LastSentAt: time.Now(),
@@ -1116,6 +1142,8 @@ func TestRateLimited(t *testing.T) {
11161142
}
11171143

11181144
func TestRateLimited_NotLimited(t *testing.T) {
1145+
resetSingleton(t)
1146+
11191147
p := cmdheartbeat.RateLimitParams{
11201148
LastSentAt: time.Now().Add(time.Duration(-offline.RateLimitDefaultSeconds*2) * time.Second),
11211149
Timeout: time.Duration(offline.RateLimitDefaultSeconds) * time.Second,
@@ -1125,6 +1153,8 @@ func TestRateLimited_NotLimited(t *testing.T) {
11251153
}
11261154

11271155
func TestRateLimited_Disabled(t *testing.T) {
1156+
resetSingleton(t)
1157+
11281158
p := cmdheartbeat.RateLimitParams{
11291159
Disabled: true,
11301160
}
@@ -1133,6 +1163,8 @@ func TestRateLimited_Disabled(t *testing.T) {
11331163
}
11341164

11351165
func TestRateLimited_TimeoutZero(t *testing.T) {
1166+
resetSingleton(t)
1167+
11361168
p := cmdheartbeat.RateLimitParams{
11371169
LastSentAt: time.Time{},
11381170
}
@@ -1141,6 +1173,8 @@ func TestRateLimited_TimeoutZero(t *testing.T) {
11411173
}
11421174

11431175
func TestRateLimited_LastSentAtZero(t *testing.T) {
1176+
resetSingleton(t)
1177+
11441178
p := cmdheartbeat.RateLimitParams{
11451179
Timeout: 0,
11461180
}
@@ -1149,6 +1183,8 @@ func TestRateLimited_LastSentAtZero(t *testing.T) {
11491183
}
11501184

11511185
func TestResetRateLimit(t *testing.T) {
1186+
resetSingleton(t)
1187+
11521188
tmpFile, err := os.CreateTemp(t.TempDir(), "wakatime")
11531189
require.NoError(t, err)
11541190

@@ -1216,3 +1252,9 @@ func copyFile(t *testing.T, source, destination string) {
12161252
err = os.WriteFile(destination, input, 0600)
12171253
require.NoError(t, err)
12181254
}
1255+
1256+
func resetSingleton(t *testing.T) {
1257+
t.Helper()
1258+
1259+
cmdparams.Once = sync.Once{}
1260+
}

cmd/offlinesync/offlinesync_test.go

+20
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,12 @@ import (
88
"net/http/httptest"
99
"os"
1010
"strings"
11+
"sync"
1112
"testing"
1213
"time"
1314

1415
"github.com/wakatime/wakatime-cli/cmd/offlinesync"
16+
cmdparams "github.com/wakatime/wakatime-cli/cmd/params"
1517
"github.com/wakatime/wakatime-cli/pkg/exitcode"
1618
"github.com/wakatime/wakatime-cli/pkg/heartbeat"
1719

@@ -22,6 +24,8 @@ import (
2224
)
2325

2426
func TestRunWithRateLimiting(t *testing.T) {
27+
resetSingleton(t)
28+
2529
testServerURL, router, tearDown := setupTestServer()
2630
defer tearDown()
2731

@@ -112,6 +116,8 @@ func TestRunWithRateLimiting(t *testing.T) {
112116
}
113117

114118
func TestRunWithoutRateLimiting(t *testing.T) {
119+
resetSingleton(t)
120+
115121
testServerURL, router, tearDown := setupTestServer()
116122
defer tearDown()
117123

@@ -202,6 +208,8 @@ func TestRunWithoutRateLimiting(t *testing.T) {
202208
}
203209

204210
func TestRunWithRateLimiting_RateLimited(t *testing.T) {
211+
resetSingleton(t)
212+
205213
v := viper.New()
206214
v.Set("key", "00000000-0000-4000-8000-000000000000")
207215
v.Set("heartbeat-rate-limit-seconds", 500)
@@ -214,6 +222,8 @@ func TestRunWithRateLimiting_RateLimited(t *testing.T) {
214222
}
215223

216224
func TestSyncOfflineActivity(t *testing.T) {
225+
resetSingleton(t)
226+
217227
testServerURL, router, tearDown := setupTestServer()
218228
defer tearDown()
219229

@@ -302,6 +312,8 @@ func TestSyncOfflineActivity(t *testing.T) {
302312
}
303313

304314
func TestSyncOfflineActivity_QueueFileFromConfig(t *testing.T) {
315+
resetSingleton(t)
316+
305317
testServerURL, router, tearDown := setupTestServer()
306318
defer tearDown()
307319

@@ -391,6 +403,8 @@ func TestSyncOfflineActivity_QueueFileFromConfig(t *testing.T) {
391403
}
392404

393405
func TestSyncOfflineActivity_MultipleApiKey(t *testing.T) {
406+
resetSingleton(t)
407+
394408
testServerURL, router, tearDown := setupTestServer()
395409
defer tearDown()
396410

@@ -515,3 +529,9 @@ func insertHeartbeatRecord(t *testing.T, db *bolt.DB, bucket string, h heartbeat
515529
})
516530
require.NoError(t, err)
517531
}
532+
533+
func resetSingleton(t *testing.T) {
534+
t.Helper()
535+
536+
cmdparams.Once = sync.Once{}
537+
}

cmd/params/params.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -750,7 +750,7 @@ func readAPIKeyFromCommand(cmdStr string) (string, error) {
750750
return strings.TrimSpace(string(out)), nil
751751
}
752752

753-
var extraHeartbeatsCache *[]heartbeat.Heartbeat // nolint:gochecknoglobals
753+
var extraHeartbeatsCache []heartbeat.Heartbeat // nolint:gochecknoglobals
754754

755755
// Once prevents reading from stdin twice.
756756
var Once sync.Once // nolint:gochecknoglobals
@@ -769,10 +769,10 @@ func readExtraHeartbeats() []heartbeat.Heartbeat {
769769
log.Errorf("failed parsing: %s", err)
770770
}
771771

772-
extraHeartbeatsCache = &heartbeats
772+
extraHeartbeatsCache = heartbeats
773773
})
774774

775-
return *extraHeartbeatsCache
775+
return extraHeartbeatsCache
776776
}
777777

778778
func parseExtraHeartbeats(data string) ([]heartbeat.Heartbeat, error) {

0 commit comments

Comments
 (0)