|
1 |
| -import { Template } from '@aws-cdk/assertions'; |
| 1 | +import { Annotations, Template } from '@aws-cdk/assertions'; |
2 | 2 | import { App, CfnResource, Stack } from '@aws-cdk/core';
|
3 | 3 | import { Group, ManagedPolicy, User } from '../lib';
|
4 | 4 |
|
@@ -103,3 +103,44 @@ test('cross-env group ARNs include path', () => {
|
103 | 103 | },
|
104 | 104 | });
|
105 | 105 | });
|
| 106 | + |
| 107 | +test('throw warning if attached managed policies exceed 10 in constructor', () => { |
| 108 | + // GIVEN |
| 109 | + const stack = new Stack(); |
| 110 | + |
| 111 | + // WHEN |
| 112 | + new Group(stack, 'MyGroup', { |
| 113 | + groupName: 'MyGroup', |
| 114 | + managedPolicies: [ |
| 115 | + ManagedPolicy.fromAwsManagedPolicyName('0'), |
| 116 | + ManagedPolicy.fromAwsManagedPolicyName('1'), |
| 117 | + ManagedPolicy.fromAwsManagedPolicyName('2'), |
| 118 | + ManagedPolicy.fromAwsManagedPolicyName('3'), |
| 119 | + ManagedPolicy.fromAwsManagedPolicyName('4'), |
| 120 | + ManagedPolicy.fromAwsManagedPolicyName('5'), |
| 121 | + ManagedPolicy.fromAwsManagedPolicyName('6'), |
| 122 | + ManagedPolicy.fromAwsManagedPolicyName('7'), |
| 123 | + ManagedPolicy.fromAwsManagedPolicyName('8'), |
| 124 | + ManagedPolicy.fromAwsManagedPolicyName('9'), |
| 125 | + ManagedPolicy.fromAwsManagedPolicyName('10'), |
| 126 | + ], |
| 127 | + }); |
| 128 | + |
| 129 | + Annotations.fromStack(stack).hasWarning('*', 'You added 11 to IAM Group MyGroup. The maximum number of managed policies attached to an IAM group is 10.'); |
| 130 | +}); |
| 131 | + |
| 132 | +test('throw warning if attached managed policies exceed 10 when calling `addManagedPolicy`', () => { |
| 133 | + // GIVEN |
| 134 | + const stack = new Stack(); |
| 135 | + |
| 136 | + // WHEN |
| 137 | + const group = new Group(stack, 'MyGroup', { |
| 138 | + groupName: 'MyGroup', |
| 139 | + }); |
| 140 | + |
| 141 | + for (let i = 0; i <= 11; i++) { |
| 142 | + group.addManagedPolicy(ManagedPolicy.fromAwsManagedPolicyName(i.toString())); |
| 143 | + } |
| 144 | + |
| 145 | + Annotations.fromStack(stack).hasWarning('/Default/MyGroup', 'You added 11 to IAM Group MyGroup. The maximum number of managed policies attached to an IAM group is 10.'); |
| 146 | +}); |
0 commit comments