@@ -31,13 +31,17 @@ func TestCheckInactiveUsers(t *testing.T) {
31
31
ctx , cancelFunc := context .WithCancel (context .Background ())
32
32
t .Cleanup (cancelFunc )
33
33
34
- inactiveUser1 := setupUser (ctx , t , db , "dormant-user-1@coder.com" , time .Now ().Add (- dormancyPeriod ).Add (- time .Minute ))
35
- inactiveUser2 := setupUser (ctx , t , db , "dormant-user-2@coder.com" , time .Now ().Add (- dormancyPeriod ).Add (- time .Hour ))
36
- inactiveUser3 := setupUser (ctx , t , db , "dormant-user-3@coder.com" , time .Now ().Add (- dormancyPeriod ).Add (- 6 * time .Hour ))
34
+ inactiveUser1 := setupUser (ctx , t , db , "dormant-user-1@coder.com" , database . UserStatusActive , time .Now ().Add (- dormancyPeriod ).Add (- time .Minute ))
35
+ inactiveUser2 := setupUser (ctx , t , db , "dormant-user-2@coder.com" , database . UserStatusActive , time .Now ().Add (- dormancyPeriod ).Add (- time .Hour ))
36
+ inactiveUser3 := setupUser (ctx , t , db , "dormant-user-3@coder.com" , database . UserStatusActive , time .Now ().Add (- dormancyPeriod ).Add (- 6 * time .Hour ))
37
37
38
- activeUser1 := setupUser (ctx , t , db , "active-user-1@coder.com" , time .Now ().Add (- dormancyPeriod ).Add (time .Minute ))
39
- activeUser2 := setupUser (ctx , t , db , "active-user-2@coder.com" , time .Now ().Add (- dormancyPeriod ).Add (time .Hour ))
40
- activeUser3 := setupUser (ctx , t , db , "active-user-3@coder.com" , time .Now ().Add (- dormancyPeriod ).Add (6 * time .Hour ))
38
+ activeUser1 := setupUser (ctx , t , db , "active-user-1@coder.com" , database .UserStatusActive , time .Now ().Add (- dormancyPeriod ).Add (time .Minute ))
39
+ activeUser2 := setupUser (ctx , t , db , "active-user-2@coder.com" , database .UserStatusActive , time .Now ().Add (- dormancyPeriod ).Add (time .Hour ))
40
+ activeUser3 := setupUser (ctx , t , db , "active-user-3@coder.com" , database .UserStatusActive , time .Now ().Add (- dormancyPeriod ).Add (6 * time .Hour ))
41
+
42
+ suspendedUser1 := setupUser (ctx , t , db , "suspended-user-1@coder.com" , database .UserStatusSuspended , time .Now ().Add (- dormancyPeriod ).Add (- time .Minute ))
43
+ suspendedUser2 := setupUser (ctx , t , db , "suspended-user-2@coder.com" , database .UserStatusSuspended , time .Now ().Add (- dormancyPeriod ).Add (- time .Hour ))
44
+ suspendedUser3 := setupUser (ctx , t , db , "suspended-user-3@coder.com" , database .UserStatusSuspended , time .Now ().Add (- dormancyPeriod ).Add (- 6 * time .Hour ))
41
45
42
46
// Run the periodic job
43
47
closeFunc := dormancy .CheckInactiveUsersWithOptions (ctx , logger , db , interval , dormancyPeriod )
@@ -51,14 +55,16 @@ func TestCheckInactiveUsers(t *testing.T) {
51
55
return false
52
56
}
53
57
54
- var c int
58
+ var dormant , suspended int
55
59
for _ , row := range rows {
56
60
if row .Status == database .UserStatusDormant {
57
- c ++
61
+ dormant ++
62
+ } else if row .Status == database .UserStatusSuspended {
63
+ suspended ++
58
64
}
59
65
}
60
- // 6 users in total, 3 dormant
61
- return len (rows ) == 6 && c == 3
66
+ // 6 users in total, 3 dormant, 3 suspended
67
+ return len (rows ) == 9 && dormant == 3 && suspended == 3
62
68
}, testutil .WaitShort , testutil .IntervalMedium )
63
69
64
70
allUsers := database .ConvertUserRows (rows )
@@ -71,17 +77,20 @@ func TestCheckInactiveUsers(t *testing.T) {
71
77
activeUser1 ,
72
78
activeUser2 ,
73
79
activeUser3 ,
80
+ suspendedUser1 ,
81
+ suspendedUser2 ,
82
+ suspendedUser3 ,
74
83
}
75
84
require .ElementsMatch (t , allUsers , expectedUsers )
76
85
}
77
86
78
- func setupUser (ctx context.Context , t * testing.T , db database.Store , email string , lastSeenAt time.Time ) database.User {
87
+ func setupUser (ctx context.Context , t * testing.T , db database.Store , email string , status database. UserStatus , lastSeenAt time.Time ) database.User {
79
88
t .Helper ()
80
89
81
90
user , err := db .InsertUser (ctx , database.InsertUserParams {ID : uuid .New (), LoginType : database .LoginTypePassword , Username : namesgenerator .GetRandomName (8 ), Email : email })
82
91
require .NoError (t , err )
83
92
// At the beginning of the test all users are marked as active
84
- user , err = db .UpdateUserStatus (ctx , database.UpdateUserStatusParams {ID : user .ID , Status : database . UserStatusActive })
93
+ user , err = db .UpdateUserStatus (ctx , database.UpdateUserStatusParams {ID : user .ID , Status : status })
85
94
require .NoError (t , err )
86
95
user , err = db .UpdateUserLastSeenAt (ctx , database.UpdateUserLastSeenAtParams {ID : user .ID , LastSeenAt : lastSeenAt })
87
96
require .NoError (t , err )
0 commit comments