fossteams-api/pkg/skypespaces_test.go
copilot-swe-agent[bot] 631c192034
feat: add Bun JS port
2026-06-04 13:44:27 +00:00

42 lines
1.6 KiB
Go

package api
import (
"io"
"net/http"
"net/url"
"strings"
"testing"
)
func TestSkypeSpaceGetTenants(t *testing.T) {
svc := NewSkypeSpaceService(&SkypeToken{Inner: mustParseJWT(t, "skype-token", map[string]any{"email": "user@example.com"}), Type: TokenBearer})
svc.httpClient = &http.Client{Transport: roundTripFunc(func(req *http.Request) (*http.Response, error) {
if req.URL.String() != SkypeSpacesEndpoint+"/beta/users/tenants" {
t.Fatalf("unexpected URL: %s", req.URL.String())
}
if got := req.Header.Get("Authorization"); got != "Bearer "+"skype-token" {
t.Fatalf("unexpected auth header: %s", got)
}
return &http.Response{StatusCode: http.StatusOK, Header: make(http.Header), Body: io.NopCloser(strings.NewReader(`[{"tenantId":"id-1","tenantName":"Tenant","userId":"user-1","isInvitationRedeemed":true,"countryLetterCode":"CH","userType":"member","tenantType":"organization"}]`))}, nil
})}
tenants, err := svc.GetTenants()
if err != nil {
t.Fatalf("expected tenants to decode: %v", err)
}
if len(tenants) != 1 || tenants[0].TenantName != "Tenant" {
t.Fatalf("unexpected tenants: %#v", tenants)
}
}
func TestSkypeSpaceGetWithNilClient(t *testing.T) {
u, err := url.Parse(SkypeSpacesEndpoint)
if err != nil {
t.Fatalf("unable to parse endpoint: %v", err)
}
svc := SkypeSpaceSvc{token: &SkypeToken{Inner: mustParseJWT(t, "skype-token", map[string]any{"email": "user@example.com"}), Type: TokenBearer}, endpoint: u}
_, err = svc.get("/beta/users/tenants")
if err == nil || !strings.Contains(err.Error(), "httpClient is nil") {
t.Fatalf("expected nil client error, got %v", err)
}
}