summaryrefslogtreecommitdiff
path: root/config/runs_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'config/runs_test.go')
-rw-r--r--config/runs_test.go124
1 files changed, 32 insertions, 92 deletions
diff --git a/config/runs_test.go b/config/runs_test.go
index 8ae87fc..2719f6f 100644
--- a/config/runs_test.go
+++ b/config/runs_test.go
@@ -9,7 +9,7 @@ import (
"phabricator.wikimedia.org/source/blubber/config"
)
-func TestRunsConfig(t *testing.T) {
+func TestRunsConfigYAML(t *testing.T) {
cfg, err := config.ReadConfig([]byte(`---
version: v1
base: foo
@@ -83,95 +83,35 @@ func TestRunsConfigInstructions(t *testing.T) {
}
func TestRunsConfigValidation(t *testing.T) {
- t.Run("as", func(t *testing.T) {
- t.Run("ok", func(t *testing.T) {
- _, err := config.ReadConfig([]byte(`---
- version: v1
- runs:
- as: foo-bar.baz`))
-
- assert.False(t, config.IsValidationError(err))
- })
-
- t.Run("optional", func(t *testing.T) {
- _, err := config.ReadConfig([]byte(`---
- version: v1
- runs: {}`))
-
- assert.False(t, config.IsValidationError(err))
- })
-
- t.Run("no spaces", func(t *testing.T) {
- _, err := config.ReadConfig([]byte(`---
- version: v1
- runs:
- 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.ReadConfig([]byte(`---
- version: v1
- runs:
- 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.ReadConfig([]byte(`---
- version: v1
- runs:
- 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)
- }
- })
- })
-
t.Run("environment", func(t *testing.T) {
t.Run("ok", func(t *testing.T) {
- _, err := config.ReadConfig([]byte(`---
- version: v1
- runs:
- environment:
- foo: bar
- f1oo: bar
- FOO: bar
- foo_fighter: bar
- FOO_FIGHTER: bar
- _FOO_FIGHTER: bar`))
+ err := config.Validate(config.RunsConfig{
+ Environment: map[string]string{
+ "foo": "bar",
+ "f1oo": "bar",
+ "FOO": "bar",
+ "foo_fighter": "bar",
+ "FOO_FIGHTER": "bar",
+ "_FOO_FIGHTER": "bar",
+ },
+ })
assert.False(t, config.IsValidationError(err))
})
t.Run("optional", func(t *testing.T) {
- _, err := config.ReadConfig([]byte(`---
- version: v1
- runs: {}`))
+ err := config.Validate(config.RunsConfig{})
assert.False(t, config.IsValidationError(err))
})
t.Run("bad", func(t *testing.T) {
t.Run("spaces", func(t *testing.T) {
- _, err := config.ReadConfig([]byte(`---
- version: v1
- runs:
- environment:
- foo fighter: bar`))
+ err := config.Validate(config.RunsConfig{
+ Environment: map[string]string{
+ "foo fighter": "bar",
+ },
+ })
if assert.True(t, config.IsValidationError(err)) {
msg := config.HumanizeValidationError(err)
@@ -181,11 +121,11 @@ func TestRunsConfigValidation(t *testing.T) {
})
t.Run("dashes", func(t *testing.T) {
- _, err := config.ReadConfig([]byte(`---
- version: v1
- runs:
- environment:
- foo-fighter: bar`))
+ err := config.Validate(config.RunsConfig{
+ Environment: map[string]string{
+ "foo-fighter": "bar",
+ },
+ })
if assert.True(t, config.IsValidationError(err)) {
msg := config.HumanizeValidationError(err)
@@ -195,11 +135,11 @@ func TestRunsConfigValidation(t *testing.T) {
})
t.Run("dots", func(t *testing.T) {
- _, err := config.ReadConfig([]byte(`---
- version: v1
- runs:
- environment:
- foo.fighter: bar`))
+ err := config.Validate(config.RunsConfig{
+ Environment: map[string]string{
+ "foo.fighter": "bar",
+ },
+ })
if assert.True(t, config.IsValidationError(err)) {
msg := config.HumanizeValidationError(err)
@@ -209,11 +149,11 @@ func TestRunsConfigValidation(t *testing.T) {
})
t.Run("starts with number", func(t *testing.T) {
- _, err := config.ReadConfig([]byte(`---
- version: v1
- runs:
- environment:
- 1foo: bar`))
+ err := config.Validate(config.RunsConfig{
+ Environment: map[string]string{
+ "1foo": "bar",
+ },
+ })
if assert.True(t, config.IsValidationError(err)) {
msg := config.HumanizeValidationError(err)