5
5
"os"
6
6
"testing"
7
7
8
+ "golang.org/x/xerrors"
9
+
8
10
"cdr.dev/slog"
9
11
"cdr.dev/slog/sloggers/sloghuman"
10
12
"github.com/coder/coder/v2/agent"
@@ -25,8 +27,8 @@ func TestPushResourcesMonitoringWithConfig(t *testing.T) {
25
27
expectedCalls int
26
28
}{
27
29
{
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 ) {
30
32
return & proto.GetResourcesMonitoringConfigurationResponse {
31
33
Enabled : true ,
32
34
Config : & proto.GetResourcesMonitoringConfigurationResponse_Config {
@@ -36,56 +38,47 @@ func TestPushResourcesMonitoringWithConfig(t *testing.T) {
36
38
MonitoredVolumes : []string {"/" },
37
39
}, nil
38
40
},
39
- datapointsPusher : func (_ context.Context , params * proto.PushResourcesMonitoringUsageRequest ) (* proto.PushResourcesMonitoringUsageResponse , error ) {
41
+ datapointsPusher : func (_ context.Context , _ * proto.PushResourcesMonitoringUsageRequest ) (* proto.PushResourcesMonitoringUsageResponse , error ) {
40
42
return & proto.PushResourcesMonitoringUsageResponse {}, nil
41
43
},
42
44
expectedError : false ,
43
45
numTicks : 20 ,
44
46
counterCalls : 0 ,
45
47
expectedCalls : 1 ,
46
48
},
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
+ },
89
82
}
90
83
91
84
for _ , tt := range tests {
@@ -101,7 +94,6 @@ func TestPushResourcesMonitoringWithConfig(t *testing.T) {
101
94
102
95
datapointsPusher := func (ctx context.Context , params * proto.PushResourcesMonitoringUsageRequest ) (* proto.PushResourcesMonitoringUsageResponse , error ) {
103
96
tt .counterCalls ++
104
- t .Logf ("pushing datapoints: %v" , tt .counterCalls )
105
97
return tt .datapointsPusher (ctx , params )
106
98
}
107
99
@@ -110,6 +102,10 @@ func TestPushResourcesMonitoringWithConfig(t *testing.T) {
110
102
t .Errorf ("expected error: %v, got: %v" , tt .expectedError , err )
111
103
}
112
104
105
+ if tt .expectedError {
106
+ return
107
+ }
108
+
113
109
for i := 0 ; i < tt .numTicks ; i ++ {
114
110
_ , waiter := clk .AdvanceNext ()
115
111
waiter .Wait (ctx )
0 commit comments