package gitea import ( "context" "net/http" "net/http/httptest" "testing" ) func TestRepositoryUsesTokenAndDecodesResponse(t *testing.T) { server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if r.URL.Path != "/gitea/api/v1/repos/hop/demo" { t.Fatalf("path = %q", r.URL.Path) } if got := r.Header.Get("Authorization"); got != "token gitea-token" { t.Fatalf("authorization = %q", got) } w.Header().Set("Content-Type", "application/json") _, _ = w.Write([]byte(`{"id":42,"owner":{"login":"hop"},"name":"demo","full_name":"hop/demo","clone_url":"http://gitea/hop/demo.git","default_branch":"main"}`)) })) defer server.Close() client, err := NewClient(server.URL+"/gitea", "gitea-token") if err != nil { t.Fatal(err) } repository, err := client.Repository(context.Background(), "hop", "demo") if err != nil { t.Fatal(err) } if repository.ID != 42 || repository.OwnerName() != "hop" || repository.DefaultBranch != "main" { t.Fatalf("unexpected repository: %#v", repository) } } func TestRepositoryRequiresToken(t *testing.T) { client, err := NewClient("http://gitea.test", "") if err != nil { t.Fatal(err) } if _, err := client.Repository(context.Background(), "hop", "demo"); err != ErrTokenNotConfigured { t.Fatalf("error = %v, want %v", err, ErrTokenNotConfigured) } }