@@ -18,6 +18,7 @@ type apiClientClusterMocked struct {
1818 name string
1919 resourceState ske.ClusterStatusState
2020 invalidArgusInstance bool
21+ errorList * []ske.ClusterError
2122}
2223
2324const testRegion = "eu01"
@@ -45,7 +46,17 @@ func (a *apiClientClusterMocked) GetClusterExecute(_ context.Context, _, _, _ st
4546 return & ske.Cluster {
4647 Name : utils .Ptr ("cluster" ),
4748 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 ,
4960 },
5061 }, nil
5162}
@@ -77,6 +88,7 @@ func TestCreateOrUpdateClusterWaitHandler(t *testing.T) {
7788 invalidArgusInstance bool
7889 wantErr bool
7990 wantResp bool
91+ errorList * []ske.ClusterError
8092 }{
8193 {
8294 desc : "create_succeeded" ,
@@ -120,6 +132,23 @@ func TestCreateOrUpdateClusterWaitHandler(t *testing.T) {
120132 wantErr : true ,
121133 wantResp : false ,
122134 },
135+ {
136+ desc : "status_errors_present" ,
137+ getFails : false ,
138+ resourceState : ske .CLUSTERSTATUSSTATE_CREATING ,
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 : true ,
150+ wantResp : true ,
151+ },
123152 }
124153 for _ , tt := range tests {
125154 t .Run (tt .desc , func (t * testing.T ) {
@@ -130,6 +159,7 @@ func TestCreateOrUpdateClusterWaitHandler(t *testing.T) {
130159 name : name ,
131160 resourceState : tt .resourceState ,
132161 invalidArgusInstance : tt .invalidArgusInstance ,
162+ errorList : tt .errorList ,
133163 }
134164 var wantRes * ske.Cluster
135165 rs := ske .ClusterStatusState (tt .resourceState )
@@ -147,6 +177,10 @@ func TestCreateOrUpdateClusterWaitHandler(t *testing.T) {
147177 Message : utils .Ptr ("invalid argus instance" ),
148178 }
149179 }
180+
181+ if tt .errorList != nil && len (* tt .errorList ) > 0 {
182+ wantRes .Status .Errors = tt .errorList
183+ }
150184 }
151185
152186 handler := CreateOrUpdateClusterWaitHandler (context .Background (), apiClient , "" , testRegion , name )
0 commit comments