All checks were successful
release-tag / release-image (push) Successful in 1m33s
56 lines
1.9 KiB
Go
56 lines
1.9 KiB
Go
package glpi
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestOAuthAndGetTicket(t *testing.T) {
|
|
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
switch r.URL.Path {
|
|
case "/api.php/token":
|
|
json.NewEncoder(w).Encode(map[string]any{"access_token": "x", "expires_in": 3600})
|
|
case "/api.php/v2.3/Assistance/Ticket/5":
|
|
json.NewEncoder(w).Encode(map[string]any{"id": 5, "name": "Hello", "category": map[string]any{"id": 2}, "status": map[string]any{"id": 1}})
|
|
default:
|
|
http.NotFound(w, r)
|
|
}
|
|
}))
|
|
defer srv.Close()
|
|
c := New(srv.URL, "v2.3", "cid", "sec", "u", "p", time.Second)
|
|
got, err := c.GetTicket(context.Background(), 5)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if got.ID != 5 || got.CategoryID != 2 {
|
|
t.Fatalf("unexpected %+v", got)
|
|
}
|
|
}
|
|
|
|
func TestValidateContractAcceptsVersionPrefixedOpenAPIPaths(t *testing.T) {
|
|
srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
|
|
switch r.URL.Path {
|
|
case "/api.php/token":
|
|
_ = json.NewEncoder(w).Encode(map[string]any{"access_token": "x", "expires_in": 3600})
|
|
case "/api.php/doc.json":
|
|
_ = json.NewEncoder(w).Encode(map[string]any{"paths": map[string]any{
|
|
"/v2.3/Assistance/Ticket": map[string]any{"get": map[string]any{}},
|
|
"/v2.3/Assistance/Ticket/{id}": map[string]any{"get": map[string]any{}, "patch": map[string]any{}},
|
|
"/v2.3/Assistance/Ticket/{id}/Timeline/Followup": map[string]any{"get": map[string]any{}, "post": map[string]any{}},
|
|
"/v2.3/Dropdowns/ITILCategory": map[string]any{"get": map[string]any{}},
|
|
}})
|
|
default:
|
|
http.NotFound(w, r)
|
|
}
|
|
}))
|
|
defer srv.Close()
|
|
c := New(srv.URL, "v2.3", "cid", "sec", "u", "p", time.Second)
|
|
if err := c.ValidateContract(context.Background()); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
}
|