MCPcopy Create free account
hub / github.com/PasarGuard/node / TestIntegrationE2ESyncUsers

Function TestIntegrationE2ESyncUsers

backend/wireguard/integration_e2e_test.go:608–655  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

606}
607
608func TestIntegrationE2ESyncUsers(t *testing.T) {
609 mustHaveCommands(t, "ip", "wg", "curl")
610
611 const (
612 iface = "wg-e2e-sus"
613 wgPort = 51933
614 configCIDR = "10.210.3.1/24"
615 allowedUser = "allowed-syncusers@example.com"
616 deniedUser = "denied-syncusers@example.com"
617 )
618
619 serverPrivateKey := mustGeneratePrivateKey(t)
620
621 allowedPriv, allowedPub, err := GenerateKeyPair()
622 if err != nil {
623 t.Fatalf("failed to generate allowed user keys: %v", err)
624 }
625 deniedPriv, deniedPub, err := GenerateKeyPair()
626 if err != nil {
627 t.Fatalf("failed to generate denied user keys: %v", err)
628 }
629
630 configJSON := fmt.Sprintf(
631 `{"interface_name":"%s","listen_port":%d,"private_key":"%s","address":["%s"],"tag":"test-node"}`,
632 iface, wgPort, serverPrivateKey, configCIDR,
633 )
634 wg := createTestWireGuard(t, configJSON)
635 defer wg.Shutdown()
636
637 users := []*common.User{
638 buildWGUser(allowedUser, allowedPub, "10.210.3.2/32", iface, true),
639 buildWGUser(deniedUser, deniedPub, "10.210.3.3/32", iface, false),
640 }
641 if err := wg.SyncUsers(context.Background(), users); err != nil {
642 t.Fatalf("failed SyncUsers: %v", err)
643 }
644
645 url, serverWGIP := startWGHTTPServer(t, wg)
646 serverPublicKey := wireGuardServerPublicKey(t, wg)
647
648 allowedNS := createNamespaceFixture(t, 65)
649 deniedNS := createNamespaceFixture(t, 66)
650
651 configureNamespaceWGClient(t, allowedNS, "wgc0", allowedPriv, mustUserPeerIP(t, wg, allowedUser), serverPublicKey, wgPort, serverWGIP)
652 configureNamespaceWGClient(t, deniedNS, "wgc1", deniedPriv, "10.210.3.250", serverPublicKey, wgPort, serverWGIP)
653
654 runConnectDisconnectAssertions(t, wg, allowedUser, deniedUser, allowedNS.name, deniedNS.name, url)
655}
656
657func TestIntegrationE2EUpdateUsers(t *testing.T) {
658 mustHaveCommands(t, "ip", "wg", "curl")

Callers

nothing calls this directly

Calls 13

mustHaveCommandsFunction · 0.85
mustGeneratePrivateKeyFunction · 0.85
GenerateKeyPairFunction · 0.85
createTestWireGuardFunction · 0.85
buildWGUserFunction · 0.85
startWGHTTPServerFunction · 0.85
wireGuardServerPublicKeyFunction · 0.85
createNamespaceFixtureFunction · 0.85
mustUserPeerIPFunction · 0.85
ShutdownMethod · 0.65

Tested by

no test coverage detected