summaryrefslogtreecommitdiff
path: root/internal/codeberg
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-05-28 10:31:39 +0300
committerPaul Buetow <paul@buetow.org>2026-05-28 10:31:39 +0300
commit5ffe9658f0c752e899e99b91ef17d0f1baff7325 (patch)
tree395c206547374639f9f86e30c4348086be49c619 /internal/codeberg
parent2eb6ea18b942ae2ac3ed54f09d4dab3032788d46 (diff)
fix(clients): normalize constructor signatures and pointer returns (iq)
Diffstat (limited to 'internal/codeberg')
-rw-r--r--internal/codeberg/codeberg.go4
-rw-r--r--internal/codeberg/codeberg_test.go47
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")
+ }
+}