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

Function TestIntegrationE2EUpdateUsers

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

Source from the content-addressed store, hash-verified

655}
656
657func TestIntegrationE2EUpdateUsers(t *testing.T) {
658 mustHaveCommands(t, "ip", "wg", "curl")
659
660 const (
661 iface = "wg-e2e-upd"
662 wgPort = 51934
663 configCIDR = "10.210.4.1/24"
664 allowedUser = "allowed-update@example.com"
665 deniedUser = "denied-update@example.com"
666 )
667
668 serverPrivateKey := mustGeneratePrivateKey(t)
669
670 allowedPriv, allowedPub, err := GenerateKeyPair()
671 if err != nil {
672 t.Fatalf("failed to generate allowed user keys: %v", err)
673 }
674 deniedPriv, deniedPub, err := GenerateKeyPair()
675 if err != nil {
676 t.Fatalf("failed to generate denied user keys: %v", err)
677 }
678
679 configJSON := fmt.Sprintf(
680 `{"interface_name":"%s","listen_port":%d,"private_key":"%s","address":["%s"],"tag":"test-node"}`,
681 iface, wgPort, serverPrivateKey, configCIDR,
682 )
683 wg := createTestWireGuard(t, configJSON)
684 defer wg.Shutdown()
685
686 seedUsers := []*common.User{
687 buildWGUser(allowedUser, allowedPub, "10.210.4.2/32", iface, true),
688 buildWGUser(deniedUser, deniedPub, "10.210.4.3/32", iface, true),
689 }
690 if err := wg.SyncUsers(context.Background(), seedUsers); err != nil {
691 t.Fatalf("failed initial SyncUsers seed: %v", err)
692 }
693
694 deniedOldIP := mustUserPeerIP(t, wg, deniedUser)
695
696 updateUsers := []*common.User{
697 buildWGUser(allowedUser, allowedPub, "10.210.4.2/32", iface, true),
698 buildWGUser(deniedUser, deniedPub, "10.210.4.3/32", iface, false),
699 }
700 if err := wg.UpdateUsers(context.Background(), updateUsers); err != nil {
701 t.Fatalf("failed UpdateUsers: %v", err)
702 }
703
704 if peer := wg.peerStore.GetByEmail(deniedUser); peer != nil {
705 t.Fatalf("expected denied user peers removed after UpdateUsers, got peer with key %s", peer.PublicKey)
706 }
707
708 url, serverWGIP := startWGHTTPServer(t, wg)
709 serverPublicKey := wireGuardServerPublicKey(t, wg)
710
711 allowedNS := createNamespaceFixture(t, 67)
712 deniedNS := createNamespaceFixture(t, 68)
713
714 configureNamespaceWGClient(t, allowedNS, "wgc0", allowedPriv, mustUserPeerIP(t, wg, allowedUser), serverPublicKey, wgPort, serverWGIP)

Callers

nothing calls this directly

Calls 15

mustHaveCommandsFunction · 0.85
mustGeneratePrivateKeyFunction · 0.85
GenerateKeyPairFunction · 0.85
createTestWireGuardFunction · 0.85
buildWGUserFunction · 0.85
mustUserPeerIPFunction · 0.85
startWGHTTPServerFunction · 0.85
wireGuardServerPublicKeyFunction · 0.85
createNamespaceFixtureFunction · 0.85
GetByEmailMethod · 0.80

Tested by

no test coverage detected