(t *testing.T)
| 325 | } |
| 326 | |
| 327 | func TestGetDebug(t *testing.T) { |
| 328 | t.Parallel() |
| 329 | |
| 330 | store, _ := dbtestutil.NewDB(t) |
| 331 | ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitShort) |
| 332 | defer cancel() |
| 333 | |
| 334 | coordID := uuid.New() |
| 335 | _, err := store.UpsertTailnetCoordinator(ctx, coordID) |
| 336 | require.NoError(t, err) |
| 337 | |
| 338 | peerID := uuid.New() |
| 339 | node := &proto.Node{PreferredDerp: 44} |
| 340 | nodeb, err := gProto.Marshal(node) |
| 341 | require.NoError(t, err) |
| 342 | _, err = store.UpsertTailnetPeer(ctx, database.UpsertTailnetPeerParams{ |
| 343 | ID: peerID, |
| 344 | CoordinatorID: coordID, |
| 345 | Node: nodeb, |
| 346 | Status: database.TailnetStatusLost, |
| 347 | }) |
| 348 | require.NoError(t, err) |
| 349 | |
| 350 | dstID := uuid.New() |
| 351 | _, err = store.UpsertTailnetTunnel(ctx, database.UpsertTailnetTunnelParams{ |
| 352 | CoordinatorID: coordID, |
| 353 | SrcID: peerID, |
| 354 | DstID: dstID, |
| 355 | }) |
| 356 | require.NoError(t, err) |
| 357 | |
| 358 | debug, err := getDebug(ctx, store) |
| 359 | require.NoError(t, err) |
| 360 | |
| 361 | require.Len(t, debug.Coordinators, 1) |
| 362 | require.Len(t, debug.Peers, 1) |
| 363 | require.Len(t, debug.Tunnels, 1) |
| 364 | |
| 365 | require.Equal(t, coordID, debug.Coordinators[0].ID) |
| 366 | |
| 367 | require.Equal(t, peerID, debug.Peers[0].ID) |
| 368 | require.Equal(t, coordID, debug.Peers[0].CoordinatorID) |
| 369 | require.Equal(t, database.TailnetStatusLost, debug.Peers[0].Status) |
| 370 | require.Equal(t, node.String(), debug.Peers[0].Node) |
| 371 | |
| 372 | require.Equal(t, coordID, debug.Tunnels[0].CoordinatorID) |
| 373 | require.Equal(t, peerID, debug.Tunnels[0].SrcID) |
| 374 | require.Equal(t, dstID, debug.Tunnels[0].DstID) |
| 375 | } |
| 376 | |
| 377 | // TestPGCoordinatorUnhealthy tests that when the coordinator fails to send heartbeats and is |
| 378 | // unhealthy it disconnects any peers and does not send any extraneous database queries. |
nothing calls this directly
no test coverage detected