Skip to content

Commit

Permalink
Merge branch 'master' into merge-back/1.57.0
Browse files Browse the repository at this point in the history
  • Loading branch information
NetaNir authored Aug 7, 2020
2 parents 2ccfc50 + e7dc82f commit 3bdf8f5
Show file tree
Hide file tree
Showing 5 changed files with 160 additions and 157 deletions.
311 changes: 156 additions & 155 deletions packages/@aws-cdk/aws-cognito/test/user-pool.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -896,202 +896,203 @@ describe('User Pool', () => {
},
});
});
});

test('addClient', () => {
// GIVEN
const stack = new Stack();

// WHEN
const userpool = new UserPool(stack, 'Pool');
userpool.addClient('UserPoolClient', {
userPoolClientName: 'userpoolclient',
});
const imported = UserPool.fromUserPoolId(stack, 'imported', 'imported-userpool-id');
imported.addClient('UserPoolImportedClient', {
userPoolClientName: 'userpoolimportedclient',
});

// THEN
expect(stack).toHaveResourceLike('AWS::Cognito::UserPoolClient', {
ClientName: 'userpoolclient',
UserPoolId: stack.resolve(userpool.userPoolId),
});
expect(stack).toHaveResourceLike('AWS::Cognito::UserPoolClient', {
ClientName: 'userpoolimportedclient',
UserPoolId: stack.resolve(imported.userPoolId),
});
});

test('addDomain', () => {
// GIVEN
const stack = new Stack();

// WHEN
const userpool = new UserPool(stack, 'Pool');
userpool.addDomain('UserPoolDomain', {
cognitoDomain: {
domainPrefix: 'userpooldomain',
},
});
const imported = UserPool.fromUserPoolId(stack, 'imported', 'imported-userpool-id');
imported.addDomain('UserPoolImportedDomain', {
cognitoDomain: {
domainPrefix: 'userpoolimporteddomain',
},
});

// THEN
expect(stack).toHaveResourceLike('AWS::Cognito::UserPoolDomain', {
Domain: 'userpooldomain',
UserPoolId: stack.resolve(userpool.userPoolId),
});
expect(stack).toHaveResourceLike('AWS::Cognito::UserPoolDomain', {
Domain: 'userpoolimporteddomain',
UserPoolId: stack.resolve(imported.userPoolId),
});
});

test('registered identity providers', () => {
// GIVEN
const stack = new Stack();
const userPool = new UserPool(stack, 'pool');
const provider1 = UserPoolIdentityProvider.fromProviderName(stack, 'provider1', 'provider1');
const provider2 = UserPoolIdentityProvider.fromProviderName(stack, 'provider2', 'provider2');

// WHEN
userPool.registerIdentityProvider(provider1);
userPool.registerIdentityProvider(provider2);

// THEN
expect(userPool.identityProviders).toEqual([provider1, provider2]);
});

function fooFunction(scope: Construct, name: string): lambda.IFunction {
return new lambda.Function(scope, name, {
functionName: name,
code: lambda.Code.inline('foo'),
runtime: lambda.Runtime.NODEJS_12_X,
handler: 'index.handler',
});
}

