You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
1.4 KiB

  1. package config_test
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. "gerrit.wikimedia.org/r/blubber/config"
  6. )
  7. func TestUserConfigValidation(t *testing.T) {
  8. t.Run("as", func(t *testing.T) {
  9. t.Run("ok", func(t *testing.T) {
  10. err := config.Validate(config.UserConfig{
  11. As: "foo-bar.baz",
  12. })
  13. assert.False(t, config.IsValidationError(err))
  14. })
  15. t.Run("optional", func(t *testing.T) {
  16. err := config.Validate(config.UserConfig{})
  17. assert.False(t, config.IsValidationError(err))
  18. })
  19. t.Run("no spaces", func(t *testing.T) {
  20. err := config.Validate(config.UserConfig{
  21. As: "foo bar",
  22. })
  23. if assert.True(t, config.IsValidationError(err)) {
  24. msg := config.HumanizeValidationError(err)
  25. assert.Equal(t, `as: "foo bar" is not a valid user name`, msg)
  26. }
  27. })
  28. t.Run("long enough", func(t *testing.T) {
  29. err := config.Validate(config.UserConfig{
  30. As: "fo",
  31. })
  32. if assert.True(t, config.IsValidationError(err)) {
  33. msg := config.HumanizeValidationError(err)
  34. assert.Equal(t, `as: "fo" is not a valid user name`, msg)
  35. }
  36. })
  37. t.Run("not root", func(t *testing.T) {
  38. err := config.Validate(config.UserConfig{
  39. As: "root",
  40. })
  41. if assert.True(t, config.IsValidationError(err)) {
  42. msg := config.HumanizeValidationError(err)
  43. assert.Equal(t, `as: "root" is not a valid user name`, msg)
  44. }
  45. })
  46. })
  47. }