package rotator import ( "context" "encoding/json" "net/http" "net/http/httptest" "testing" ) func TestVaultLogin(t *testing.T) { server := httptest.NewServer(http.HandlerFunc(func(response http.ResponseWriter, request *http.Request) { if request.URL.Path != "/v1/auth/kubernetes/login" { http.NotFound(response, request) return } var body map[string]string if err := json.NewDecoder(request.Body).Decode(&body); err != nil { t.Fatal(err) } if body["role"] != "role" || body["jwt"] != "jwt" { t.Fatalf("unexpected login body: %#v", body) } _ = json.NewEncoder(response).Encode(map[string]any{"auth": map[string]string{"client_token": "token"}}) })) defer server.Close() token, err := (vaultClient{baseURL: server.URL, client: server.Client()}).login(context.Background(), "role", "jwt") if err != nil { t.Fatal(err) } if token != "token" { t.Fatalf("unexpected token: %s", token) } }