Skip to content

Commit ba52c45

Browse files
committed
reflect.DeepEquals
1 parent 201da83 commit ba52c45

File tree

1 file changed

+7
-12
lines changed

1 file changed

+7
-12
lines changed

coderd/prometheusmetrics/prometheusmetrics_test.go

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package prometheusmetrics_test
22

33
import (
4-
"bytes"
54
"context"
65
"database/sql"
76
"encoding/json"
87
"fmt"
98
"os"
9+
"reflect"
1010
"sync/atomic"
1111
"testing"
1212
"time"
@@ -417,14 +417,16 @@ func TestAgentStats(t *testing.T) {
417417
IgnoreErrors: true,
418418
}), registry, db, time.Now().Add(-time.Minute), time.Millisecond)
419419
require.NoError(t, err)
420+
t.Cleanup(closeFunc)
420421

421422
// then
422423
goldenFile, err := os.ReadFile("testdata/agent-stats.json")
423424
require.NoError(t, err)
424-
goldenFile = bytes.TrimSpace(goldenFile)
425+
golden := map[string]int{}
426+
err = json.Unmarshal(goldenFile, &golden)
427+
require.NoError(t, err)
425428

426429
collected := map[string]int{}
427-
var out []byte
428430
var executionSeconds bool
429431
assert.Eventually(t, func() bool {
430432
metrics, err := registry.Gather()
@@ -454,18 +456,11 @@ func TestAgentStats(t *testing.T) {
454456
require.FailNowf(t, "unexpected metric collected", "metric: %s", metric.GetName())
455457
}
456458
}
457-
458-
out, err = json.MarshalIndent(collected, "", " ")
459-
require.NoError(t, err)
460-
out = bytes.ReplaceAll(out, []byte{'\r', '\n'}, []byte{'\n'}) // comparison fix for Windows
461-
462-
return executionSeconds && string(goldenFile) == string(out)
459+
return executionSeconds && reflect.DeepEqual(golden, collected)
463460
}, testutil.WaitShort, testutil.IntervalFast)
464461

465462
// Keep this assertion, so that "go test" can print differences instead of "Condition never satisfied"
466-
assert.Equal(t, string(goldenFile), string(out))
467-
468-
closeFunc()
463+
assert.EqualValues(t, golden, collected)
469464
}
470465

471466
func prepareWorkspaceAndAgent(t *testing.T, client *codersdk.Client, user codersdk.CreateFirstUserResponse, workspaceNum int) *agentsdk.Client {

0 commit comments

Comments
 (0)