@@ -40,7 +40,7 @@ func TestServerTailnet_AgentConn_OK(t *testing.T) {
40
40
defer cancel ()
41
41
42
42
// Connect through the ServerTailnet
43
- agents , serverTailnet := setupServerTailnetAgent (t , 1 )
43
+ agents , serverTailnet := setupServerTailnetAgent (t , 1 , false )
44
44
a := agents [0 ]
45
45
46
46
conn , release , err := serverTailnet .AgentConn (ctx , a .id )
@@ -59,7 +59,7 @@ func TestServerTailnet_ReverseProxy(t *testing.T) {
59
59
ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
60
60
defer cancel ()
61
61
62
- agents , serverTailnet := setupServerTailnetAgent (t , 1 )
62
+ agents , serverTailnet := setupServerTailnetAgent (t , 1 , false )
63
63
a := agents [0 ]
64
64
65
65
u , err := url .Parse (fmt .Sprintf ("http://127.0.0.1:%d" , codersdk .WorkspaceAgentHTTPAPIServerPort ))
@@ -87,7 +87,7 @@ func TestServerTailnet_ReverseProxy(t *testing.T) {
87
87
ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
88
88
defer cancel ()
89
89
90
- agents , serverTailnet := setupServerTailnetAgent (t , 1 )
90
+ agents , serverTailnet := setupServerTailnetAgent (t , 1 , false )
91
91
a := agents [0 ]
92
92
93
93
registry := prometheus .NewRegistry ()
@@ -124,7 +124,7 @@ func TestServerTailnet_ReverseProxy(t *testing.T) {
124
124
ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
125
125
defer cancel ()
126
126
127
- agents , serverTailnet := setupServerTailnetAgent (t , 1 )
127
+ agents , serverTailnet := setupServerTailnetAgent (t , 1 , false )
128
128
a := agents [0 ]
129
129
130
130
u , err := url .Parse (fmt .Sprintf ("http://127.0.0.1:%d" , codersdk .WorkspaceAgentHTTPAPIServerPort ))
@@ -149,7 +149,7 @@ func TestServerTailnet_ReverseProxy(t *testing.T) {
149
149
ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
150
150
defer cancel ()
151
151
152
- agents , serverTailnet := setupServerTailnetAgent (t , 1 )
152
+ agents , serverTailnet := setupServerTailnetAgent (t , 1 , false )
153
153
a := agents [0 ]
154
154
port := ":4444"
155
155
ln , err := a .TailnetConn ().Listen ("tcp" , port )
@@ -202,7 +202,7 @@ func TestServerTailnet_ReverseProxy(t *testing.T) {
202
202
ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
203
203
defer cancel ()
204
204
205
- agents , serverTailnet := setupServerTailnetAgent (t , 2 )
205
+ agents , serverTailnet := setupServerTailnetAgent (t , 2 , false )
206
206
port := ":4444"
207
207
208
208
for i , ag := range agents {
@@ -257,7 +257,7 @@ func TestServerTailnet_ReverseProxy(t *testing.T) {
257
257
ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
258
258
defer cancel ()
259
259
260
- agents , serverTailnet := setupServerTailnetAgent (t , 1 )
260
+ agents , serverTailnet := setupServerTailnetAgent (t , 1 , false )
261
261
a := agents [0 ]
262
262
263
263
const expectedResponseCode = 209
@@ -285,6 +285,36 @@ func TestServerTailnet_ReverseProxy(t *testing.T) {
285
285
286
286
assert .Equal (t , expectedResponseCode , res .StatusCode )
287
287
})
288
+
289
+ t .Run ("BlockEndpoints" , func (t * testing.T ) {
290
+ t .Parallel ()
291
+
292
+ ctx , cancel := context .WithTimeout (context .Background (), testutil .WaitLong )
293
+ defer cancel ()
294
+
295
+ agents , serverTailnet := setupServerTailnetAgent (t , 1 , true )
296
+ a := agents [0 ]
297
+
298
+ require .True (t , serverTailnet .Conn ().GetBlockEndpoints (), "expected BlockEndpoints to be set" )
299
+
300
+ u , err := url .Parse (fmt .Sprintf ("http://127.0.0.1:%d" , codersdk .WorkspaceAgentHTTPAPIServerPort ))
301
+ require .NoError (t , err )
302
+
303
+ rp := serverTailnet .ReverseProxy (u , u , a .id )
304
+
305
+ rw := httptest .NewRecorder ()
306
+ req := httptest .NewRequest (
307
+ http .MethodGet ,
308
+ u .String (),
309
+ nil ,
310
+ ).WithContext (ctx )
311
+
312
+ rp .ServeHTTP (rw , req )
313
+ res := rw .Result ()
314
+ defer res .Body .Close ()
315
+
316
+ assert .Equal (t , http .StatusOK , res .StatusCode )
317
+ })
288
318
}
289
319
290
320
type wrappedListener struct {
@@ -311,7 +341,7 @@ type agentWithID struct {
311
341
agent.Agent
312
342
}
313
343
314
- func setupServerTailnetAgent (t * testing.T , agentNum int ) ([]agentWithID , * coderd.ServerTailnet ) {
344
+ func setupServerTailnetAgent (t * testing.T , agentNum int , blockEndpoints bool ) ([]agentWithID , * coderd.ServerTailnet ) {
315
345
logger := slogtest .Make (t , nil ).Leveled (slog .LevelDebug )
316
346
derpMap , derpServer := tailnettest .RunDERPAndSTUN (t )
317
347
@@ -357,6 +387,7 @@ func setupServerTailnetAgent(t *testing.T, agentNum int) ([]agentWithID, *coderd
357
387
func () * tailcfg.DERPMap { return derpMap },
358
388
false ,
359
389
func (context.Context ) (tailnet.MultiAgentConn , error ) { return coord .ServeMultiAgent (uuid .New ()), nil },
390
+ blockEndpoints ,
360
391
trace .NewNoopTracerProvider (),
361
392
)
362
393
require .NoError (t , err )
0 commit comments