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

Function TestTracker_FlushToDB_Accumulates

coderd/boundaryusage/tracker_test.go:151–184  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

149}
150
151func TestTracker_FlushToDB_Accumulates(t *testing.T) {
152 t.Parallel()
153
154 db, _ := dbtestutil.NewDB(t)
155 ctx := testutil.Context(t, testutil.WaitShort)
156
157 tracker := boundaryusage.NewTracker()
158 replicaID := uuid.New()
159 workspaceID := uuid.New()
160 ownerID := uuid.New()
161
162 // First flush is an insert, resets unique counts (new period).
163 tracker.Track(workspaceID, ownerID, 5, 3)
164 err := tracker.FlushToDB(ctx, db, replicaID)
165 require.NoError(t, err)
166
167 // Track & flush more data. Same workspace/user, so unique counts stay at 1.
168 tracker.Track(workspaceID, ownerID, 2, 1)
169 err = tracker.FlushToDB(ctx, db, replicaID)
170 require.NoError(t, err)
171
172 // Track & flush even more data to continue accumulation.
173 tracker.Track(workspaceID, ownerID, 3, 2)
174 err = tracker.FlushToDB(ctx, db, replicaID)
175 require.NoError(t, err)
176
177 boundaryCtx := dbauthz.AsBoundaryUsageTracker(ctx)
178 summary, err := db.GetAndResetBoundaryUsageSummary(boundaryCtx, 60000)
179 require.NoError(t, err)
180 require.Equal(t, int64(1), summary.UniqueWorkspaces)
181 require.Equal(t, int64(1), summary.UniqueUsers)
182 require.Equal(t, int64(5+2+3), summary.AllowedRequests)
183 require.Equal(t, int64(3+1+2), summary.DeniedRequests)
184}
185
186func TestTracker_FlushToDB_NewPeriod(t *testing.T) {
187 t.Parallel()

Callers

nothing calls this directly

Calls 9

TrackMethod · 0.95
FlushToDBMethod · 0.95
NewDBFunction · 0.92
ContextFunction · 0.92
NewTrackerFunction · 0.92
AsBoundaryUsageTrackerFunction · 0.92
NewMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected