diff options
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") + } +} |
