Skip to content

Commit 87dc582

Browse files
author
Chris Gilmer
committed
Convert tests for add-profile and setup to using test suite
1 parent 696ae86 commit 87dc582

File tree

2 files changed

+85
-37
lines changed

2 files changed

+85
-37
lines changed

cmd/add_profile_test.go

Lines changed: 40 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,43 @@
11
package main
22

33
import (
4+
"io/ioutil"
45
"log"
56
"os"
67
"testing"
78

89
"github.com/99designs/aws-vault/vault"
9-
"github.com/stretchr/testify/assert"
10+
"github.com/stretchr/testify/suite"
1011
)
1112

12-
func TestAddProfile(t *testing.T) {
13+
type addProfileTestSuite struct {
14+
suite.Suite
15+
logger *log.Logger
16+
}
17+
18+
func (suite *addProfileTestSuite) Setup() {
19+
// Disable any logging that isn't attached to the logger unless using the verbose flag
20+
log.SetOutput(ioutil.Discard)
21+
log.SetFlags(0)
22+
23+
// Setup logger
24+
var logger = log.New(os.Stdout, "", log.LstdFlags)
1325

14-
// Test logger
15-
logger := log.New(os.Stdout, "", log.LstdFlags)
26+
// Remove the flags for the logger
1627
logger.SetFlags(0)
28+
suite.SetLogger(logger)
29+
}
30+
31+
func (suite *addProfileTestSuite) SetLogger(logger *log.Logger) {
32+
suite.logger = logger
33+
}
34+
35+
func TestAddProfileSuite(t *testing.T) {
36+
suite.Run(t, &addProfileTestSuite{})
37+
}
38+
39+
func (suite *addProfileTestSuite) TestAddProfile() {
40+
suite.Setup()
1741

1842
var defaultConfigAddProfile = []byte(`[profile test-id-base]
1943
region=us-west-2
@@ -27,19 +51,19 @@ region=us-west-2
2751
output=json
2852
`)
2953

30-
f := newConfigFile(t, defaultConfigAddProfile)
54+
f := newConfigFile(suite.T(), defaultConfigAddProfile)
3155
defer func() {
3256
errRemove := os.Remove(f)
33-
assert.NoError(t, errRemove)
57+
suite.NoError(errRemove)
3458
}()
3559

3660
config, err := vault.LoadConfig(f)
37-
assert.NoError(t, err)
61+
suite.NoError(err)
3862

3963
mfaSerial := "arn:aws:iam::111111111111:mfa/test-user"
4064
addProfileConfig := AddProfileConfig{
4165
// Config
42-
Logger: logger,
66+
Logger: suite.logger,
4367
Config: config,
4468

4569
// Profile Inputs
@@ -53,17 +77,17 @@ output=json
5377
AWSProfileName: "test-id",
5478
}
5579
err = addProfileConfig.AddProfile()
56-
assert.NoError(t, err)
80+
suite.NoError(err)
5781

5882
// re-load the config file
5983
config, err = vault.LoadConfig(f)
60-
assert.NoError(t, err)
84+
suite.NoError(err)
6185

6286
testSection, ok := config.ProfileSection("test-id-new")
63-
assert.True(t, ok)
64-
assert.Equal(t, testSection.SourceProfile, "test-id-base")
65-
assert.Equal(t, testSection.MfaSerial, mfaSerial)
66-
assert.Equal(t, testSection.RoleARN, "arn:aws:iam::123456789012:role/test-role")
67-
assert.Equal(t, testSection.Region, "us-west-2")
68-
// assert.Equal(t, testBaseSection.Output, "json")
87+
suite.True(ok)
88+
suite.Equal(testSection.SourceProfile, "test-id-base")
89+
suite.Equal(testSection.MfaSerial, mfaSerial)
90+
suite.Equal(testSection.RoleARN, "arn:aws:iam::123456789012:role/test-role")
91+
suite.Equal(testSection.Region, "us-west-2")
92+
// suite.Equal(testBaseSection.Outpu"json")
6993
}

cmd/setup_test.go

Lines changed: 45 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,65 @@
11
package main
22

33
import (
4+
"io/ioutil"
45
"log"
56
"os"
67
"testing"
78

89
"github.com/99designs/aws-vault/vault"
9-
"github.com/stretchr/testify/assert"
10+
"github.com/stretchr/testify/suite"
1011
)
1112

12-
func TestUpdateAWSConfigFile(t *testing.T) {
13+
type setupTestSuite struct {
14+
suite.Suite
15+
logger *log.Logger
16+
}
17+
18+
func (suite *setupTestSuite) Setup() {
19+
// Disable any logging that isn't attached to the logger unless using the verbose flag
20+
log.SetOutput(ioutil.Discard)
21+
log.SetFlags(0)
22+
23+
// Setup logger
24+
var logger = log.New(os.Stdout, "", log.LstdFlags)
1325

14-
// Test logger
15-
logger := log.New(os.Stdout, "", log.LstdFlags)
26+
// Remove the flags for the logger
1627
logger.SetFlags(0)
28+
suite.SetLogger(logger)
29+
}
30+
31+
func (suite *setupTestSuite) SetLogger(logger *log.Logger) {
32+
suite.logger = logger
33+
}
34+
35+
func TestSetupSuite(t *testing.T) {
36+
suite.Run(t, &setupTestSuite{})
37+
}
38+
39+
func (suite *setupTestSuite) TestUpdateAWSConfigFile() {
40+
suite.Setup()
1741

1842
var defaultSetupConfig = []byte(`[profile test]
1943
region=us-west-2
2044
output=json
2145
`)
2246

23-
f := newConfigFile(t, defaultSetupConfig)
47+
f := newConfigFile(suite.T(), defaultSetupConfig)
2448
defer func() {
2549
errRemove := os.Remove(f)
26-
assert.NoError(t, errRemove)
50+
suite.NoError(errRemove)
2751
}()
2852

2953
config, err := vault.LoadConfig(f)
30-
assert.NoError(t, err)
54+
suite.NoError(err)
3155

3256
keyring, err := getKeyring("test")
33-
assert.NoError(t, err)
57+
suite.NoError(err)
3458

3559
mfaSerial := "arn:aws:iam::111111111111:mfa/test-user"
3660
setupConfig := SetupConfig{
3761
// Config
38-
Logger: logger,
62+
Logger: suite.logger,
3963
Config: config,
4064
QrTempFile: nil,
4165
Keyring: keyring,
@@ -53,23 +77,23 @@ output=json
5377
MFASerial: mfaSerial,
5478
}
5579
err = setupConfig.UpdateAWSConfigFile()
56-
assert.NoError(t, err)
80+
suite.NoError(err)
5781

5882
// re-load the config file
5983
config, err = vault.LoadConfig(f)
60-
assert.NoError(t, err)
84+
suite.NoError(err)
6185

6286
testBaseSection, ok := config.ProfileSection("test-id-base")
63-
assert.True(t, ok)
64-
assert.Equal(t, len(testBaseSection.MfaSerial), 0)
65-
assert.Equal(t, testBaseSection.Region, "us-west-2")
66-
// assert.Equal(t, testBaseSection.Output, "json")
87+
suite.True(ok)
88+
suite.Equal(len(testBaseSection.MfaSerial), 0)
89+
suite.Equal(testBaseSection.Region, "us-west-2")
90+
// suite.Equal(testBaseSection.Output, "json")
6791

6892
testSection, ok := config.ProfileSection("test-id")
69-
assert.True(t, ok)
70-
assert.Equal(t, testSection.SourceProfile, "test-id-base")
71-
assert.Equal(t, testSection.MfaSerial, mfaSerial)
72-
assert.Equal(t, testSection.RoleARN, "arn:aws:iam::123456789012:role/test-role")
73-
assert.Equal(t, testSection.Region, "us-west-2")
74-
// assert.Equal(t, testBaseSection.Output, "json")
93+
suite.True(ok)
94+
suite.Equal(testSection.SourceProfile, "test-id-base")
95+
suite.Equal(testSection.MfaSerial, mfaSerial)
96+
suite.Equal(testSection.RoleARN, "arn:aws:iam::123456789012:role/test-role")
97+
suite.Equal(testSection.Region, "us-west-2")
98+
// suite.Equal(testBaseSection.Output, "json")
7599
}

0 commit comments

Comments
 (0)