summaryrefslogtreecommitdiff
path: root/config/version_test.go
blob: 0b676c889e9be0681226917f1d0c2cd1343f311f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package config_test

import (
	"testing"

	"github.com/stretchr/testify/assert"

	"phabricator.wikimedia.org/source/blubber/config"
)

func TestVersionConfigYAML(t *testing.T) {
	cfg, err := config.ReadConfig([]byte(`---
    version: v2
    variants:
      foo: {}`))

	assert.Nil(t, err)

	if assert.NoError(t, err) {
		assert.Equal(t, "v2", cfg.Version)
	}
}

func TestVersionConfigValidation(t *testing.T) {
	t.Run("supported version", func(t *testing.T) {
		err := config.Validate(config.VersionConfig{
			Version: "v2",
		})

		assert.False(t, config.IsValidationError(err))
	})

	t.Run("unsupported version", func(t *testing.T) {
		err := config.Validate(config.VersionConfig{
			Version: "vX",
		})

		if assert.True(t, config.IsValidationError(err)) {
			msg := config.HumanizeValidationError(err)

			assert.Equal(t, `version: config version "vX" is unsupported`, msg)
		}
	})
}