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

Function TestTunnelAllWorkspaceUpdatesController_Initial

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

Source from the content-addressed store, hash-verified

1593}
1594
1595func TestTunnelAllWorkspaceUpdatesController_Initial(t *testing.T) {
1596 t.Parallel()
1597 ctx := testutil.Context(t, testutil.WaitShort)
1598 logger := testutil.Logger(t)
1599
1600 fUH := newFakeUpdateHandler(ctx, t)
1601 fDNS := newFakeDNSSetter(ctx, t)
1602 coordC, updateC, updateCtrl := setupConnectedAllWorkspaceUpdatesController(ctx, t, logger,
1603 tailnet.WithDNS(fDNS, "testy", tailnet.DNSNameOptions{Suffix: "mctest"}),
1604 tailnet.WithHandler(fUH),
1605 )
1606
1607 // Initial update contains 2 workspaces with 1 & 2 agents, respectively
1608 w1ID := testUUID(1)
1609 w2ID := testUUID(2)
1610 w1a1ID := testUUID(1, 1)
1611 w2a1ID := testUUID(2, 1)
1612 w2a2ID := testUUID(2, 2)
1613 initUp := &proto.WorkspaceUpdate{
1614 UpsertedWorkspaces: []*proto.Workspace{
1615 {Id: w1ID[:], Name: "w1"},
1616 {Id: w2ID[:], Name: "w2"},
1617 },
1618 UpsertedAgents: []*proto.Agent{
1619 {Id: w1a1ID[:], Name: "w1a1", WorkspaceId: w1ID[:]},
1620 {Id: w2a1ID[:], Name: "w2a1", WorkspaceId: w2ID[:]},
1621 {Id: w2a2ID[:], Name: "w2a2", WorkspaceId: w2ID[:]},
1622 },
1623 }
1624
1625 upRecvCall := testutil.TryReceive(ctx, t, updateC.recv)
1626 testutil.RequireSend(ctx, t, upRecvCall.resp, initUp)
1627
1628 // This should trigger AddTunnel for each agent
1629 var adds []uuid.UUID
1630 for range 3 {
1631 coordCall := testutil.TryReceive(ctx, t, coordC.reqs)
1632 adds = append(adds, uuid.Must(uuid.FromBytes(coordCall.req.GetAddTunnel().GetId())))
1633 testutil.RequireSend(ctx, t, coordCall.err, nil)
1634 }
1635 require.Contains(t, adds, w1a1ID)
1636 require.Contains(t, adds, w2a1ID)
1637 require.Contains(t, adds, w2a2ID)
1638
1639 ws1a1IP := netip.MustParseAddr("fd60:627a:a42b:0101::")
1640 w2a1IP := netip.MustParseAddr("fd60:627a:a42b:0201::")
1641 w2a2IP := netip.MustParseAddr("fd60:627a:a42b:0202::")
1642
1643 expectedCoderConnectFQDN, err := dnsname.ToFQDN(fmt.Sprintf(tailnet.IsCoderConnectEnabledFmtString, "mctest"))
1644 require.NoError(t, err)
1645
1646 // Also triggers setting DNS hosts
1647 expectedDNS := map[dnsname.FQDN][]netip.Addr{
1648 "w1a1.w1.me.mctest.": {ws1a1IP},
1649 "w2a1.w2.me.mctest.": {w2a1IP},
1650 "w2a2.w2.me.mctest.": {w2a2IP},
1651 "w1a1.w1.testy.mctest.": {ws1a1IP},
1652 "w2a1.w2.testy.mctest.": {w2a1IP},

Callers

nothing calls this directly

Calls 15

ContextFunction · 0.92
LoggerFunction · 0.92
WithDNSFunction · 0.92
WithHandlerFunction · 0.92
TryReceiveFunction · 0.92
RequireSendFunction · 0.92
newFakeUpdateHandlerFunction · 0.85
newFakeDNSSetterFunction · 0.85
testUUIDFunction · 0.85
GetAddTunnelMethod · 0.80
CompareMethod · 0.80

Tested by

no test coverage detected