Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/openstatusHQ/cli. OpenStatus CLI www.openstatus.dev
cli cli-app synthetic-monitoring
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107package config_test
import ( "os" "path/filepath" "testing"
"github.com/google/go-cmp/cmp"
"github.com/openstatusHQ/cli/internal/config")
var configFile = `tests: ids: - 1 - 2 - 3`
func Test_ReadConfig(t *testing.T) { t.Run("Read valid config file", func(t *testing.T) { f, err := os.CreateTemp(t.TempDir(), "config*.yaml") if err != nil { t.Fatal(err) }
if _, err := f.WriteString(configFile); err != nil { t.Fatal(err) } if err := f.Close(); err != nil { t.Fatal(err) }
out, err := config.ReadConfig(f.Name()) if err != nil { t.Fatal(err) }
expect := &config.Config{ Tests: config.TestsConfig{ Ids: []int{1, 2, 3}, }, }
if !cmp.Equal(expect, out) { t.Errorf("Expected %v, got %v", expect, out) } })
t.Run("File does not exist", func(t *testing.T) { _, err := config.ReadConfig("nonexistent.yaml") if err == nil { t.Error("Expected error for non-existent file, got nil") } })
t.Run("Invalid YAML content", func(t *testing.T) { f, err := os.CreateTemp(t.TempDir(), "invalid*.yaml") if err != nil { t.Fatal(err) }
if _, err := f.WriteString("invalid: yaml: content: ["); err != nil { t.Fatal(err) } if err := f.Close(); err != nil { t.Fatal(err) }
_, err = config.ReadConfig(f.Name()) if err == nil { t.Error("Expected error for invalid YAML, got nil") } })}
func Test_ReadConfig_NoStatePollution(t *testing.T) { dir := t.TempDir()
file1 := filepath.Join(dir, "config1.yaml") if err := os.WriteFile(file1, []byte("tests:\n ids:\n - 1\n - 2\n - 3\n"), 0o600); err != nil { t.Fatal(err) }
file2 := filepath.Join(dir, "config2.yaml") if err := os.WriteFile(file2, []byte("tests:\n ids:\n - 4\n - 5\n - 6\n"), 0o600); err != nil { t.Fatal(err) }
out1, err := config.ReadConfig(file1) if err != nil { t.Fatal(err) } if !cmp.Equal(out1.Tests.Ids, []int{1, 2, 3}) { t.Errorf("First read: expected [1,2,3], got %v", out1.Tests.Ids) }
out2, err := config.ReadConfig(file2) if err != nil { t.Fatal(err) } if !cmp.Equal(out2.Tests.Ids, []int{4, 5, 6}) { t.Errorf("Second read: expected [4,5,6], got %v", out2.Tests.Ids) }}