oh-my-posh/src/segment_aws_test.go

73 lines
2.8 KiB
Go
Raw Normal View History

2021-02-07 01:55:09 -08:00
package main
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestAWSSegment(t *testing.T) {
cases := []struct {
Case string
ExpectedString string
ExpectedEnabled bool
Profile string
Vault string
Region string
DefaultRegion string
ConfigFile string
Template string
DisplayDefault bool
2021-02-07 01:55:09 -08:00
}{
{Case: "enabled with default user", ExpectedString: "default@eu-west", Region: "eu-west", ExpectedEnabled: true, DisplayDefault: true},
{Case: "disabled with default user", ExpectedString: "default@eu-west", Region: "eu-west", ExpectedEnabled: false, DisplayDefault: false},
2021-02-07 01:55:09 -08:00
{Case: "disabled", ExpectedString: "", ExpectedEnabled: false},
{Case: "enabled with default user", ExpectedString: "default@eu-west", Profile: "default", Region: "eu-west", ExpectedEnabled: true, DisplayDefault: true},
{Case: "disabled with default user", ExpectedString: "default", Profile: "default", Region: "eu-west", ExpectedEnabled: false, DisplayDefault: false},
2021-02-07 01:55:09 -08:00
{Case: "enabled no region", ExpectedString: "company", ExpectedEnabled: true, Profile: "company"},
{Case: "enabled with region", ExpectedString: "company@eu-west", ExpectedEnabled: true, Profile: "company", Region: "eu-west", DefaultRegion: "us-west"},
{Case: "enabled with default region", ExpectedString: "company@us-west", ExpectedEnabled: true, Profile: "company", DefaultRegion: "us-west"},
2021-02-07 01:55:09 -08:00
{
Case: "template: enabled no region",
ExpectedString: "profile: company",
ExpectedEnabled: true,
Profile: "company",
Template: "profile: {{.Profile}}{{if .Region}} in {{.Region}}{{end}}",
},
{
Case: "template: enabled with region",
ExpectedString: "profile: company in eu-west",
ExpectedEnabled: true,
Profile: "company",
Region: "eu-west",
Template: "profile: {{.Profile}}{{if .Region}} in {{.Region}}{{end}}",
},
{Case: "template: invalid", ExpectedString: invalidTemplate, ExpectedEnabled: true, Profile: "c", Template: "{{ .Burp"},
}
for _, tc := range cases {
env := new(MockedEnvironment)
env.On("getenv", "AWS_VAULT").Return(tc.Vault)
env.On("getenv", "AWS_PROFILE").Return(tc.Profile)
env.On("getenv", "AWS_REGION").Return(tc.Region)
env.On("getenv", "AWS_DEFAULT_REGION").Return(tc.DefaultRegion)
env.On("getenv", "AWS_CONFIG_FILE").Return(tc.ConfigFile)
env.On("getFileContent", "/usr/home/.aws/config").Return("")
env.On("homeDir").Return("/usr/home")
env.onTemplate()
2022-01-01 11:08:08 -08:00
props := properties{
2021-11-26 01:37:33 -08:00
DisplayDefault: tc.DisplayDefault,
2021-02-07 01:55:09 -08:00
}
if tc.Template != "" {
2021-11-26 01:37:33 -08:00
props[SegmentTemplate] = tc.Template
2021-02-07 01:55:09 -08:00
}
aws := &aws{
env: env,
props: props,
}
assert.Equal(t, tc.ExpectedEnabled, aws.enabled(), tc.Case)
assert.Equal(t, tc.ExpectedString, aws.string(), tc.Case)
}
}