mirror of
https://github.com/netbirdio/netbird.git
synced 2026-04-18 16:26:38 +00:00
add route and group tests
Signed-off-by: bcmmbaga <bethuelmbaga12@gmail.com>
This commit is contained in:
@@ -407,6 +407,11 @@ func TestGroupAccountPeersUpdate(t *testing.T) {
|
|||||||
Name: "GroupC",
|
Name: "GroupC",
|
||||||
Peers: []string{peer1.ID, peer3.ID},
|
Peers: []string{peer1.ID, peer3.ID},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
ID: "groupD",
|
||||||
|
Name: "GroupD",
|
||||||
|
Peers: []string{},
|
||||||
|
},
|
||||||
})
|
})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
@@ -663,4 +668,31 @@ func TestGroupAccountPeersUpdate(t *testing.T) {
|
|||||||
t.Error("timeout waiting for peerShouldReceiveUpdate")
|
t.Error("timeout waiting for peerShouldReceiveUpdate")
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// Saving a group linked to dns settings should update account peers and send peer update
|
||||||
|
t.Run("saving group linked to dns settings", func(t *testing.T) {
|
||||||
|
err := manager.SaveDNSSettings(context.Background(), account.Id, userID, &DNSSettings{
|
||||||
|
DisabledManagementGroups: []string{"groupD"},
|
||||||
|
})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
done := make(chan struct{})
|
||||||
|
go func() {
|
||||||
|
peerShouldReceiveUpdate(t, updMsg)
|
||||||
|
close(done)
|
||||||
|
}()
|
||||||
|
|
||||||
|
err = manager.SaveGroup(context.Background(), account.Id, userID, &nbgroup.Group{
|
||||||
|
ID: "groupD",
|
||||||
|
Name: "GroupD",
|
||||||
|
Peers: []string{peer1.ID},
|
||||||
|
})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
select {
|
||||||
|
case <-done:
|
||||||
|
case <-time.After(time.Second):
|
||||||
|
t.Error("timeout waiting for peerShouldReceiveUpdate")
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1792,6 +1792,16 @@ func TestRouteAccountPeersUpdate(t *testing.T) {
|
|||||||
Name: "GroupA",
|
Name: "GroupA",
|
||||||
Peers: []string{},
|
Peers: []string{},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
ID: "groupB",
|
||||||
|
Name: "GroupB",
|
||||||
|
Peers: []string{},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
ID: "groupC",
|
||||||
|
Name: "GroupC",
|
||||||
|
Peers: []string{},
|
||||||
|
},
|
||||||
})
|
})
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
@@ -1966,4 +1976,83 @@ func TestRouteAccountPeersUpdate(t *testing.T) {
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// Adding peer to route peer groups that do not have any peers should update account peers and send peer update
|
||||||
|
t.Run("adding peer to route peer groups that do not have any peers", func(t *testing.T) {
|
||||||
|
newRoute := route.Route{
|
||||||
|
Network: netip.MustParsePrefix("192.168.12.0/16"),
|
||||||
|
NetID: "superNet",
|
||||||
|
NetworkType: route.IPv4Network,
|
||||||
|
PeerGroups: []string{"groupB"},
|
||||||
|
Description: "super",
|
||||||
|
Masquerade: false,
|
||||||
|
Metric: 9999,
|
||||||
|
Enabled: true,
|
||||||
|
Groups: []string{routeGroup1},
|
||||||
|
}
|
||||||
|
_, err := manager.CreateRoute(
|
||||||
|
context.Background(), account.Id, newRoute.Network, newRoute.NetworkType, newRoute.Domains, newRoute.Peer,
|
||||||
|
newRoute.PeerGroups, newRoute.Description, newRoute.NetID, newRoute.Masquerade, newRoute.Metric,
|
||||||
|
newRoute.Groups, []string{}, true, userID, newRoute.KeepRoute,
|
||||||
|
)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
done := make(chan struct{})
|
||||||
|
go func() {
|
||||||
|
peerShouldReceiveUpdate(t, updMsg)
|
||||||
|
close(done)
|
||||||
|
}()
|
||||||
|
|
||||||
|
err = manager.SaveGroup(context.Background(), account.Id, userID, &nbgroup.Group{
|
||||||
|
ID: "groupB",
|
||||||
|
Name: "GroupB",
|
||||||
|
Peers: []string{peer1ID},
|
||||||
|
})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
select {
|
||||||
|
case <-done:
|
||||||
|
case <-time.After(time.Second):
|
||||||
|
t.Error("timeout waiting for peerShouldReceiveUpdate")
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// Adding peer to route groups that do not have any peers should update account peers and send peer update
|
||||||
|
t.Run("adding peer to route groups that do not have any peers", func(t *testing.T) {
|
||||||
|
newRoute := route.Route{
|
||||||
|
Network: netip.MustParsePrefix("192.168.13.0/16"),
|
||||||
|
NetID: "superNet",
|
||||||
|
NetworkType: route.IPv4Network,
|
||||||
|
PeerGroups: []string{"groupB"},
|
||||||
|
Description: "super",
|
||||||
|
Masquerade: false,
|
||||||
|
Metric: 9999,
|
||||||
|
Enabled: true,
|
||||||
|
Groups: []string{"groupC"},
|
||||||
|
}
|
||||||
|
_, err := manager.CreateRoute(
|
||||||
|
context.Background(), account.Id, newRoute.Network, newRoute.NetworkType, newRoute.Domains, newRoute.Peer,
|
||||||
|
newRoute.PeerGroups, newRoute.Description, newRoute.NetID, newRoute.Masquerade, newRoute.Metric,
|
||||||
|
newRoute.Groups, []string{}, true, userID, newRoute.KeepRoute,
|
||||||
|
)
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
done := make(chan struct{})
|
||||||
|
go func() {
|
||||||
|
peerShouldReceiveUpdate(t, updMsg)
|
||||||
|
close(done)
|
||||||
|
}()
|
||||||
|
|
||||||
|
err = manager.SaveGroup(context.Background(), account.Id, userID, &nbgroup.Group{
|
||||||
|
ID: "groupC",
|
||||||
|
Name: "GroupC",
|
||||||
|
Peers: []string{peer1ID},
|
||||||
|
})
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
select {
|
||||||
|
case <-done:
|
||||||
|
case <-time.After(time.Second):
|
||||||
|
t.Error("timeout waiting for peerShouldReceiveUpdate")
|
||||||
|
}
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user