diff options
Diffstat (limited to 'config/user_test.go')
-rw-r--r-- | config/user_test.go | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/config/user_test.go b/config/user_test.go new file mode 100644 index 0000000..bb19296 --- /dev/null +++ b/config/user_test.go @@ -0,0 +1,63 @@ +package config_test + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "phabricator.wikimedia.org/source/blubber/config" +) + +func TestUserConfigValidation(t *testing.T) { + t.Run("as", func(t *testing.T) { + t.Run("ok", func(t *testing.T) { + err := config.Validate(config.UserConfig{ + As: "foo-bar.baz", + }) + + assert.False(t, config.IsValidationError(err)) + }) + + t.Run("optional", func(t *testing.T) { + err := config.Validate(config.UserConfig{}) + + assert.False(t, config.IsValidationError(err)) + }) + + t.Run("no spaces", func(t *testing.T) { + err := config.Validate(config.UserConfig{ + As: "foo bar", + }) + + if assert.True(t, config.IsValidationError(err)) { + msg := config.HumanizeValidationError(err) + + assert.Equal(t, `as: "foo bar" is not a valid user name`, msg) + } + }) + + t.Run("long enough", func(t *testing.T) { + err := config.Validate(config.UserConfig{ + As: "fo", + }) + + if assert.True(t, config.IsValidationError(err)) { + msg := config.HumanizeValidationError(err) + + assert.Equal(t, `as: "fo" is not a valid user name`, msg) + } + }) + + t.Run("not root", func(t *testing.T) { + err := config.Validate(config.UserConfig{ + As: "root", + }) + + if assert.True(t, config.IsValidationError(err)) { + msg := config.HumanizeValidationError(err) + + assert.Equal(t, `as: "root" is not a valid user name`, msg) + } + }) + }) +} |