Skip to content

Commit c110483

Browse files
committed
fix test
1 parent 0e093e3 commit c110483

File tree

1 file changed

+31
-50
lines changed

1 file changed

+31
-50
lines changed

coderd/database/querier_test.go

Lines changed: 31 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import (
77
"database/sql"
88
"encoding/json"
99
"fmt"
10-
"maps"
1110
"sort"
1211
"testing"
1312
"time"
@@ -2743,8 +2742,8 @@ func TestGetUserStatusCounts(t *testing.T) {
27432742
for _, tc := range testCases {
27442743
tc := tc
27452744
t.Run(tc.name, func(t *testing.T) {
2746-
t.SkipNow()
27472745
t.Parallel()
2746+
27482747
db, _ := dbtestutil.NewDB(t)
27492748
ctx := testutil.Context(t, testutil.WaitShort)
27502749

@@ -2776,66 +2775,48 @@ func TestGetUserStatusCounts(t *testing.T) {
27762775
require.NoError(t, err)
27772776

27782777
userStatusChanges, err := db.GetUserStatusCounts(ctx, database.GetUserStatusCountsParams{
2779-
StartTime: createdAt,
2780-
EndTime: today,
2778+
StartTime: dbtime.StartOfDay(createdAt),
2779+
EndTime: dbtime.StartOfDay(today),
27812780
})
27822781
require.NoError(t, err)
27832782
require.NotEmpty(t, userStatusChanges)
2784-
gotCounts := map[time.Time]map[database.UserStatus]int64{
2785-
createdAt.In(location): {},
2786-
firstTransitionTime.In(location): {},
2787-
secondTransitionTime.In(location): {},
2788-
today.In(location): {},
2789-
}
2783+
gotCounts := map[time.Time]map[database.UserStatus]int64{}
27902784
for _, row := range userStatusChanges {
27912785
dateInLocation := row.Date.In(location)
2792-
switch {
2793-
case dateInLocation.Equal(createdAt.In(location)):
2794-
gotCounts[createdAt][row.Status] = row.Count
2795-
case dateInLocation.Equal(firstTransitionTime.In(location)):
2796-
gotCounts[firstTransitionTime][row.Status] = row.Count
2797-
case dateInLocation.Equal(secondTransitionTime.In(location)):
2798-
gotCounts[secondTransitionTime][row.Status] = row.Count
2799-
case dateInLocation.Equal(today.In(location)):
2800-
gotCounts[today][row.Status] = row.Count
2801-
default:
2802-
t.Fatalf("unexpected date %s", row.Date)
2786+
if gotCounts[dateInLocation] == nil {
2787+
gotCounts[dateInLocation] = map[database.UserStatus]int64{}
28032788
}
2789+
gotCounts[dateInLocation][row.Status] = row.Count
28042790
}
28052791

28062792
expectedCounts := map[time.Time]map[database.UserStatus]int64{}
2807-
for _, status := range []database.UserStatus{
2808-
tc.user1Transition.from,
2809-
tc.user1Transition.to,
2810-
tc.user2Transition.from,
2811-
tc.user2Transition.to,
2812-
} {
2813-
if _, ok := expectedCounts[createdAt]; !ok {
2814-
expectedCounts[createdAt] = map[database.UserStatus]int64{}
2793+
for d := dbtime.StartOfDay(createdAt); !d.After(dbtime.StartOfDay(today)); d = d.AddDate(0, 0, 1) {
2794+
expectedCounts[d] = map[database.UserStatus]int64{}
2795+
2796+
// Default values
2797+
expectedCounts[d][tc.user1Transition.from] = 0
2798+
expectedCounts[d][tc.user1Transition.to] = 0
2799+
expectedCounts[d][tc.user2Transition.from] = 0
2800+
expectedCounts[d][tc.user2Transition.to] = 0
2801+
2802+
// Counted Values
2803+
if d.Before(createdAt) {
2804+
continue
2805+
} else if d.Before(firstTransitionTime) {
2806+
expectedCounts[d][tc.user1Transition.from]++
2807+
expectedCounts[d][tc.user2Transition.from]++
2808+
} else if d.Before(secondTransitionTime) {
2809+
expectedCounts[d][tc.user1Transition.to]++
2810+
expectedCounts[d][tc.user2Transition.from]++
2811+
} else if d.Before(today) {
2812+
expectedCounts[d][tc.user1Transition.to]++
2813+
expectedCounts[d][tc.user2Transition.to]++
2814+
} else {
2815+
t.Fatalf("date %q beyond expected range end %q", d, today)
28152816
}
2816-
expectedCounts[createdAt][status] = 0
28172817
}
28182818

2819-
expectedCounts[createdAt][tc.user1Transition.from]++
2820-
expectedCounts[createdAt][tc.user2Transition.from]++
2821-
2822-
expectedCounts[firstTransitionTime] = map[database.UserStatus]int64{}
2823-
maps.Copy(expectedCounts[firstTransitionTime], expectedCounts[createdAt])
2824-
expectedCounts[firstTransitionTime][tc.user1Transition.from]--
2825-
expectedCounts[firstTransitionTime][tc.user1Transition.to]++
2826-
2827-
expectedCounts[secondTransitionTime] = map[database.UserStatus]int64{}
2828-
maps.Copy(expectedCounts[secondTransitionTime], expectedCounts[firstTransitionTime])
2829-
expectedCounts[secondTransitionTime][tc.user2Transition.from]--
2830-
expectedCounts[secondTransitionTime][tc.user2Transition.to]++
2831-
2832-
expectedCounts[today] = map[database.UserStatus]int64{}
2833-
maps.Copy(expectedCounts[today], expectedCounts[secondTransitionTime])
2834-
2835-
require.Equal(t, expectedCounts[createdAt], gotCounts[createdAt])
2836-
require.Equal(t, expectedCounts[firstTransitionTime], gotCounts[firstTransitionTime])
2837-
require.Equal(t, expectedCounts[secondTransitionTime], gotCounts[secondTransitionTime])
2838-
require.Equal(t, expectedCounts[today], gotCounts[today])
2819+
require.Equal(t, expectedCounts, gotCounts)
28392820
})
28402821
}
28412822
})

0 commit comments

Comments
 (0)