45 lines
1.3 KiB
Go
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)
|
|
}
|
|
}
|