package tools
import (
"context"
"encoding/json"
"net/http"
"net/http/httptest"
"testing"
mcpnetbird "github.com/aantti/mcp-netbird"
)
func TestListNetbirdPeers(t *testing.T) {
// Mock response data
mockResp := []NetbirdPeer{
{
ID: "peer1",
Name: "Test Peer",
// Add other fields as needed for your struct
},
}
// Create mock HTTP server
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
if r.URL.Path != "/peers" {
http.NotFound(w, r)
return
}
w.Header().Set("Content-Type", "application/json")
_ = json.NewEncoder(w).Encode(mockResp)
}))
defer server.Close()
// Set the test client
mcpnetbird.TestNetbirdClient = mcpnetbird.NewNetbirdClientWithBaseURL(server.URL)
defer func() { mcpnetbird.TestNetbirdClient = nil }()
ctx := mcpnetbird.WithNetbirdAPIKey(context.Background(), "test-token")
peers, err := listNetbirdPeers(ctx, ListNetbirdPeersParams{})
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
if len(peers) != 1 || peers[0].ID != "peer1" {
t.Errorf("unexpected result: %+v", peers)
}
}