@@ -115,9 +115,35 @@ func TestRegions(t *testing.T) {
115
115
proxy , err := db .GetWorkspaceProxyByName (ctx , proxyName )
116
116
require .NoError (t , err )
117
117
118
- // Refresh proxy health.
119
- err = api .ProxyHealth .ForceUpdate (ctx )
120
- require .NoError (t , err )
118
+ // Wait for the proxy to become healthy.
119
+ require .Eventually (t , func () bool {
120
+ healthCtx := testutil .Context (t , testutil .WaitLong )
121
+ err := api .ProxyHealth .ForceUpdate (healthCtx )
122
+ if ! assert .NoError (t , err ) {
123
+ return false
124
+ }
125
+
126
+ wps , err := client .WorkspaceProxies (ctx )
127
+ if ! assert .NoError (t , err ) {
128
+ return false
129
+ }
130
+ if ! assert .Len (t , wps .Regions , 2 ) {
131
+ return false
132
+ }
133
+ for _ , wp := range wps .Regions {
134
+ if ! wp .Healthy {
135
+ t .Logf ("region %q is not healthy yet, retrying healthcheck" , wp .Name )
136
+ for _ , errMsg := range wp .Status .Report .Errors {
137
+ t .Logf (" - error: %s" , errMsg )
138
+ }
139
+ for _ , warnMsg := range wp .Status .Report .Warnings {
140
+ t .Logf (" - warning: %s" , warnMsg )
141
+ }
142
+ return false
143
+ }
144
+ }
145
+ return true
146
+ }, testutil .WaitLong , testutil .IntervalMedium )
121
147
122
148
regions , err := client .Regions (ctx )
123
149
require .NoError (t , err )
0 commit comments