diff options
Diffstat (limited to 'config/version_test.go')
-rw-r--r-- | config/version_test.go | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/config/version_test.go b/config/version_test.go new file mode 100644 index 0000000..07df93e --- /dev/null +++ b/config/version_test.go @@ -0,0 +1,44 @@ +package config_test + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "phabricator.wikimedia.org/source/blubber/config" +) + +func TestVersionConfig_YAML(t *testing.T) { + cfg, err := config.ReadConfig([]byte(`--- + version: v1 + variants: + foo: {}`)) + + assert.Nil(t, err) + + if assert.NoError(t, err) { + assert.Equal(t, "v1", cfg.Version) + } +} + +func TestVersionConfig_Validation(t *testing.T) { + t.Run("supported version", func(t *testing.T) { + err := config.Validate(config.VersionConfig{ + Version: "v1", + }) + + assert.False(t, config.IsValidationError(err)) + }) + + t.Run("unsupported version", func(t *testing.T) { + err := config.Validate(config.VersionConfig{ + Version: "v2", + }) + + if assert.True(t, config.IsValidationError(err)) { + msg := config.HumanizeValidationError(err) + + assert.Equal(t, `version: config version "v2" is unsupported`, msg) + } + }) +} |