@@ -59,14 +59,14 @@ func TestCatalogResolution_CatalogHit(t *testing.T) {
5959 c := catalog .NewMemorySandboxesCatalog ()
6060 ff := newFF (t , true )
6161
62- err := c .StoreSandbox (context . Background (), "sbx" , & catalog.SandboxInfo {
62+ err := c .StoreSandbox (t . Context (), "sbx" , & catalog.SandboxInfo {
6363 OrchestratorIP : "10.0.0.1" ,
6464 ExecutionID : "exec" ,
6565 StartedAt : time .Now (),
6666 }, time .Minute )
6767 require .NoError (t , err )
6868
69- nodeIP , err := catalogResolution (context . Background (), "sbx" , 8000 , "" , "" , c , nil , ff )
69+ nodeIP , err := catalogResolution (t . Context (), "sbx" , 8000 , "" , "" , c , nil , ff )
7070 require .NoError (t , err )
7171 require .Equal (t , "10.0.0.1" , nodeIP )
7272}
@@ -77,14 +77,14 @@ func TestCatalogResolution_CatalogHit_EmptyIPReturnsEmpty(t *testing.T) {
7777 c := catalog .NewMemorySandboxesCatalog ()
7878 ff := newFF (t , true )
7979
80- err := c .StoreSandbox (context . Background (), "sbx" , & catalog.SandboxInfo {
80+ err := c .StoreSandbox (t . Context (), "sbx" , & catalog.SandboxInfo {
8181 OrchestratorIP : "" ,
8282 ExecutionID : "exec" ,
8383 StartedAt : time .Now (),
8484 }, time .Minute )
8585 require .NoError (t , err )
8686
87- nodeIP , err := catalogResolution (context . Background (), "sbx" , 8000 , "" , "" , c , nil , ff )
87+ nodeIP , err := catalogResolution (t . Context (), "sbx" , 8000 , "" , "" , c , nil , ff )
8888 require .NoError (t , err )
8989 require .Empty (t , nodeIP )
9090}
@@ -95,7 +95,7 @@ func TestCatalogResolution_CatalogMiss(t *testing.T) {
9595 c := catalog .NewMemorySandboxesCatalog ()
9696 ff := newFF (t , true )
9797
98- _ , err := catalogResolution (context . Background (), "sbx" , 8000 , "" , "" , c , nil , ff )
98+ _ , err := catalogResolution (t . Context (), "sbx" , 8000 , "" , "" , c , nil , ff )
9999 require .ErrorIs (t , err , ErrNodeNotFound )
100100}
101101
@@ -104,7 +104,7 @@ func TestHandlePausedSandbox_NoResumer_MissingTrafficAccessToken(t *testing.T) {
104104
105105 ff := newFF (t , true )
106106
107- _ , res , err := handlePausedSandbox (context . Background (), "sbx" , 8000 , "" , "" , nil , ff )
107+ _ , res , err := handlePausedSandbox (t . Context (), "sbx" , 8000 , "" , "" , nil , ff )
108108 require .NoError (t , err )
109109 require .Equal (t , autoResumeNotAllowed , res )
110110}
@@ -114,7 +114,7 @@ func TestHandlePausedSandbox_NoResumer_InvalidTrafficAccessToken(t *testing.T) {
114114
115115 ff := newFF (t , true )
116116
117- _ , res , err := handlePausedSandbox (context . Background (), "sbx" , 8000 , "wrong-token" , "" , nil , ff )
117+ _ , res , err := handlePausedSandbox (t . Context (), "sbx" , 8000 , "wrong-token" , "" , nil , ff )
118118 require .NoError (t , err )
119119 require .Equal (t , autoResumeNotAllowed , res )
120120}
@@ -124,7 +124,7 @@ func TestHandlePausedSandbox_FlagDisabled(t *testing.T) {
124124
125125 ff := newFF (t , false )
126126
127- _ , res , err := handlePausedSandbox (context . Background (), "sbx" , 8000 , "token" , "" , stubResumer {nodeIP : "10.0.0.1" }, ff )
127+ _ , res , err := handlePausedSandbox (t . Context (), "sbx" , 8000 , "token" , "" , stubResumer {nodeIP : "10.0.0.1" }, ff )
128128 require .NoError (t , err )
129129 require .Equal (t , autoResumeNotAllowed , res )
130130}
@@ -134,7 +134,7 @@ func TestHandlePausedSandbox_NotFound(t *testing.T) {
134134
135135 ff := newFF (t , true )
136136
137- _ , res , err := handlePausedSandbox (context . Background (), "sbx" , 8000 , "token" , "" , stubResumer {err : status .Error (codes .NotFound , "not allowed" )}, ff )
137+ _ , res , err := handlePausedSandbox (t . Context (), "sbx" , 8000 , "token" , "" , stubResumer {err : status .Error (codes .NotFound , "not allowed" )}, ff )
138138 require .NoError (t , err )
139139 require .Equal (t , autoResumeNotAllowed , res )
140140}
@@ -144,19 +144,33 @@ func TestHandlePausedSandbox_PermissionDenied(t *testing.T) {
144144
145145 ff := newFF (t , true )
146146
147- _ , res , err := handlePausedSandbox (context . Background (), "sbx" , 8000 , "token" , "" , stubResumer {err : status .Error (codes .PermissionDenied , "permission denied" )}, ff )
147+ _ , res , err := handlePausedSandbox (t . Context (), "sbx" , 8000 , "token" , "" , stubResumer {err : status .Error (codes .PermissionDenied , "permission denied" )}, ff )
148148 require .Error (t , err )
149149 var deniedErr * reverseproxy.SandboxResumePermissionDeniedError
150150 require .ErrorAs (t , err , & deniedErr )
151151 require .Equal (t , autoResumePermissionDenied , res )
152152}
153153
154+ func TestHandlePausedSandbox_ResourceExhausted (t * testing.T ) {
155+ t .Parallel ()
156+
157+ ff := newFF (t , true )
158+
159+ _ , res , err := handlePausedSandbox (t .Context (), "sbx" , 8000 , "token" , "" , stubResumer {err : status .Error (codes .ResourceExhausted , "rate limit hit" )}, ff )
160+ require .Error (t , err )
161+ var exhaustedErr * reverseproxy.SandboxResourceExhaustedError
162+ require .ErrorAs (t , err , & exhaustedErr )
163+ require .Equal (t , "sbx" , exhaustedErr .SandboxId )
164+ require .Equal (t , "rate limit hit" , exhaustedErr .Message )
165+ require .Equal (t , autoResumeResourceExhausted , res )
166+ }
167+
154168func TestHandlePausedSandbox_SnapshotNotFound (t * testing.T ) {
155169 t .Parallel ()
156170
157171 ff := newFF (t , true )
158172
159- _ , res , err := handlePausedSandbox (context . Background (), "sbx" , 8000 , "token" , "" , stubResumer {err : status .Error (codes .NotFound , "snapshot not found" )}, ff )
173+ _ , res , err := handlePausedSandbox (t . Context (), "sbx" , 8000 , "token" , "" , stubResumer {err : status .Error (codes .NotFound , "snapshot not found" )}, ff )
160174 require .NoError (t , err )
161175 require .Equal (t , autoResumeNotAllowed , res )
162176}
@@ -166,7 +180,7 @@ func TestHandlePausedSandbox_Error(t *testing.T) {
166180
167181 ff := newFF (t , true )
168182
169- _ , res , err := handlePausedSandbox (context . Background (), "sbx" , 8000 , "token" , "" , stubResumer {err : status .Error (codes .Unavailable , "boom" )}, ff )
183+ _ , res , err := handlePausedSandbox (t . Context (), "sbx" , 8000 , "token" , "" , stubResumer {err : status .Error (codes .Unavailable , "boom" )}, ff )
170184 require .Error (t , err )
171185 require .Equal (t , autoResumeErrored , res )
172186}
@@ -176,7 +190,7 @@ func TestHandlePausedSandbox_Succeeded(t *testing.T) {
176190
177191 ff := newFF (t , true )
178192
179- nodeIP , res , err := handlePausedSandbox (context . Background (), "sbx" , 8000 , "token" , "" , stubResumer {nodeIP : "10.0.0.1" }, ff )
193+ nodeIP , res , err := handlePausedSandbox (t . Context (), "sbx" , 8000 , "token" , "" , stubResumer {nodeIP : "10.0.0.1" }, ff )
180194 require .NoError (t , err )
181195 require .Equal (t , autoResumeSucceeded , res )
182196 require .Equal (t , "10.0.0.1" , nodeIP )
@@ -187,7 +201,7 @@ func TestHandlePausedSandbox_Succeeded_EmptyIP(t *testing.T) {
187201
188202 ff := newFF (t , true )
189203
190- nodeIP , res , err := handlePausedSandbox (context . Background (), "sbx" , 8000 , "token" , "" , stubResumer {nodeIP : "" }, ff )
204+ nodeIP , res , err := handlePausedSandbox (t . Context (), "sbx" , 8000 , "token" , "" , stubResumer {nodeIP : "" }, ff )
191205 require .NoError (t , err )
192206 require .Equal (t , autoResumeSucceeded , res )
193207 require .Empty (t , nodeIP )
@@ -199,7 +213,7 @@ func TestHandlePausedSandbox_PassesPortAndTokenToResumer(t *testing.T) {
199213 ff := newFF (t , true )
200214 resumer := & recordingResumer {}
201215
202- nodeIP , res , err := handlePausedSandbox (context . Background (), "sbx" , 49983 , "token" , "envd-token" , resumer , ff )
216+ nodeIP , res , err := handlePausedSandbox (t . Context (), "sbx" , 49983 , "token" , "envd-token" , resumer , ff )
203217 require .NoError (t , err )
204218 require .Equal (t , autoResumeSucceeded , res )
205219 require .Equal (t , "10.0.0.1" , nodeIP )
0 commit comments