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

Function TestIntegrationE2ESyncUser

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

Source from the content-addressed store, hash-verified

558}
559
560func TestIntegrationE2ESyncUser(t *testing.T) {
561 mustHaveCommands(t, "ip", "wg", "curl")
562
563 const (
564 iface = "wg-e2e-su2"
565 wgPort = 51932
566 configCIDR = "10.210.2.1/24"
567 allowedUser = "allowed-syncuser@example.com"
568 deniedUser = "denied-syncuser@example.com"
569 )
570
571 serverPrivateKey := mustGeneratePrivateKey(t)
572
573 allowedPriv, allowedPub, err := GenerateKeyPair()
574 if err != nil {
575 t.Fatalf("failed to generate allowed user keys: %v", err)
576 }
577 deniedPriv, deniedPub, err := GenerateKeyPair()
578 if err != nil {
579 t.Fatalf("failed to generate denied user keys: %v", err)
580 }
581
582 configJSON := fmt.Sprintf(
583 `{"interface_name":"%s","listen_port":%d,"private_key":"%s","address":["%s"],"tag":"test-node"}`,
584 iface, wgPort, serverPrivateKey, configCIDR,
585 )
586 wg := createTestWireGuard(t, configJSON)
587 defer wg.Shutdown()
588
589 if err := wg.SyncUser(context.Background(), buildWGUser(allowedUser, allowedPub, "10.210.2.2/32", iface, true)); err != nil {
590 t.Fatalf("failed SyncUser for allowed user: %v", err)
591 }
592 if err := wg.SyncUser(context.Background(), buildWGUser(deniedUser, deniedPub, "10.210.2.3/32", iface, false)); err != nil {
593 t.Fatalf("failed SyncUser for denied user: %v", err)
594 }
595
596 url, serverWGIP := startWGHTTPServer(t, wg)
597 serverPublicKey := wireGuardServerPublicKey(t, wg)
598
599 allowedNS := createNamespaceFixture(t, 63)
600 deniedNS := createNamespaceFixture(t, 64)
601
602 configureNamespaceWGClient(t, allowedNS, "wgc0", allowedPriv, mustUserPeerIP(t, wg, allowedUser), serverPublicKey, wgPort, serverWGIP)
603 configureNamespaceWGClient(t, deniedNS, "wgc1", deniedPriv, "10.210.2.250", serverPublicKey, wgPort, serverWGIP)
604
605 runConnectDisconnectAssertions(t, wg, allowedUser, deniedUser, allowedNS.name, deniedNS.name, url)
606}
607
608func TestIntegrationE2ESyncUsers(t *testing.T) {
609 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