MCPcopy Index your code
hub / github.com/coder/coder / TestBasicDERPController_RewriteDERPMap

Function TestBasicDERPController_RewriteDERPMap

tailnet/controllers_test.go:2236–2280  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

2234}
2235
2236func TestBasicDERPController_RewriteDERPMap(t *testing.T) {
2237 t.Parallel()
2238 ctx := testutil.Context(t, testutil.WaitShort)
2239 logger := slogtest.Make(t, &slogtest.Options{IgnoreErrors: true}).Leveled(slog.LevelDebug)
2240
2241 testDERPMap := &tailcfg.DERPMap{
2242 Regions: map[int]*tailcfg.DERPRegion{
2243 1: {
2244 RegionID: 1,
2245 },
2246 },
2247 }
2248
2249 // Ensure the fake rewriter works as expected.
2250 rewriter := &fakeDERPMapRewriter{
2251 ctx: ctx,
2252 calls: make(chan rewriteDERPMapCall, 16),
2253 }
2254 rewriter.RewriteDERPMap(testDERPMap)
2255 rewriteCall := testutil.TryReceive(ctx, t, rewriter.calls)
2256 require.Same(t, testDERPMap, rewriteCall.derpMap)
2257
2258 derpClient := &fakeDERPClient{
2259 ch: make(chan *tailcfg.DERPMap),
2260 err: nil,
2261 }
2262 defer derpClient.Close()
2263
2264 derpSetter := &fakeDERPMapSetter{
2265 ctx: ctx,
2266 calls: make(chan *setDERPMapCall, 16),
2267 }
2268
2269 derpCtrl := tailnet.NewBasicDERPController(logger, rewriter, derpSetter)
2270 derpCtrl.New(derpClient)
2271
2272 // Simulate receiving a new DERP map from the server, which should be passed
2273 // to the rewriter and setter.
2274 testDERPMap = testDERPMap.Clone() // make a new pointer
2275 derpClient.ch <- testDERPMap
2276 rewriteCall = testutil.TryReceive(ctx, t, rewriter.calls)
2277 require.Same(t, testDERPMap, rewriteCall.derpMap)
2278 setterCall := testutil.TryReceive(ctx, t, derpSetter.calls)
2279 require.Same(t, testDERPMap, setterCall.derpMap)
2280}
2281
2282type fakeWorkspaceUpdatesController struct {
2283 ctx context.Context

Callers

nothing calls this directly

Calls 7

RewriteDERPMapMethod · 0.95
CloseMethod · 0.95
ContextFunction · 0.92
TryReceiveFunction · 0.92
NewBasicDERPControllerFunction · 0.92
NewMethod · 0.65
CloneMethod · 0.45

Tested by

no test coverage detected