(t *testing.T)
| 272 | } |
| 273 | |
| 274 | func TestUpsertBoundaryUsageStats_Update(t *testing.T) { |
| 275 | t.Parallel() |
| 276 | |
| 277 | db, _ := dbtestutil.NewDB(t) |
| 278 | ctx := dbauthz.AsBoundaryUsageTracker(context.Background()) |
| 279 | |
| 280 | replicaID := uuid.New() |
| 281 | |
| 282 | // First insert uses delta fields. |
| 283 | _, err := db.UpsertBoundaryUsageStats(ctx, database.UpsertBoundaryUsageStatsParams{ |
| 284 | ReplicaID: replicaID, |
| 285 | UniqueWorkspacesDelta: 5, |
| 286 | UniqueUsersDelta: 3, |
| 287 | AllowedRequests: 100, |
| 288 | DeniedRequests: 10, |
| 289 | }) |
| 290 | require.NoError(t, err) |
| 291 | |
| 292 | // Second upsert (update). Set different delta vs cumulative to verify UPDATE uses cumulative. |
| 293 | newPeriod, err := db.UpsertBoundaryUsageStats(ctx, database.UpsertBoundaryUsageStatsParams{ |
| 294 | ReplicaID: replicaID, |
| 295 | UniqueWorkspacesCount: 8, // cumulative, should be used |
| 296 | UniqueUsersCount: 5, // cumulative, should be used |
| 297 | AllowedRequests: 200, |
| 298 | DeniedRequests: 20, |
| 299 | }) |
| 300 | require.NoError(t, err) |
| 301 | require.False(t, newPeriod, "should return false for update") |
| 302 | |
| 303 | // Verify UPDATE used cumulative values. |
| 304 | summary, err := db.GetAndResetBoundaryUsageSummary(ctx, 60000) |
| 305 | require.NoError(t, err) |
| 306 | require.Equal(t, int64(8), summary.UniqueWorkspaces) |
| 307 | require.Equal(t, int64(5), summary.UniqueUsers) |
| 308 | require.Equal(t, int64(100+200), summary.AllowedRequests) |
| 309 | require.Equal(t, int64(10+20), summary.DeniedRequests) |
| 310 | } |
| 311 | |
| 312 | func TestGetAndResetBoundaryUsageSummary_MultipleReplicas(t *testing.T) { |
| 313 | t.Parallel() |
nothing calls this directly
no test coverage detected