MCPcopy Index your code
hub / github.com/coder/coder / TestUsers

Function TestUsers

coderd/prometheusmetrics/prometheusmetrics_test.go:118–210  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

116}
117
118func TestUsers(t *testing.T) {
119 t.Parallel()
120
121 for _, tc := range []struct {
122 Name string
123 Database func(t *testing.T) database.Store
124 Count map[database.UserStatus]int
125 }{{
126 Name: "None",
127 Database: func(t *testing.T) database.Store {
128 db, _ := dbtestutil.NewDB(t)
129 return db
130 },
131 Count: map[database.UserStatus]int{},
132 }, {
133 Name: "One",
134 Database: func(t *testing.T) database.Store {
135 db, _ := dbtestutil.NewDB(t)
136 dbgen.User(t, db, database.User{Status: database.UserStatusActive})
137 return db
138 },
139 Count: map[database.UserStatus]int{database.UserStatusActive: 1},
140 }, {
141 Name: "MultipleStatuses",
142 Database: func(t *testing.T) database.Store {
143 db, _ := dbtestutil.NewDB(t)
144
145 dbgen.User(t, db, database.User{Status: database.UserStatusActive})
146 dbgen.User(t, db, database.User{Status: database.UserStatusDormant})
147
148 return db
149 },
150 Count: map[database.UserStatus]int{database.UserStatusActive: 1, database.UserStatusDormant: 1},
151 }, {
152 Name: "MultipleActive",
153 Database: func(t *testing.T) database.Store {
154 db, _ := dbtestutil.NewDB(t)
155 dbgen.User(t, db, database.User{Status: database.UserStatusActive})
156 dbgen.User(t, db, database.User{Status: database.UserStatusActive})
157 dbgen.User(t, db, database.User{Status: database.UserStatusActive})
158 return db
159 },
160 Count: map[database.UserStatus]int{database.UserStatusActive: 3},
161 }} {
162 t.Run(tc.Name, func(t *testing.T) {
163 t.Parallel()
164 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort)
165 defer cancel()
166
167 registry := prometheus.NewRegistry()
168 mClock := quartz.NewMock(t)
169 db := tc.Database(t)
170 closeFunc, err := prometheusmetrics.Users(context.Background(), testutil.Logger(t), mClock, registry, db, time.Millisecond)
171 require.NoError(t, err)
172 t.Cleanup(closeFunc)
173
174 _, w := mClock.AdvanceNext()
175 w.MustWait(ctx)

Callers

nothing calls this directly

Calls 9

NewDBFunction · 0.92
UserFunction · 0.92
UsersFunction · 0.92
LoggerFunction · 0.92
UserStatusTypeAlias · 0.92
RunMethod · 0.65
DatabaseMethod · 0.65
CleanupMethod · 0.65
GetValueMethod · 0.45

Tested by

no test coverage detected