Files
atlantis/server/user_config_test.go
2024-06-17 11:22:30 -04:00

108 lines
2.4 KiB
Go

package server_test
import (
"testing"
"github.com/runatlantis/atlantis/server"
"github.com/runatlantis/atlantis/server/events/command"
"github.com/runatlantis/atlantis/server/logging"
. "github.com/runatlantis/atlantis/testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestUserConfig_ToAllowCommandNames(t *testing.T) {
tests := []struct {
name string
allowCommands string
want []command.Name
wantErr string
}{
{
name: "full commands can be parsed by comma",
allowCommands: "apply,plan,unlock,policy_check,approve_policies,version,import,state",
want: []command.Name{
command.Apply, command.Plan, command.Unlock, command.PolicyCheck, command.ApprovePolicies, command.Version, command.Import, command.State,
},
},
{
name: "all",
allowCommands: "all",
want: []command.Name{
command.Version, command.Plan, command.Apply, command.Unlock, command.ApprovePolicies, command.Import, command.State,
},
},
{
name: "all with others returns same with all result",
allowCommands: "all,plan",
want: []command.Name{
command.Version, command.Plan, command.Apply, command.Unlock, command.ApprovePolicies, command.Import, command.State,
},
},
{
name: "empty",
allowCommands: "",
want: nil,
},
{
name: "invalid command",
allowCommands: "plan,all,invalid",
wantErr: "unknown command name: invalid",
},
{
name: "invalid command",
allowCommands: "invalid,plan,all",
wantErr: "unknown command name: invalid",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
u := server.UserConfig{
AllowCommands: tt.allowCommands,
}
got, err := u.ToAllowCommandNames()
if err != nil {
require.ErrorContains(t, err, tt.wantErr, "ToAllowCommandNames()")
}
assert.Equalf(t, tt.want, got, "ToAllowCommandNames()")
})
}
}
func TestUserConfig_ToLogLevel(t *testing.T) {
cases := []struct {
userLvl string
expLvl logging.LogLevel
}{
{
"debug",
logging.Debug,
},
{
"info",
logging.Info,
},
{
"warn",
logging.Warn,
},
{
"error",
logging.Error,
},
{
"unknown",
logging.Info,
},
}
for _, c := range cases {
t.Run(c.userLvl, func(t *testing.T) {
u := server.UserConfig{
LogLevel: c.userLvl,
}
Equals(t, c.expLvl, u.ToLogLevel())
})
}
}