@@ -18,6 +18,7 @@ type apiClientClusterMocked struct {
18
18
name string
19
19
resourceState ske.ClusterStatusState
20
20
invalidArgusInstance bool
21
+ errorList * []ske.ClusterError
21
22
}
22
23
23
24
const testRegion = "eu01"
@@ -45,7 +46,17 @@ func (a *apiClientClusterMocked) GetClusterExecute(_ context.Context, _, _, _ st
45
46
return & ske.Cluster {
46
47
Name : utils .Ptr ("cluster" ),
47
48
Status : & ske.ClusterStatus {
48
- Aggregated : & rs ,
49
+ Aggregated : utils .Ptr (rs ),
50
+ Error : func () * ske.RuntimeError {
51
+ if a .invalidArgusInstance {
52
+ return & ske.RuntimeError {
53
+ Code : utils .Ptr (ske .RUNTIMEERRORCODE_OBSERVABILITY_INSTANCE_NOT_FOUND ),
54
+ Message : utils .Ptr ("invalid argus instance" ),
55
+ }
56
+ }
57
+ return nil
58
+ }(),
59
+ Errors : a .errorList ,
49
60
},
50
61
}, nil
51
62
}
@@ -77,6 +88,7 @@ func TestCreateOrUpdateClusterWaitHandler(t *testing.T) {
77
88
invalidArgusInstance bool
78
89
wantErr bool
79
90
wantResp bool
91
+ errorList * []ske.ClusterError
80
92
}{
81
93
{
82
94
desc : "create_succeeded" ,
@@ -120,6 +132,40 @@ func TestCreateOrUpdateClusterWaitHandler(t *testing.T) {
120
132
wantErr : true ,
121
133
wantResp : false ,
122
134
},
135
+ {
136
+ desc : "status_errors_present_state_unhealthy" ,
137
+ getFails : false ,
138
+ resourceState : ske .CLUSTERSTATUSSTATE_UNHEALTHY ,
139
+ errorList : & []ske.ClusterError {
140
+ {
141
+ Code : utils .Ptr ("ERR_CODE" ),
142
+ Message : utils .Ptr ("Error 1" ),
143
+ },
144
+ {
145
+ Code : utils .Ptr ("ERR_OTHER" ),
146
+ Message : utils .Ptr ("Error 2" ),
147
+ },
148
+ },
149
+ wantErr : false ,
150
+ wantResp : true ,
151
+ },
152
+ {
153
+ desc : "status_errors_present_state_unspecified" ,
154
+ getFails : false ,
155
+ resourceState : ske .CLUSTERSTATUSSTATE_UNSPECIFIED ,
156
+ errorList : & []ske.ClusterError {
157
+ {
158
+ Code : utils .Ptr ("ERR_CODE" ),
159
+ Message : utils .Ptr ("Error 1" ),
160
+ },
161
+ {
162
+ Code : utils .Ptr ("ERR_OTHER" ),
163
+ Message : utils .Ptr ("Error 2" ),
164
+ },
165
+ },
166
+ wantErr : false ,
167
+ wantResp : true ,
168
+ },
123
169
}
124
170
for _ , tt := range tests {
125
171
t .Run (tt .desc , func (t * testing.T ) {
@@ -130,6 +176,7 @@ func TestCreateOrUpdateClusterWaitHandler(t *testing.T) {
130
176
name : name ,
131
177
resourceState : tt .resourceState ,
132
178
invalidArgusInstance : tt .invalidArgusInstance ,
179
+ errorList : tt .errorList ,
133
180
}
134
181
var wantRes * ske.Cluster
135
182
rs := ske .ClusterStatusState (tt .resourceState )
@@ -147,6 +194,10 @@ func TestCreateOrUpdateClusterWaitHandler(t *testing.T) {
147
194
Message : utils .Ptr ("invalid argus instance" ),
148
195
}
149
196
}
197
+
198
+ if tt .errorList != nil && len (* tt .errorList ) > 0 {
199
+ wantRes .Status .Errors = tt .errorList
200
+ }
150
201
}
151
202
152
203
handler := CreateOrUpdateClusterWaitHandler (context .Background (), apiClient , "" , testRegion , name )
0 commit comments