describe('AccountRecoverySetting should be configured correctly', () => {
test('EMAIL_AND_PHONE_WITHOUT_MFA', () => {
test('addClient', () => {
// GIVEN
const stack = new Stack();

// WHEN
new UserPool(stack, 'pool', { accountRecovery: AccountRecovery.EMAIL_AND_PHONE_WITHOUT_MFA });
const userpool = new UserPool(stack, 'Pool');
userpool.addClient('UserPoolClient', {
userPoolClientName: 'userpoolclient',
});
const imported = UserPool.fromUserPoolId(stack, 'imported', 'imported-userpool-id');
imported.addClient('UserPoolImportedClient', {
userPoolClientName: 'userpoolimportedclient',
});

// THEN
expect(stack).toHaveResource('AWS::Cognito::UserPool', {
AccountRecoverySetting: {
RecoveryMechanisms: [
{ Name: 'verified_email', Priority: 1 },
{ Name: 'verified_phone_number', Priority: 2 },
],
},
expect(stack).toHaveResourceLike('AWS::Cognito::UserPoolClient', {
ClientName: 'userpoolclient',
UserPoolId: stack.resolve(userpool.userPoolId),
});
expect(stack).toHaveResourceLike('AWS::Cognito::UserPoolClient', {
ClientName: 'userpoolimportedclient',
UserPoolId: stack.resolve(imported.userPoolId),
});
});

test('PHONE_WITHOUT_MFA_AND_EMAIL', () => {
test('addDomain', () => {
// GIVEN
const stack = new Stack();

// WHEN
new UserPool(stack, 'pool', { accountRecovery: AccountRecovery.PHONE_WITHOUT_MFA_AND_EMAIL });
const userpool = new UserPool(stack, 'Pool');
userpool.addDomain('UserPoolDomain', {
cognitoDomain: {
domainPrefix: 'userpooldomain',
},
});
const imported = UserPool.fromUserPoolId(stack, 'imported', 'imported-userpool-id');
imported.addDomain('UserPoolImportedDomain', {
cognitoDomain: {
domainPrefix: 'userpoolimporteddomain',
},
});

// THEN
expect(stack).toHaveResource('AWS::Cognito::UserPool', {
AccountRecoverySetting: {
RecoveryMechanisms: [
{ Name: 'verified_phone_number', Priority: 1 },
{ Name: 'verified_email', Priority: 2 },
],
},
expect(stack).toHaveResourceLike('AWS::Cognito::UserPoolDomain', {
Domain: 'userpooldomain',
UserPoolId: stack.resolve(userpool.userPoolId),
});
expect(stack).toHaveResourceLike('AWS::Cognito::UserPoolDomain', {
Domain: 'userpoolimporteddomain',
UserPoolId: stack.resolve(imported.userPoolId),
});
});

test('EMAIL_ONLY', () => {
test('registered identity providers', () => {
// GIVEN
const stack = new Stack();
const userPool = new UserPool(stack, 'pool');
const provider1 = UserPoolIdentityProvider.fromProviderName(stack, 'provider1', 'provider1');
const provider2 = UserPoolIdentityProvider.fromProviderName(stack, 'provider2', 'provider2');

// WHEN
new UserPool(stack, 'pool', { accountRecovery: AccountRecovery.EMAIL_ONLY });
userPool.registerIdentityProvider(provider1);
userPool.registerIdentityProvider(provider2);

// THEN
expect(stack).toHaveResource('AWS::Cognito::UserPool', {
AccountRecoverySetting: {
RecoveryMechanisms: [
{ Name: 'verified_email', Priority: 1 },
],
},
});
expect(userPool.identityProviders).toEqual([provider1, provider2]);
});

test('PHONE_ONLY_WITHOUT_MFA', () => {
// GIVEN
const stack = new Stack();
describe('AccountRecoverySetting should be configured correctly', () => {
test('EMAIL_AND_PHONE_WITHOUT_MFA', () => {
// GIVEN
const stack = new Stack();

// WHEN
new UserPool(stack, 'pool', { accountRecovery: AccountRecovery.EMAIL_AND_PHONE_WITHOUT_MFA });

// THEN
expect(stack).toHaveResource('AWS::Cognito::UserPool', {
AccountRecoverySetting: {
RecoveryMechanisms: [
{ Name: 'verified_email', Priority: 1 },
{ Name: 'verified_phone_number', Priority: 2 },
],
},
});
});

// WHEN
new UserPool(stack, 'pool', { accountRecovery: AccountRecovery.PHONE_ONLY_WITHOUT_MFA });
test('PHONE_WITHOUT_MFA_AND_EMAIL', () => {
// GIVEN
const stack = new Stack();

// THEN
expect(stack).toHaveResource('AWS::Cognito::UserPool', {
AccountRecoverySetting: {
RecoveryMechanisms: [
{ Name: 'verified_phone_number', Priority: 1 },
],
},
// WHEN
new UserPool(stack, 'pool', { accountRecovery: AccountRecovery.PHONE_WITHOUT_MFA_AND_EMAIL });

// THEN
expect(stack).toHaveResource('AWS::Cognito::UserPool', {
AccountRecoverySetting: {
RecoveryMechanisms: [
{ Name: 'verified_phone_number', Priority: 1 },
{ Name: 'verified_email', Priority: 2 },
],
},
});
});
});

test('NONE', () => {
// GIVEN
const stack = new Stack();
test('EMAIL_ONLY', () => {
// GIVEN
const stack = new Stack();

// WHEN
new UserPool(stack, 'pool', { accountRecovery: AccountRecovery.NONE });
// WHEN
new UserPool(stack, 'pool', { accountRecovery: AccountRecovery.EMAIL_ONLY });

// THEN
expect(stack).toHaveResource('AWS::Cognito::UserPool', {
AccountRecoverySetting: {
RecoveryMechanisms: [
{ Name: 'admin_only', Priority: 1 },
],
},
// THEN
expect(stack).toHaveResource('AWS::Cognito::UserPool', {
AccountRecoverySetting: {
RecoveryMechanisms: [
{ Name: 'verified_email', Priority: 1 },
],
},
});
});
});

test('PHONE_AND_EMAIL', () => {
// GIVEN
const stack = new Stack();
test('PHONE_ONLY_WITHOUT_MFA', () => {
// GIVEN
const stack = new Stack();

// WHEN
new UserPool(stack, 'pool', { accountRecovery: AccountRecovery.PHONE_AND_EMAIL });
// WHEN
new UserPool(stack, 'pool', { accountRecovery: AccountRecovery.PHONE_ONLY_WITHOUT_MFA });

// THEN
expect(stack).toHaveResource('AWS::Cognito::UserPool', {
AccountRecoverySetting: ABSENT,
// THEN
expect(stack).toHaveResource('AWS::Cognito::UserPool', {
AccountRecoverySetting: {
RecoveryMechanisms: [
{ Name: 'verified_phone_number', Priority: 1 },
],
},
});
});
});

test('default', () => {
// GIVEN
const stack = new Stack();
test('NONE', () => {
// GIVEN
const stack = new Stack();

// WHEN
new UserPool(stack, 'pool');
// WHEN
new UserPool(stack, 'pool', { accountRecovery: AccountRecovery.NONE });

// THEN
expect(stack).toHaveResource('AWS::Cognito::UserPool', {
AccountRecoverySetting: {
RecoveryMechanisms: [
{ Name: 'verified_phone_number', Priority: 1 },
{ Name: 'verified_email', Priority: 2 },
],
},
// THEN
expect(stack).toHaveResource('AWS::Cognito::UserPool', {
AccountRecoverySetting: {
RecoveryMechanisms: [
{ Name: 'admin_only', Priority: 1 },
],
},
});
});

test('PHONE_AND_EMAIL', () => {
// GIVEN
const stack = new Stack();

// WHEN
new UserPool(stack, 'pool', { accountRecovery: AccountRecovery.PHONE_AND_EMAIL });

// THEN
expect(stack).toHaveResource('AWS::Cognito::UserPool', {
AccountRecoverySetting: ABSENT,
});
});

test('default', () => {
// GIVEN
const stack = new Stack();

// WHEN
new UserPool(stack, 'pool');

// THEN
expect(stack).toHaveResource('AWS::Cognito::UserPool', {
AccountRecoverySetting: {
RecoveryMechanisms: [
{ Name: 'verified_phone_number', Priority: 1 },
{ Name: 'verified_email', Priority: 2 },
],
},
});
});
});
});


function fooFunction(scope: Construct, name: string): lambda.IFunction {
return new lambda.Function(scope, name, {
functionName: name,
code: lambda.Code.inline('foo'),
runtime: lambda.Runtime.NODEJS_12_X,
handler: 'index.handler',
});
}
2 changes: 1 addition & 1 deletion packages/@aws-cdk/aws-lambda/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -362,7 +362,7 @@ new lambda.Function(this, 'Function', {
command: [
'bash', '-c', `
pip install -r requirements.txt -t /asset-output &&
rsync -r . /asset-output
cp -au . /asset-output
`,
],
},
Expand Down
2 changes: 1 addition & 1 deletion packages/@aws-cdk/aws-lambda/test/integ.bundling.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class TestStack extends Stack {
image: lambda.Runtime.PYTHON_3_6.bundlingDockerImage,
command: [
'bash', '-c', [
'rsync -r . /asset-output',
'cp -au . /asset-output',
'cd /asset-output',
'pip install -r requirements.txt -t .',
].join(' && '),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,7 @@ export class CfnInclude extends core.CfnElement {
type: expression.Type,
default: expression.Default,
allowedPattern: expression.AllowedPattern,
allowedValues: expression.AllowedValues,
constraintDescription: expression.ConstraintDescription,
description: expression.Description,
maxLength: expression.MaxLength,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
"Description": "the time in seconds that a browser will cache the preflight response",
"MaxValue": "300",
"MinValue": "0",
"AllowedValues": [1, 2, 3, 10, 100, 300],
"Type": "Number",
"NoEcho": "true"
}
Expand Down

0 comments on commit 3bdf8f5

Please sign in to comment.