From ed91290e4742081ca44fc4394524fdce4ff8161a Mon Sep 17 00:00:00 2001 From: 9seconds Date: Fri, 30 Jul 2021 15:07:35 +0300 Subject: [PATCH] Add test for reading config --- internal/utils/read_config_test.go | 55 +++++++++++++++++++ internal/utils/testdata/broken.toml | 1 + internal/utils/testdata/empty.toml | 0 internal/{cli => utils}/testdata/minimal.toml | 0 internal/utils/testdata/missed-bindto.toml | 2 + internal/utils/testdata/missed-secret.toml | 1 + 6 files changed, 59 insertions(+) create mode 100644 internal/utils/read_config_test.go create mode 100644 internal/utils/testdata/broken.toml create mode 100644 internal/utils/testdata/empty.toml rename internal/{cli => utils}/testdata/minimal.toml (100%) create mode 100644 internal/utils/testdata/missed-bindto.toml create mode 100644 internal/utils/testdata/missed-secret.toml 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"