(t *testing.T)
| 1593 | } |
| 1594 | |
| 1595 | func 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}, |
nothing calls this directly
no test coverage detected