From f4494bbe951746499ffed48e6a9f5c51d69c7621 Mon Sep 17 00:00:00 2001 From: Brian Ketelsen Date: Sun, 24 Sep 2023 22:28:19 -0400 Subject: [PATCH] chore: add config tests (#299) --- internal/fleek/config.go | 2 + internal/fleek/config_test.go | 108 ++++++++++++++++++++++++++++++++++ 2 files changed, 110 insertions(+) create mode 100644 internal/fleek/config_test.go diff --git a/internal/fleek/config.go b/internal/fleek/config.go index 54888cd9..6a24b93b 100644 --- a/internal/fleek/config.go +++ b/internal/fleek/config.go @@ -8,6 +8,7 @@ import ( "os/exec" "path/filepath" "runtime" + "sort" "strings" "github.com/hashicorp/go-version" @@ -328,6 +329,7 @@ func (c *Config) UniqueSystems() []string { systems = append(systems, syskey) m[syskey] = true } + sort.Strings(systems) return systems } diff --git a/internal/fleek/config_test.go b/internal/fleek/config_test.go new file mode 100644 index 00000000..2ef4d007 --- /dev/null +++ b/internal/fleek/config_test.go @@ -0,0 +1,108 @@ +package fleek + +import ( + "os" + "path/filepath" + "testing" + + "github.com/ublue-os/fleek/internal/xdg" +) + +func TestHostname(t *testing.T) { + h, err := Hostname() + if err != nil { + t.Error(err) + } + overrideHost := "fleekhost" + os.Setenv("FLEEK_HOST_OVERRIDE", overrideHost) + hOverride, err := Hostname() + if err != nil { + t.Error(err) + } + if h == hOverride { + t.Fatalf("host override: expected %s got %s", overrideHost, hOverride) + } +} + +func TestUniqueSystems(t *testing.T) { + c := &Config{ + Systems: []*System{ + { + Arch: "x86-64", + OS: "darwin", + }, + }, + } + want := "x86-64-darwin" + got := c.UniqueSystems() + if got[0] != want { + t.Fatalf("unique systems: expected %s got %s", want, got) + } + c = &Config{ + Systems: []*System{ + { + Arch: "x86-64", + OS: "darwin", + }, + { + Arch: "aarch64", + OS: "linux", + }, + }, + } + want = "aarch64-linux" + got = c.UniqueSystems() + if got[0] != want { + t.Fatalf("unique systems: expected %s got %s", want, got) + } + c = &Config{ + Systems: []*System{ + { + Hostname: "a", + Arch: "x86-64", + OS: "darwin", + }, + { + Hostname: "b", + Arch: "aarch64", + OS: "linux", + }, + { + Hostname: "c", + Arch: "aarch64", + OS: "darwin", + }, + { + Hostname: "d", + Arch: "aarch64", + OS: "darwin", + }, + }, + } + wantCount := 3 + got = c.UniqueSystems() + if len(got) != wantCount { + t.Fatalf("unique systems count: expected %d got %d", wantCount, len(got)) + } +} +func TestUserFlakeDir(t *testing.T) { + c := &Config{} + home, _ := os.UserHomeDir() + + blankFlakeDir := c.UserFlakeDir() + want := filepath.Join(home, xdg.DataSubpathRel("fleek")) + + if blankFlakeDir != want { + t.Fatalf("user flake dir: expected %s, got %s", want, blankFlakeDir) + } + want = filepath.Join(home, ".config", "fleek", "flake") + + c = &Config{ + FlakeDir: ".config/fleek/flake", + } + manualFlakeDir := c.UserFlakeDir() + if manualFlakeDir != want { + t.Fatalf("manual user flake dir: expected %s, got %s", want, manualFlakeDir) + } + +}