Files
GitOcean-Old/internal/config/config_test.go
T
2026-06-08 13:34:53 -05:00

45 lines
1.3 KiB
Go

package config
import (
"path/filepath"
"testing"
"time"
"gitocean/internal/model"
)
func TestClientConfigRoundTrip(t *testing.T) {
t.Setenv("GITOOCEAN_CONFIG", filepath.Join(t.TempDir(), "client.json"))
cfg := model.Config{Server: "http://example.test", Username: "alice", Token: "tok", ExpiresAt: time.Now().UTC()}
if err := SaveClient(cfg); err != nil {
t.Fatal(err)
}
got, err := LoadClient()
if err != nil {
t.Fatal(err)
}
if got.Server != cfg.Server || got.Username != cfg.Username || got.Token != cfg.Token {
t.Fatalf("unexpected config: %#v", got)
}
}
func TestServerConfigRoundTripAndEnvServer(t *testing.T) {
path := filepath.Join(t.TempDir(), "server.json")
t.Setenv("GITOOCEAN_SERVER_CONFIG", path)
t.Setenv("GITOOCEAN_SERVER", "")
cfg := model.ServerConfig{Addr: ":8080", PublicURL: "http://localhost:8080/", Storage: "storage", MySQLDSN: "u:p@tcp(localhost:3306)/gitocean"}
if err := SaveServer(path, cfg); err != nil {
t.Fatal(err)
}
got, err := LoadServer(path)
if err != nil {
t.Fatal(err)
}
if got.PublicURL != cfg.PublicURL || got.MySQLDSN != cfg.MySQLDSN {
t.Fatalf("unexpected server config: %#v", got)
}
if server := EnvServer(); server != "http://localhost:8080" {
t.Fatalf("unexpected env server: %q", server)
}
}