| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package config
- import (
- "testing"
- "github.com/knadh/koanf/parsers/yaml"
- "github.com/knadh/koanf/providers/rawbytes"
- "github.com/knadh/koanf/v2"
- "github.com/stretchr/testify/assert"
- "github.com/stretchr/testify/require"
- )
- func TestJustificationDecodeHookMigratesLegacyBooleanFalse(t *testing.T) {
- cfg := loadJustificationCompatConfig(t, `
- actions:
- - title: Legacy disabled
- shell: echo hi
- justification: false
- `)
- require.Len(t, cfg.Actions, 1)
- assert.Empty(t, cfg.Actions[0].Justification)
- }
- func TestJustificationDecodeHookMigratesLegacyBooleanTrue(t *testing.T) {
- cfg := loadJustificationCompatConfig(t, `
- actions:
- - title: Legacy required
- shell: echo hi
- justification: true
- `)
- require.Len(t, cfg.Actions, 1)
- assert.Equal(t, JustificationRequiredNoTemplate, cfg.Actions[0].Justification)
- }
- func TestSanitizeJustificationMigratesWeaklyTypedLegacyStrings(t *testing.T) {
- action := &Action{Justification: "false"}
- action.sanitizeJustification()
- assert.Empty(t, action.Justification)
- action.Justification = "true"
- action.sanitizeJustification()
- assert.Equal(t, JustificationRequiredNoTemplate, action.Justification)
- }
- func loadJustificationCompatConfig(t *testing.T, yamlBody string) *Config {
- t.Helper()
- k := koanf.New(".")
- require.NoError(t, k.Load(rawbytes.Provider([]byte(yamlBody)), yaml.Parser()))
- cfg := DefaultConfig()
- require.True(t, unmarshalRoot(k, cfg))
- cfg.Sanitize()
- return cfg
- }
|