mirror of
https://github.com/netbirdio/netbird.git
synced 2026-10-07 14:09:07 +02:00
adding integration tests
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
This commit is contained in:
@@ -23,36 +23,36 @@ func TestGetGroups(t *testing.T) {
|
|||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
_, err = s.Pool.Query(ctx,
|
_, err = s.Pool.Query(ctx,
|
||||||
"insert into groups (id, account_id, name, resources, public_id) VALUES('test-group-id-1',$1,'test-group-1', '[{\"ID\":\"host-id-1\",\"Type\":\"host\"}]','public-id-1')", acctId)
|
"insert into groups (id, account_id, name, resources, public_id) VALUES('g1-test-group-id-1',$1,'test-group-1', '[{\"ID\":\"host-id-1\",\"Type\":\"host\"}]','public-id-1')", acctId)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
_, err = s.Pool.Query(ctx,
|
_, err = s.Pool.Query(ctx,
|
||||||
"insert into groups (id, account_id, name, resources, public_id) VALUES('test-group-id-2',$1,'test-group-2', '[{\"ID\":\"subnet-id-1\",\"Type\":\"subnet\"}, {\"ID\":\"host-id-2\",\"Type\":\"host\"}]','public-id-2')", acctId)
|
"insert into groups (id, account_id, name, resources, public_id) VALUES('g1-test-group-id-2',$1,'test-group-2', '[{\"ID\":\"subnet-id-1\",\"Type\":\"subnet\"}, {\"ID\":\"host-id-2\",\"Type\":\"host\"}]','public-id-2')", acctId)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
_, err = s.Pool.Query(ctx,
|
_, err = s.Pool.Query(ctx,
|
||||||
"insert into group_peers (peer_id, group_id) VALUES('peer-id-1','test-group-id-1')")
|
"insert into group_peers (peer_id, group_id) VALUES('peer-id-1','g1-test-group-id-1')")
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
_, err = s.Pool.Query(ctx,
|
_, err = s.Pool.Query(ctx,
|
||||||
"insert into group_peers (peer_id, group_id) VALUES('peer-id-2','test-group-id-2')")
|
"insert into group_peers (peer_id, group_id) VALUES('peer-id-2','g1-test-group-id-2')")
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
_, err = s.Pool.Query(ctx,
|
_, err = s.Pool.Query(ctx,
|
||||||
"insert into group_peers (peer_id, group_id) VALUES('peer-id-3','test-group-id-2')")
|
"insert into group_peers (peer_id, group_id) VALUES('peer-id-3','g1-test-group-id-2')")
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
groups, resourceToGroupIdx, err := s.GetGroups(ctx, acctId)
|
groups, resourceToGroupIdx, err := s.GetGroups(ctx, acctId)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Contains(t,
|
assert.Contains(t,
|
||||||
groups,
|
groups,
|
||||||
nmdata.Group{ID: "test-group-id-1", Name: "test-group-1", PublicID: "public-id-1", Resources: []nmdata.Resource{{ID: "host-id-1", Type: "host"}}, Peers: []string{"peer-id-1"}},
|
nmdata.Group{ID: "g1-test-group-id-1", Name: "test-group-1", PublicID: "public-id-1", Resources: []nmdata.Resource{{ID: "host-id-1", Type: "host"}}, Peers: []string{"peer-id-1"}},
|
||||||
)
|
)
|
||||||
assert.NotNil(t, resourceToGroupIdx["host-id-1"]["test-group-id-1"])
|
assert.NotNil(t, resourceToGroupIdx["host-id-1"]["g1-test-group-id-1"])
|
||||||
assert.Contains(t,
|
assert.Contains(t,
|
||||||
groups,
|
groups,
|
||||||
nmdata.Group{ID: "test-group-id-2", Name: "test-group-2", PublicID: "public-id-2",
|
nmdata.Group{ID: "g1-test-group-id-2", Name: "test-group-2", PublicID: "public-id-2",
|
||||||
Resources: []nmdata.Resource{{ID: "subnet-id-1", Type: "subnet"}, {ID: "host-id-2", Type: "host"}},
|
Resources: []nmdata.Resource{{ID: "subnet-id-1", Type: "subnet"}, {ID: "host-id-2", Type: "host"}},
|
||||||
Peers: []string{"peer-id-2", "peer-id-3"}},
|
Peers: []string{"peer-id-2", "peer-id-3"}},
|
||||||
)
|
)
|
||||||
assert.NotNil(t, resourceToGroupIdx["host-id-2"]["test-group-id-2"])
|
assert.NotNil(t, resourceToGroupIdx["host-id-2"]["g1-test-group-id-2"])
|
||||||
assert.NotNil(t, resourceToGroupIdx["subnet-id-1"]["test-group-id-2"])
|
assert.NotNil(t, resourceToGroupIdx["subnet-id-1"]["g1-test-group-id-2"])
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify handling of empty fields in groups table
|
// Verify handling of empty fields in groups table
|
||||||
@@ -72,7 +72,7 @@ func TestGetGroupsWithoutExpectedFields(t *testing.T) {
|
|||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
_, err = s.Pool.Query(ctx,
|
_, err = s.Pool.Query(ctx,
|
||||||
"insert into groups (id, account_id) VALUES('test-group-id-1',$1)", acctId)
|
"insert into groups (id, account_id) VALUES('g2-test-group-id-1',$1)", acctId)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
groups, _, err := s.GetGroups(ctx, acctId)
|
groups, _, err := s.GetGroups(ctx, acctId)
|
||||||
|
|||||||
@@ -23,32 +23,35 @@ func TestGetNetworkRouters(t *testing.T) {
|
|||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
_, err = s.Pool.Query(ctx,
|
_, err = s.Pool.Query(ctx,
|
||||||
"insert into network_routers (id, account_id, public_id, peer, network_id, masquerade, metric, enabled) VALUES('test-nr-id-1',$1,'public-id-1','peer-id-1','network-id-1',TRUE,999,TRUE)", acctId)
|
`insert into network_routers (id, account_id, public_id, peer, network_id, masquerade, metric, enabled, peer_groups)
|
||||||
|
VALUES('test-nr-id-1',$1,'public-id-1','peer-id-1','network-id-1',TRUE,999,TRUE,'["nr-test-group-id-1"]')`,
|
||||||
|
acctId)
|
||||||
_, err = s.Pool.Query(ctx,
|
_, err = s.Pool.Query(ctx,
|
||||||
"insert into network_routers (id, account_id, public_id, peer, network_id, masquerade, metric, enabled) VALUES('test-nr-id-2',$1,'public-id-2','peer-id-2','network-id-2',TRUE,333,TRUE)", acctId)
|
`insert into network_routers (id, account_id, public_id, peer, network_id, masquerade, metric, enabled, peer_groups)
|
||||||
|
VALUES('test-nr-id-2',$1,'public-id-2','','network-id-2',TRUE,333,TRUE,'["nr-test-group-id-1","nr-test-group-id-2"]')`, acctId)
|
||||||
_, err = s.Pool.Query(ctx,
|
_, err = s.Pool.Query(ctx,
|
||||||
"insert into group_peers (peer_id, group_id) VALUES('peer-id-1','test-group-id-1')")
|
"insert into groups (id, account_id, public_id) VALUES('nr-test-group-id-1',$1,'public-id-1')", acctId)
|
||||||
|
_, err = s.Pool.Query(ctx,
|
||||||
|
"insert into groups (id, account_id, public_id) VALUES('nr-test-group-id-2',$1,'public-id-2')", acctId)
|
||||||
|
_, err = s.Pool.Query(ctx,
|
||||||
|
"insert into group_peers (peer_id, group_id) VALUES('peer-id-11','nr-test-group-id-1')")
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
_, err = s.Pool.Query(ctx,
|
_, err = s.Pool.Query(ctx,
|
||||||
"insert into group_peers (peer_id, group_id) VALUES('peer-id-2','test-group-id-2')")
|
"insert into group_peers (peer_id, group_id) VALUES('peer-id-22','nr-test-group-id-2')")
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
_, err = s.Pool.Query(ctx,
|
_, err = s.Pool.Query(ctx,
|
||||||
"insert into group_peers (peer_id, group_id) VALUES('peer-id-3','test-group-id-2')")
|
"insert into group_peers (peer_id, group_id) VALUES('peer-id-33','nr-test-group-id-2')")
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
|
|
||||||
groups, resourceToGroupIdx, err := s.GetGroups(ctx, acctId)
|
routers, err := s.GetNetworkRouters(ctx, acctId)
|
||||||
assert.NoError(t, err)
|
assert.NoError(t, err)
|
||||||
assert.Contains(t,
|
assert.NotEmpty(t, routers)
|
||||||
groups,
|
|
||||||
nmdata.Group{ID: "test-group-id-1", Name: "test-group-1", PublicID: "public-id-1", Resources: []nmdata.Resource{{ID: "host-id-1", Type: "host"}}, Peers: []string{"peer-id-1"}},
|
assert.Equal(t, routers["network-id-1"],
|
||||||
)
|
map[string]*nmdata.NetworkRouter{"peer-id-1": {PublicID: "public-id-1", Masquerade: true, Metric: 999, Enabled: true, PeerGroups: []string{"peer-id-11"}}})
|
||||||
assert.NotNil(t, resourceToGroupIdx["host-id-1"]["test-group-id-1"])
|
assert.Equal(t, routers["network-id-2"],
|
||||||
assert.Contains(t,
|
map[string]*nmdata.NetworkRouter{
|
||||||
groups,
|
"peer-id-11": {PublicID: "public-id-2", Masquerade: true, Metric: 333, Enabled: true, PeerGroups: []string{"peer-id-11", "peer-id-22", "peer-id-33"}},
|
||||||
nmdata.Group{ID: "test-group-id-2", Name: "test-group-2", PublicID: "public-id-2",
|
"peer-id-22": {PublicID: "public-id-2", Masquerade: true, Metric: 333, Enabled: true, PeerGroups: []string{"peer-id-11", "peer-id-22", "peer-id-33"}},
|
||||||
Resources: []nmdata.Resource{{ID: "subnet-id-1", Type: "subnet"}, {ID: "host-id-2", Type: "host"}},
|
"peer-id-33": {PublicID: "public-id-2", Masquerade: true, Metric: 333, Enabled: true, PeerGroups: []string{"peer-id-11", "peer-id-22", "peer-id-33"}}})
|
||||||
Peers: []string{"peer-id-2", "peer-id-3"}},
|
|
||||||
)
|
|
||||||
assert.NotNil(t, resourceToGroupIdx["host-id-2"]["test-group-id-2"])
|
|
||||||
assert.NotNil(t, resourceToGroupIdx["subnet-id-1"]["test-group-id-2"])
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ type networkrouter struct {
|
|||||||
PublicID sql.NullString
|
PublicID sql.NullString
|
||||||
NetworkID sql.NullString `nmap:"skip"`
|
NetworkID sql.NullString `nmap:"skip"`
|
||||||
Peer sql.NullString `nmap:"skip"`
|
Peer sql.NullString `nmap:"skip"`
|
||||||
PeersViaGroups []string `nmap:"skip"`
|
PeersViaGroups []string `nmap:"map_to:PeerGroups"`
|
||||||
Masquerade sql.NullBool
|
Masquerade sql.NullBool
|
||||||
Metric sql.NullInt64
|
Metric sql.NullInt64
|
||||||
Enabled sql.NullBool
|
Enabled sql.NullBool
|
||||||
|
|||||||
Reference in New Issue
Block a user