nixbuild/format_test.go
2025-07-14 18:26:49 +09:00

48 lines
1.3 KiB
Go

package nixbuild_test
import (
"slices"
"testing"
"git.gensokyo.uk/yonah/nixbuild"
)
func TestNix(t *testing.T) {
testCases := []struct {
name string
arg []string
want []string
}{
{"build", []string{"build"},
[]string{"nix", "--extra-experimental-features", "nix-command flakes", "build"}},
{"build workflow", []string{"build", `--out-link "result"`, "--print-out-paths", "--print-build-logs"},
[]string{"nix", "--extra-experimental-features", "nix-command flakes", "build", `--out-link "result"`, "--print-out-paths", "--print-build-logs"}},
}
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
got := nixbuild.Nix(t.Context(), tc.arg...)
if !slices.Equal(got.Args, tc.want) {
t.Errorf("Nix: %#v, want %#v",
got.Args, tc.want)
}
})
}
}
func TestInstallable(t *testing.T) {
testCases := []struct {
name, flake, host, want string
}{
{"satori", "/var/lib/persist/nixos", "satori", "/var/lib/persist/nixos#nixosConfigurations.satori.config.system.build.toplevel"},
}
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
got := nixbuild.NixOSInstallable(tc.flake, tc.host)
if got != tc.want {
t.Errorf("Installable(%q, %q): %q, want %q",
tc.flake, tc.host, got, tc.want)
}
})
}
}