Skip to content

Commit 523f6fd

Browse files
committed
improve testing
1 parent f3388b4 commit 523f6fd

File tree

1 file changed

+42
-46
lines changed

1 file changed

+42
-46
lines changed

agent/resources_monitor_test.go

Lines changed: 42 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import (
55
"os"
66
"testing"
77

8+
"golang.org/x/xerrors"
9+
810
"cdr.dev/slog"
911
"cdr.dev/slog/sloggers/sloghuman"
1012
"github.com/coder/coder/v2/agent"
@@ -25,8 +27,8 @@ func TestPushResourcesMonitoringWithConfig(t *testing.T) {
2527
expectedCalls int
2628
}{
2729
{
28-
name: "Successful monitoring",
29-
configFetcher: func(_ context.Context, params *proto.GetResourcesMonitoringConfigurationRequest) (*proto.GetResourcesMonitoringConfigurationResponse, error) {
30+
name: "SuccessfulMonitoring",
31+
configFetcher: func(_ context.Context, _ *proto.GetResourcesMonitoringConfigurationRequest) (*proto.GetResourcesMonitoringConfigurationResponse, error) {
3032
return &proto.GetResourcesMonitoringConfigurationResponse{
3133
Enabled: true,
3234
Config: &proto.GetResourcesMonitoringConfigurationResponse_Config{
@@ -36,56 +38,47 @@ func TestPushResourcesMonitoringWithConfig(t *testing.T) {
3638
MonitoredVolumes: []string{"/"},
3739
}, nil
3840
},
39-
datapointsPusher: func(_ context.Context, params *proto.PushResourcesMonitoringUsageRequest) (*proto.PushResourcesMonitoringUsageResponse, error) {
41+
datapointsPusher: func(_ context.Context, _ *proto.PushResourcesMonitoringUsageRequest) (*proto.PushResourcesMonitoringUsageResponse, error) {
4042
return &proto.PushResourcesMonitoringUsageResponse{}, nil
4143
},
4244
expectedError: false,
4345
numTicks: 20,
4446
counterCalls: 0,
4547
expectedCalls: 1,
4648
},
47-
// {
48-
// name: "Disabled monitoring",
49-
// configFetcher: func(ctx context.Context, params *proto.GetResourcesMonitoringConfigurationRequest) (*proto.GetResourcesMonitoringConfigurationResponse, error) {
50-
// return &proto.GetResourcesMonitoringConfigurationResponse{
51-
// Enabled: false,
52-
// }, nil
53-
// },
54-
// datapointsPusher: func(ctx context.Context, params *proto.PushResourcesMonitoringUsageRequest) (*proto.PushResourcesMonitoringUsageResponse, error) {
55-
// return &proto.PushResourcesMonitoringUsageResponse{}, nil
56-
// },
57-
// expectedError: false,
58-
// expectedCalls: 0,
59-
// },
60-
// {
61-
// name: "Failed to fetch configuration",
62-
// configFetcher: func(ctx context.Context, params *proto.GetResourcesMonitoringConfigurationRequest) (*proto.GetResourcesMonitoringConfigurationResponse, error) {
63-
// return nil, xerrors.New("failed to fetch configuration")
64-
// },
65-
// datapointsPusher: func(ctx context.Context, params *proto.PushResourcesMonitoringUsageRequest) (*proto.PushResourcesMonitoringUsageResponse, error) {
66-
// return &proto.PushResourcesMonitoringUsageResponse{}, nil
67-
// },
68-
// expectedError: true,
69-
// expectedCalls: 0,
70-
// },
71-
// {
72-
// name: "Failed to push datapoints",
73-
// configFetcher: func(ctx context.Context, params *proto.GetResourcesMonitoringConfigurationRequest) (*proto.GetResourcesMonitoringConfigurationResponse, error) {
74-
// return &proto.GetResourcesMonitoringConfigurationResponse{
75-
// Enabled: true,
76-
// Config: &proto.GetResourcesMonitoringConfigurationResponse_Config{
77-
// NumDatapoints: 1,
78-
// TickInterval: 1,
79-
// },
80-
// MonitoredVolumes: []string{"/"},
81-
// }, nil
82-
// },
83-
// datapointsPusher: func(ctx context.Context, params *proto.PushResourcesMonitoringUsageRequest) (*proto.PushResourcesMonitoringUsageResponse, error) {
84-
// return nil, xerrors.New("failed to push datapoints")
85-
// },
86-
// expectedError: true,
87-
// expectedCalls: 1,
88-
// },
49+
{
50+
name: "SuccessfulMonitoringLongRun",
51+
configFetcher: func(_ context.Context, _ *proto.GetResourcesMonitoringConfigurationRequest) (*proto.GetResourcesMonitoringConfigurationResponse, error) {
52+
return &proto.GetResourcesMonitoringConfigurationResponse{
53+
Enabled: true,
54+
Config: &proto.GetResourcesMonitoringConfigurationResponse_Config{
55+
NumDatapoints: 20,
56+
TickInterval: 1,
57+
},
58+
MonitoredVolumes: []string{"/"},
59+
}, nil
60+
},
61+
datapointsPusher: func(_ context.Context, _ *proto.PushResourcesMonitoringUsageRequest) (*proto.PushResourcesMonitoringUsageResponse, error) {
62+
return &proto.PushResourcesMonitoringUsageResponse{}, nil
63+
},
64+
expectedError: false,
65+
numTicks: 60,
66+
counterCalls: 0,
67+
expectedCalls: 41,
68+
},
69+
{
70+
name: "FailedToFetchConfiguration",
71+
configFetcher: func(_ context.Context, _ *proto.GetResourcesMonitoringConfigurationRequest) (*proto.GetResourcesMonitoringConfigurationResponse, error) {
72+
return &proto.GetResourcesMonitoringConfigurationResponse{}, xerrors.New("failed to fetch configuration")
73+
},
74+
datapointsPusher: func(_ context.Context, _ *proto.PushResourcesMonitoringUsageRequest) (*proto.PushResourcesMonitoringUsageResponse, error) {
75+
return &proto.PushResourcesMonitoringUsageResponse{}, nil
76+
},
77+
expectedError: true,
78+
numTicks: 10,
79+
counterCalls: 0,
80+
expectedCalls: 0,
81+
},
8982
}
9083

9184
for _, tt := range tests {
@@ -101,7 +94,6 @@ func TestPushResourcesMonitoringWithConfig(t *testing.T) {
10194

10295
datapointsPusher := func(ctx context.Context, params *proto.PushResourcesMonitoringUsageRequest) (*proto.PushResourcesMonitoringUsageResponse, error) {
10396
tt.counterCalls++
104-
t.Logf("pushing datapoints: %v", tt.counterCalls)
10597
return tt.datapointsPusher(ctx, params)
10698
}
10799

@@ -110,6 +102,10 @@ func TestPushResourcesMonitoringWithConfig(t *testing.T) {
110102
t.Errorf("expected error: %v, got: %v", tt.expectedError, err)
111103
}
112104

105+
if tt.expectedError {
106+
return
107+
}
108+
113109
for i := 0; i < tt.numTicks; i++ {
114110
_, waiter := clk.AdvanceNext()
115111
waiter.Wait(ctx)

0 commit comments

Comments
 (0)