diff --git a/internal/utils/read_config_test.go b/internal/utils/read_config_test.go new file mode 100644 index 0000000..7ba06b0 --- /dev/null +++ b/internal/utils/read_config_test.go @@ -0,0 +1,55 @@ +package utils_test + +import ( + "path/filepath" + "testing" + + "github.com/9seconds/mtg/v2/internal/utils" + "github.com/stretchr/testify/suite" +) + +type ReadConfigTestSuite struct { + suite.Suite +} + +func (suite *ReadConfigTestSuite) GetConfigPath(filename string) string { + return filepath.Join("testdata", filename) +} + +func (suite *ReadConfigTestSuite) TestReadMinimal() { + conf, err := utils.ReadConfig(suite.GetConfigPath("minimal.toml")) + suite.NoError(err) + suite.NoError(conf.Validate()) + suite.Equal("0.0.0.0:80", conf.BindTo.Get("")) + suite.Equal("7mqFMMq3P2Tvvt_rPx5qhmFnb29nbGUuY29t", conf.Secret.Base64()) +} + +func (suite *ReadConfigTestSuite) TestReadAbsentFile() { + _, err := utils.ReadConfig(suite.GetConfigPath("unknown.file")) + suite.Error(err) +} + +func (suite *ReadConfigTestSuite) TestBrokenFile() { + _, err := utils.ReadConfig(suite.GetConfigPath("broken.toml")) + suite.Error(err) +} + +func (suite *ReadConfigTestSuite) TestMissedBindTo() { + _, err := utils.ReadConfig(suite.GetConfigPath("missed-bindto.toml")) + suite.Error(err) +} + +func (suite *ReadConfigTestSuite) TestMissedSecret() { + _, err := utils.ReadConfig(suite.GetConfigPath("missed-secret.toml")) + suite.Error(err) +} + +func (suite *ReadConfigTestSuite) TestEmpty() { + _, err := utils.ReadConfig(suite.GetConfigPath("empty.toml")) + suite.Error(err) +} + +func TestReadConfig(t *testing.T) { + t.Parallel() + suite.Run(t, &ReadConfigTestSuite{}) +} diff --git a/internal/utils/testdata/broken.toml b/internal/utils/testdata/broken.toml new file mode 100644 index 0000000..b4de394 --- /dev/null +++ b/internal/utils/testdata/broken.toml @@ -0,0 +1 @@ +11 diff --git a/internal/utils/testdata/empty.toml b/internal/utils/testdata/empty.toml new file mode 100644 index 0000000..e69de29 diff --git a/internal/cli/testdata/minimal.toml b/internal/utils/testdata/minimal.toml similarity index 100% rename from internal/cli/testdata/minimal.toml rename to internal/utils/testdata/minimal.toml diff --git a/internal/utils/testdata/missed-bindto.toml b/internal/utils/testdata/missed-bindto.toml new file mode 100644 index 0000000..82cce1b --- /dev/null +++ b/internal/utils/testdata/missed-bindto.toml @@ -0,0 +1,2 @@ + +secret = "7mqFMMq3P2Tvvt_rPx5qhmFnb29nbGUuY29t" diff --git a/internal/utils/testdata/missed-secret.toml b/internal/utils/testdata/missed-secret.toml new file mode 100644 index 0000000..90e9bb0 --- /dev/null +++ b/internal/utils/testdata/missed-secret.toml @@ -0,0 +1 @@ +bind-to = "0.0.0.0:80"