@@ -36,22 +36,21 @@ func (m *mockDelegate) getCalls() int {
3636 return m .calls
3737}
3838
39- func counterValue (c prometheus.Counter ) float64 {
39+ func counterValue (t * testing.T , c prometheus.Counter ) float64 {
40+ t .Helper ()
4041 var m dto.Metric
41- if err := c .(prometheus.Metric ).Write (& m ); err != nil {
42- return 0
43- }
42+ require .NoError (t , c .(prometheus.Metric ).Write (& m ))
4443 return m .GetCounter ().GetValue ()
4544}
4645
47- func newTestChecker (delegate * mockDelegate , ttl time. Duration ) * auth.CachedAdminChecker {
46+ func newTestChecker (delegate * mockDelegate ) * auth.CachedAdminChecker {
4847 reg := prometheus .NewRegistry ()
49- return auth .NewCachedAdminChecker (delegate , ttl , reg , nil )
48+ return auth .NewCachedAdminChecker (delegate , time . Minute , reg , nil )
5049}
5150
5251func TestCachedAdminChecker_CacheHit (t * testing.T ) {
5352 delegate := & mockDelegate {response : true }
54- checker := newTestChecker (delegate , time . Minute )
53+ checker := newTestChecker (delegate )
5554 user := & token.UserContext {Username : "alice" , Groups : []string {"admins" }}
5655
5756 assert .True (t , checker .IsAdmin (context .Background (), user ))
@@ -62,7 +61,7 @@ func TestCachedAdminChecker_CacheHit(t *testing.T) {
6261
6362func TestCachedAdminChecker_CacheMiss (t * testing.T ) {
6463 delegate := & mockDelegate {response : false }
65- checker := newTestChecker (delegate , time . Minute )
64+ checker := newTestChecker (delegate )
6665 user := & token.UserContext {Username : "bob" , Groups : []string {"users" }}
6766
6867 assert .False (t , checker .IsAdmin (context .Background (), user ))
@@ -91,7 +90,7 @@ func TestCachedAdminChecker_TTLExpiry(t *testing.T) {
9190
9291func TestCachedAdminChecker_DifferentUsers (t * testing.T ) {
9392 delegate := & mockDelegate {response : true }
94- checker := newTestChecker (delegate , time . Minute )
93+ checker := newTestChecker (delegate )
9594
9695 alice := & token.UserContext {Username : "alice" , Groups : []string {"admins" }}
9796 bob := & token.UserContext {Username : "bob" , Groups : []string {"admins" }}
@@ -104,7 +103,7 @@ func TestCachedAdminChecker_DifferentUsers(t *testing.T) {
104103
105104func TestCachedAdminChecker_SameUserDifferentGroups (t * testing.T ) {
106105 delegate := & mockDelegate {response : true }
107- checker := newTestChecker (delegate , time . Minute )
106+ checker := newTestChecker (delegate )
108107
109108 adminAlice := & token.UserContext {Username : "alice" , Groups : []string {"admins" }}
110109 userAlice := & token.UserContext {Username : "alice" , Groups : []string {"users" }}
@@ -117,7 +116,7 @@ func TestCachedAdminChecker_SameUserDifferentGroups(t *testing.T) {
117116
118117func TestCachedAdminChecker_GroupOrderIrrelevant (t * testing.T ) {
119118 delegate := & mockDelegate {response : true }
120- checker := newTestChecker (delegate , time . Minute )
119+ checker := newTestChecker (delegate )
121120
122121 user1 := & token.UserContext {Username : "alice" , Groups : []string {"b" , "a" , "c" }}
123122 user2 := & token.UserContext {Username : "alice" , Groups : []string {"c" , "a" , "b" }}
@@ -130,15 +129,15 @@ func TestCachedAdminChecker_GroupOrderIrrelevant(t *testing.T) {
130129
131130func TestCachedAdminChecker_NilUserReturnsFalse (t * testing.T ) {
132131 delegate := & mockDelegate {response : true }
133- checker := newTestChecker (delegate , time . Minute )
132+ checker := newTestChecker (delegate )
134133
135134 assert .False (t , checker .IsAdmin (context .Background (), nil ))
136135 assert .Equal (t , 0 , delegate .getCalls ())
137136}
138137
139138func TestCachedAdminChecker_EmptyUsernameReturnsFalse (t * testing.T ) {
140139 delegate := & mockDelegate {response : true }
141- checker := newTestChecker (delegate , time . Minute )
140+ checker := newTestChecker (delegate )
142141
143142 user := & token.UserContext {Username : "" , Groups : []string {"admins" }}
144143 assert .False (t , checker .IsAdmin (context .Background (), user ))
@@ -162,18 +161,18 @@ func TestCachedAdminChecker_Metrics(t *testing.T) {
162161 checker .IsAdmin (context .Background (), user )
163162
164163 hits , misses := checker .Metrics ()
165- assert .Equal (t , float64 ( 0 ) , counterValue (hits ))
166- assert .Equal (t , float64 ( 1 ) , counterValue (misses ))
164+ assert .InDelta (t , 0 , counterValue (t , hits ), 0 )
165+ assert .InDelta (t , 1 , counterValue (t , misses ), 0 )
167166
168167 checker .IsAdmin (context .Background (), user )
169168
170- assert .Equal (t , float64 ( 1 ) , counterValue (hits ))
171- assert .Equal (t , float64 ( 1 ) , counterValue (misses ))
169+ assert .InDelta (t , 1 , counterValue (t , hits ), 0 )
170+ assert .InDelta (t , 1 , counterValue (t , misses ), 0 )
172171}
173172
174173func TestCachedAdminChecker_ConcurrentAccess (t * testing.T ) {
175174 delegate := & mockDelegate {response : true }
176- checker := newTestChecker (delegate , time . Minute )
175+ checker := newTestChecker (delegate )
177176
178177 user := & token.UserContext {Username : "alice" , Groups : []string {"admins" }}
179178
@@ -209,7 +208,7 @@ func TestCachedAdminChecker_NonPositiveTTLPanics(t *testing.T) {
209208
210209func TestCachedAdminChecker_FalseResultIsCached (t * testing.T ) {
211210 delegate := & mockDelegate {response : false }
212- checker := newTestChecker (delegate , time . Minute )
211+ checker := newTestChecker (delegate )
213212 user := & token.UserContext {Username : "alice" , Groups : []string {"users" }}
214213
215214 assert .False (t , checker .IsAdmin (context .Background (), user ))
0 commit comments