diff options
| author | Paul Buetow <paul@buetow.org> | 2026-05-28 10:31:39 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-05-28 10:31:39 +0300 |
| commit | 5ffe9658f0c752e899e99b91ef17d0f1baff7325 (patch) | |
| tree | 395c206547374639f9f86e30c4348086be49c619 /internal/codeberg | |
| parent | 2eb6ea18b942ae2ac3ed54f09d4dab3032788d46 (diff) | |
fix(clients): normalize constructor signatures and pointer returns (iq)
Diffstat (limited to 'internal/codeberg')
| -rw-r--r-- | internal/codeberg/codeberg.go | 4 | ||||
| -rw-r--r-- | internal/codeberg/codeberg_test.go | 47 |
2 files changed, 49 insertions, 2 deletions
diff --git a/internal/codeberg/codeberg.go b/internal/codeberg/codeberg.go index 4b5e552..0d587de 100644 --- a/internal/codeberg/codeberg.go +++ b/internal/codeberg/codeberg.go @@ -41,8 +41,8 @@ type Client struct { var _ forge.RepoClient = (*Client)(nil) // NewClient creates a new Codeberg API client -func NewClient(org, token string) Client { - c := Client{ +func NewClient(token, org string) *Client { + c := &Client{ baseURL: "https://codeberg.org/api/v1", org: org, } diff --git a/internal/codeberg/codeberg_test.go b/internal/codeberg/codeberg_test.go new file mode 100644 index 0000000..02f71dd --- /dev/null +++ b/internal/codeberg/codeberg_test.go @@ -0,0 +1,47 @@ +package codeberg + +import "testing" + +func TestNewClient_UsesTokenOrgOrderAndReturnsPointer(t *testing.T) { + t.Setenv("CODEBERG_TOKEN", "") + t.Setenv("HOME", t.TempDir()) + + const ( + token = "config-token" + org = "example-org" + ) + + client := NewClient(token, org) + if client == nil { + t.Fatal("expected non-nil client") + } + if client.token != token { + t.Fatalf("expected token %q, got %q", token, client.token) + } + if client.org != org { + t.Fatalf("expected org %q, got %q", org, client.org) + } +} + +func TestNewClient_LoadsTokenFromEnvWhenConfigTokenMissing(t *testing.T) { + t.Setenv("CODEBERG_TOKEN", "env-token") + t.Setenv("HOME", t.TempDir()) + + client := NewClient("", "example-org") + if !client.HasToken() { + t.Fatal("expected token from environment") + } + if client.token != "env-token" { + t.Fatalf("expected env token, got %q", client.token) + } +} + +func TestNewClient_HasNoTokenWhenNoSourcesAvailable(t *testing.T) { + t.Setenv("CODEBERG_TOKEN", "") + t.Setenv("HOME", t.TempDir()) + + client := NewClient("", "example-org") + if client.HasToken() { + t.Fatal("expected no token when config, env, and file are empty") + } +} |
