@@ -3,6 +3,7 @@ package cfaws
33import (
44 "testing"
55
6+ "github.com/aws/aws-sdk-go-v2/config"
67 "github.com/stretchr/testify/assert"
78)
89
@@ -13,3 +14,57 @@ func TestSessionName(t *testing.T) {
1314 name := sessionName ()
1415 assert .LessOrEqual (t , len (name ), 32 )
1516}
17+
18+ func TestFindRoleSessionNameInParents (t * testing.T ) {
19+ // Test case: No parent profiles
20+ profile := & Profile {
21+ AWSConfig : config.SharedConfig {RoleSessionName : "" },
22+ Parents : nil ,
23+ }
24+ assert .Equal (t , "" , findRoleSessionNameInParents (profile ))
25+
26+ // Test case: Parent profile with RoleSessionName
27+ parentProfile := & Profile {
28+ AWSConfig : config.SharedConfig {RoleSessionName : "parent-session" },
29+ Parents : nil ,
30+ }
31+ profile .Parents = []* Profile {parentProfile }
32+ assert .Equal (t , "parent-session" , findRoleSessionNameInParents (profile ))
33+
34+ // Test case: Multiple parent profiles
35+ grandParentProfile := & Profile {
36+ AWSConfig : config.SharedConfig {RoleSessionName : "grandparent-session" },
37+ Parents : nil ,
38+ }
39+ parentProfile .Parents = []* Profile {grandParentProfile }
40+ assert .Equal (t , "parent-session" , findRoleSessionNameInParents (profile ))
41+ }
42+
43+ func TestGetRoleSessionNameFromProfile (t * testing.T ) {
44+ // Test case: Profile with RoleSessionName
45+ profile := & Profile {
46+ AWSConfig : config.SharedConfig {RoleSessionName : "profile-session" },
47+ Parents : nil ,
48+ }
49+ assert .Equal (t , "profile-session" , getRoleSessionNameFromProfile (profile ))
50+
51+ // Test case: Parent profile with RoleSessionName
52+ parentProfile := & Profile {
53+ AWSConfig : config.SharedConfig {RoleSessionName : "parent-session" },
54+ Parents : nil ,
55+ }
56+ profile = & Profile {
57+ AWSConfig : config.SharedConfig {RoleSessionName : "" },
58+ Parents : []* Profile {parentProfile },
59+ }
60+ assert .Equal (t , "parent-session" , getRoleSessionNameFromProfile (profile ))
61+
62+ // Test case: No RoleSessionName in profile or parents
63+ profile = & Profile {
64+ AWSConfig : config.SharedConfig {RoleSessionName : "" },
65+ Parents : nil ,
66+ }
67+ name := getRoleSessionNameFromProfile (profile )
68+ assert .NotEmpty (t , name )
69+ assert .Contains (t , name , "gntd-" )
70+ }
0 commit comments