Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 9e8bf7e

Browse files
committed
chore: restore deleted test cases
Signed-off-by: Danny Kopping <[email protected]>
1 parent 4c1c469 commit 9e8bf7e

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

enterprise/coderd/prebuilds/metricscollector_test.go

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,26 @@ func TestMetricsCollector(t *testing.T) {
164164
templateDeleted: []bool{false},
165165
eligible: []bool{false},
166166
},
167+
{
168+
name: "deleted templates never desire prebuilds",
169+
transitions: allTransitions,
170+
jobStatuses: allJobStatuses,
171+
initiatorIDs: []uuid.UUID{agplprebuilds.SystemUserID},
172+
ownerIDs: []uuid.UUID{agplprebuilds.SystemUserID, uuid.New()},
173+
metrics: nil,
174+
templateDeleted: []bool{true},
175+
eligible: []bool{false},
176+
},
177+
{
178+
name: "running prebuilds for deleted templates are still counted, so that they can be deleted",
179+
transitions: []database.WorkspaceTransition{database.WorkspaceTransitionStart},
180+
jobStatuses: []database.ProvisionerJobStatus{database.ProvisionerJobStatusSucceeded},
181+
initiatorIDs: []uuid.UUID{agplprebuilds.SystemUserID},
182+
ownerIDs: []uuid.UUID{agplprebuilds.SystemUserID},
183+
metrics: nil,
184+
templateDeleted: []bool{true},
185+
eligible: []bool{false},
186+
},
167187
}
168188
for _, test := range tests {
169189
test := test // capture for parallel
@@ -256,6 +276,12 @@ func TestMetricsCollector(t *testing.T) {
256276
"organization_name": org.Name,
257277
}
258278

279+
// If no expected metrics have been defined, ensure we don't find any metric series (i.e. metrics with given labels).
280+
if test.metrics == nil {
281+
series := findAllMetricSeries(metricsFamilies, labels)
282+
require.Empty(t, series)
283+
}
284+
259285
for _, check := range test.metrics {
260286
metric := findMetric(metricsFamilies, check.name, labels)
261287
if check.value == nil {
@@ -430,3 +456,33 @@ func findMetric(metricsFamilies []*prometheus_client.MetricFamily, name string,
430456
}
431457
return nil
432458
}
459+
460+
// findAllMetricSeries finds all metrics with a given set of labels.
461+
func findAllMetricSeries(metricsFamilies []*prometheus_client.MetricFamily, labels map[string]string) map[string]*prometheus_client.Metric {
462+
series := make(map[string]*prometheus_client.Metric)
463+
for _, metricFamily := range metricsFamilies {
464+
for _, metric := range metricFamily.GetMetric() {
465+
labelPairs := metric.GetLabel()
466+
467+
if len(labelPairs) != len(labels) {
468+
continue
469+
}
470+
471+
// Convert label pairs to map for easier lookup
472+
metricLabels := make(map[string]string, len(labelPairs))
473+
for _, label := range labelPairs {
474+
metricLabels[label.GetName()] = label.GetValue()
475+
}
476+
477+
// Check if all requested labels match
478+
for wantName, wantValue := range labels {
479+
if metricLabels[wantName] != wantValue {
480+
continue
481+
}
482+
}
483+
484+
series[metricFamily.GetName()] = metric
485+
}
486+
}
487+
return series
488+
}

0 commit comments

Comments
 (0)