From a44a9b883811098fe32bf237534fb76c9a7677ef Mon Sep 17 00:00:00 2001 From: Bryan Pan Date: Fri, 31 Jul 2020 11:52:26 -0700 Subject: [PATCH] round out unit tests --- .../aws-appsync/lib/graphqlapi-base.ts | 4 +- .../aws-appsync/test/appsync-dynamodb.test.ts | 143 ++++++++++++++++-- .../aws-appsync/test/appsync-http.test.ts | 106 +++++++++++++ .../aws-appsync/test/appsync-import.test.ts | 134 ---------------- .../aws-appsync/test/appsync-lambda.test.ts | 121 +++++++++++++++ .../aws-appsync/test/appsync-none.test.ts | 104 +++++++++++++ .../test/integ.api-import.expected.json | 26 ++-- .../test/integ.graphql-iam.expected.json | 38 ++--- 8 files changed, 498 insertions(+), 178 deletions(-) create mode 100644 packages/@aws-cdk/aws-appsync/test/appsync-http.test.ts delete mode 100644 packages/@aws-cdk/aws-appsync/test/appsync-import.test.ts create mode 100644 packages/@aws-cdk/aws-appsync/test/appsync-lambda.test.ts create mode 100644 packages/@aws-cdk/aws-appsync/test/appsync-none.test.ts diff --git a/packages/@aws-cdk/aws-appsync/lib/graphqlapi-base.ts b/packages/@aws-cdk/aws-appsync/lib/graphqlapi-base.ts index 007b56bcd0b1e..4235a0cafeb2e 100644 --- a/packages/@aws-cdk/aws-appsync/lib/graphqlapi-base.ts +++ b/packages/@aws-cdk/aws-appsync/lib/graphqlapi-base.ts @@ -128,11 +128,11 @@ export abstract class GraphQLApiBase extends Resource implements IGraphQLApi { * * @param table The DynamoDB table backing this data source * @param options The optional configuration for this data source - * @default name - 'DynamoDbCDKDefault' + * @default name - 'TableCDKDefault' * description - undefined */ public addDynamoDbDataSource(table: ITable, options?: DataSourceOptions): DynamoDbDataSource { - const name = options?.name ?? 'DynamoDbCDKDefault'; + const name = options?.name ?? 'TableCDKDefault'; return new DynamoDbDataSource(this, name, { api: this, table, diff --git a/packages/@aws-cdk/aws-appsync/test/appsync-dynamodb.test.ts b/packages/@aws-cdk/aws-appsync/test/appsync-dynamodb.test.ts index 37e1ecc0ea57b..d3b032415dea2 100644 --- a/packages/@aws-cdk/aws-appsync/test/appsync-dynamodb.test.ts +++ b/packages/@aws-cdk/aws-appsync/test/appsync-dynamodb.test.ts @@ -1,15 +1,93 @@ import '@aws-cdk/assert/jest'; -import { MappingTemplate, PrimaryKey, Values } from '../lib'; +import * as path from 'path'; +import * as db from '@aws-cdk/aws-dynamodb'; +import * as cdk from '@aws-cdk/core'; +import * as appsync from '../lib'; function joined(str: string): string { return str.replace(/\s+/g, ''); } +// GLOBAL GIVEN +let stack: cdk.Stack; +let api: appsync.GraphQLApi; +beforeEach(() => { + stack = new cdk.Stack(); + api = new appsync.GraphQLApi(stack, 'baseApi', { + name: 'api', + schemaDefinition: appsync.SchemaDefinition.FILE, + schemaDefinitionFile: path.join(__dirname, 'appsync.test.graphql'), + }); +}); + +describe('DynamoDb Data Source configuration', () => { + // GIVEN + let table: db.Table; + beforeEach(() => { + table = new db.Table(stack, 'table', { + partitionKey: { + name: 'id', + type: db.AttributeType.STRING, + }, + }); + }); + + test('default configuration produces name `TableCDKDefault`', () => { + // WHEN + api.addDynamoDbDataSource(table); + + // EXPECT + expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { + Type: 'AMAZON_DYNAMODB', + Name: 'TableCDKDefault', + }); + }); + + test('appsync configures name correctly', () => { + // WHEN + api.addDynamoDbDataSource(table, { + name: 'custom', + }); + + // EXPECT + expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { + Type: 'AMAZON_DYNAMODB', + Name: 'custom', + }); + }); + + test('appsync configures name and description correctly', () => { + // WHEN + api.addDynamoDbDataSource(table, { + name: 'custom', + description: 'custom description', + }); + + // EXPECT + expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { + Type: 'AMAZON_DYNAMODB', + Name: 'custom', + Description: 'custom description', + }); + }); + + test('appsync errors when creating multiple dynamo db data sources with no configuration', () => { + // WHEN + const when = () => { + api.addDynamoDbDataSource(table); + api.addDynamoDbDataSource(table); + }; + + // EXPECT + expect(when).toThrow('There is already a Construct with name \'TableCDKDefault\' in GraphQLApi [baseApi]'); + }); +}); + describe('DynamoDB Mapping Templates', () => { test('PutItem projecting all', () => { - const template = MappingTemplate.dynamoDbPutItem( - PrimaryKey.partition('id').is('id'), - Values.projecting(), + const template = appsync.MappingTemplate.dynamoDbPutItem( + appsync.PrimaryKey.partition('id').is('id'), + appsync.Values.projecting(), ); const rendered = joined(template.renderTemplate()); @@ -28,9 +106,9 @@ describe('DynamoDB Mapping Templates', () => { }); test('PutItem with invididual attributes', () => { - const template = MappingTemplate.dynamoDbPutItem( - PrimaryKey.partition('id').is('id'), - Values.attribute('val').is('ctx.args.val'), + const template = appsync.MappingTemplate.dynamoDbPutItem( + appsync.PrimaryKey.partition('id').is('id'), + appsync.Values.attribute('val').is('ctx.args.val'), ); const rendered = joined(template.renderTemplate()); @@ -50,9 +128,9 @@ describe('DynamoDB Mapping Templates', () => { }); test('PutItem with additional attributes', () => { - const template = MappingTemplate.dynamoDbPutItem( - PrimaryKey.partition('id').is('id'), - Values.projecting().attribute('val').is('ctx.args.val'), + const template = appsync.MappingTemplate.dynamoDbPutItem( + appsync.PrimaryKey.partition('id').is('id'), + appsync.Values.projecting().attribute('val').is('ctx.args.val'), ); const rendered = joined(template.renderTemplate()); @@ -70,4 +148,49 @@ describe('DynamoDB Mapping Templates', () => { }`), ); }); +}); + +describe('adding DynamoDb data source from imported api', () => { + // GIVEN + let table: db.Table; + beforeEach(() => { + table = new db.Table(stack, 'table', { + partitionKey: { + name: 'id', + type: db.AttributeType.STRING, + }, + }); + }); + + test('imported api can add DynamoDbDataSource from id', () => { + // WHEN + const importedApi = appsync.GraphQLApi.fromGraphqlApiAttributes(stack, 'importedApi', { + graphqlApiId: api.apiId, + }); + importedApi.addDynamoDbDataSource(table); + + // THEN + expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { + Type: 'AMAZON_DYNAMODB', + ApiId: { 'Fn::GetAtt': [ 'baseApiCDA4D43A', 'ApiId' ], + }, + }); + }); + + test('imported api can add DynamoDbDataSource from attributes', () => { + // WHEN + const importedApi = appsync.GraphQLApi.fromGraphqlApiAttributes(stack, 'importedApi', { + graphqlApiId: api.apiId, + graphqlArn: api.arn, + }); + importedApi.addDynamoDbDataSource(table); + + // THEN + expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { + Type: 'AMAZON_DYNAMODB', + ApiId: { 'Fn::GetAtt': [ 'baseApiCDA4D43A', 'ApiId' ], + }, + }); + }); + }); \ No newline at end of file diff --git a/packages/@aws-cdk/aws-appsync/test/appsync-http.test.ts b/packages/@aws-cdk/aws-appsync/test/appsync-http.test.ts new file mode 100644 index 0000000000000..886581a75f74e --- /dev/null +++ b/packages/@aws-cdk/aws-appsync/test/appsync-http.test.ts @@ -0,0 +1,106 @@ +import '@aws-cdk/assert/jest'; +import * as path from 'path'; +import * as cdk from '@aws-cdk/core'; +import * as appsync from '../lib'; + +// GLOBAL GIVEN +let stack: cdk.Stack; +let api: appsync.GraphQLApi; +let endpoint: string; +beforeEach(() => { + stack = new cdk.Stack(); + api = new appsync.GraphQLApi(stack, 'baseApi', { + name: 'api', + schemaDefinition: appsync.SchemaDefinition.FILE, + schemaDefinitionFile: path.join(__dirname, 'appsync.test.graphql'), + }); + endpoint = 'aws.amazon.com'; +}); + +describe('Http Data Source configuration', () => { + + test('default configuration produces name `HttpCDKDefault`', () => { + // WHEN + api.addHttpDataSource(endpoint); + + // EXPECT + expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { + Type: 'HTTP', + Name: 'HttpCDKDefault', + }); + }); + + test('appsync configures name correctly', () => { + // WHEN + api.addHttpDataSource(endpoint, { + name: 'custom', + }); + + // EXPECT + expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { + Type: 'HTTP', + Name: 'custom', + }); + }); + + test('appsync configures name and description correctly', () => { + // WHEN + api.addHttpDataSource(endpoint, { + name: 'custom', + description: 'custom description', + }); + + // EXPECT + expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { + Type: 'HTTP', + Name: 'custom', + Description: 'custom description', + }); + }); + + test('appsync errors when creating multiple http data sources with no configuration', () => { + // WHEN + const when = () => { + api.addHttpDataSource(endpoint); + api.addHttpDataSource(endpoint); + }; + + // EXPECT + expect(when).toThrow('There is already a Construct with name \'HttpCDKDefault\' in GraphQLApi [baseApi]'); + }); +}); + +describe('adding http data source from imported api', () => { + test('imported api can add HttpDataSource from id', () => { + // WHEN + const importedApi = appsync.GraphQLApi.fromGraphqlApiAttributes(stack, 'importedApi', { + graphqlApiId: api.apiId, + }); + importedApi.addHttpDataSource(endpoint); + + // THEN + expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { + Type: 'HTTP', + ApiId: { 'Fn::GetAtt': [ 'baseApiCDA4D43A', 'ApiId' ], + }, + }); + }); + + test('imported api can add HttpDataSource from attributes', () => { + // WHEN + const importedApi = appsync.GraphQLApi.fromGraphqlApiAttributes(stack, 'importedApi', { + graphqlApiId: api.apiId, + graphqlArn: api.arn, + }); + importedApi.addHttpDataSource(endpoint); + + // THEN + expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { + Type: 'HTTP', + ApiId: { 'Fn::GetAtt': [ 'baseApiCDA4D43A', 'ApiId' ], + }, + }); + }); +}); + + diff --git a/packages/@aws-cdk/aws-appsync/test/appsync-import.test.ts b/packages/@aws-cdk/aws-appsync/test/appsync-import.test.ts deleted file mode 100644 index c9c12ecb2d192..0000000000000 --- a/packages/@aws-cdk/aws-appsync/test/appsync-import.test.ts +++ /dev/null @@ -1,134 +0,0 @@ -import * as path from 'path'; -import '@aws-cdk/assert/jest'; -import * as db from '@aws-cdk/aws-dynamodb'; -import * as lambda from '@aws-cdk/aws-lambda'; -import * as cdk from '@aws-cdk/core'; -import * as appsync from '../lib'; - -let stack: cdk.Stack; -let baseApi: appsync.GraphQLApi; -beforeEach( () => { - // GIVEN - stack = new cdk.Stack(); - baseApi = new appsync.GraphQLApi(stack, 'baseApi', { - name: 'api', - schemaDefinition: appsync.SchemaDefinition.FILE, - schemaDefinitionFile: path.join(__dirname, 'appsync.test.graphql'), - }); -}); - -test('imported api can add NoneDataSource from id', () => { - // WHEN - const api = appsync.GraphQLApi.fromGraphqlApiAttributes(stack, 'importedApi', { - graphqlApiId: baseApi.apiId, - }); - - api.addNoneDataSource(); - - // THEN - expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { - Type: 'NONE', - ApiId: { 'Fn::GetAtt': [ 'baseApiCDA4D43A', 'ApiId' ], - }, - }); -}); -test('imported api can add NoneDataSource from attributes', () => { - // WHEN - const api = appsync.GraphQLApi.fromGraphqlApiAttributes(stack, 'importedApi', { - graphqlApiId: baseApi.apiId, - graphqlArn: baseApi.arn, - }); - - api.addNoneDataSource(); - - // THEN - expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { - Type: 'NONE', - ApiId: { 'Fn::GetAtt': [ 'baseApiCDA4D43A', 'ApiId' ], - }, - }); -}); - -test('imported api can add DynamoDbDataSource from id', () => { - // WHEN - const api = appsync.GraphQLApi.fromGraphqlApiAttributes(stack, 'importedApi', { - graphqlApiId: baseApi.apiId, - }); - const table = new db.Table(stack, 'table', { - partitionKey: { - name: 'key', - type: db.AttributeType.NUMBER, - }, - }); - api.addDynamoDbDataSource(table); - - // THEN - expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { - Type: 'AMAZON_DYNAMODB', - ApiId: { 'Fn::GetAtt': [ 'baseApiCDA4D43A', 'ApiId' ], - }, - }); -}); - -test('imported api can add DynamoDbDataSource from attributes', () => { - // WHEN - const api = appsync.GraphQLApi.fromGraphqlApiAttributes(stack, 'importedApi', { - graphqlApiId: baseApi.apiId, - graphqlArn: baseApi.arn, - }); - const table = new db.Table(stack, 'table', { - partitionKey: { - name: 'key', - type: db.AttributeType.NUMBER, - }, - }); - api.addDynamoDbDataSource(table); - - // THEN - expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { - Type: 'AMAZON_DYNAMODB', - ApiId: { 'Fn::GetAtt': [ 'baseApiCDA4D43A', 'ApiId' ], - }, - }); -}); - -test('imported api can add LambdaDbDataSource from id', () => { - // WHEN - const api = appsync.GraphQLApi.fromGraphqlApiAttributes(stack, 'importedApi', { - graphqlApiId: baseApi.apiId, - }); - const func = new lambda.Function(stack, 'func', { - code: lambda.Code.fromAsset('test/verify'), - handler: 'iam-query.handler', - runtime: lambda.Runtime.NODEJS_12_X, - }); - api.addLambdaDataSource(func); - - // THEN - expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { - Type: 'AWS_LAMBDA', - ApiId: { 'Fn::GetAtt': [ 'baseApiCDA4D43A', 'ApiId' ], - }, - }); -}); - -test('imported api can add LambdaDataSource from attributes', () => { - // WHEN - const api = appsync.GraphQLApi.fromGraphqlApiAttributes(stack, 'importedApi', { - graphqlApiId: baseApi.apiId, - graphqlArn: baseApi.arn, - }); - const func = new lambda.Function(stack, 'func', { - code: lambda.Code.fromAsset('test/verify'), - handler: 'iam-query.handler', - runtime: lambda.Runtime.NODEJS_12_X, - }); - api.addLambdaDataSource(func); - - // THEN - expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { - Type: 'AWS_LAMBDA', - ApiId: { 'Fn::GetAtt': [ 'baseApiCDA4D43A', 'ApiId' ], - }, - }); -}); diff --git a/packages/@aws-cdk/aws-appsync/test/appsync-lambda.test.ts b/packages/@aws-cdk/aws-appsync/test/appsync-lambda.test.ts new file mode 100644 index 0000000000000..13ecd7b6af951 --- /dev/null +++ b/packages/@aws-cdk/aws-appsync/test/appsync-lambda.test.ts @@ -0,0 +1,121 @@ +import '@aws-cdk/assert/jest'; +import * as path from 'path'; +import * as lambda from '@aws-cdk/aws-lambda'; +import * as cdk from '@aws-cdk/core'; +import * as appsync from '../lib'; + +// GLOBAL GIVEN +let stack: cdk.Stack; +let api: appsync.GraphQLApi; +beforeEach(() => { + stack = new cdk.Stack(); + api = new appsync.GraphQLApi(stack, 'baseApi', { + name: 'api', + schemaDefinition: appsync.SchemaDefinition.FILE, + schemaDefinitionFile: path.join(__dirname, 'appsync.test.graphql'), + }); +}); + +describe('Lambda Data Source configuration', () => { + // GIVEN + let func: lambda.Function; + beforeEach(() => { + func = new lambda.Function(stack, 'func', { + code: lambda.Code.fromAsset('test/verify'), + handler: 'iam-query.handler', + runtime: lambda.Runtime.NODEJS_12_X, + }); + }); + + test('default configuration produces name `TableCDKDefault`', () => { + // WHEN + api.addLambdaDataSource(func); + + // EXPECT + expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { + Type: 'AWS_LAMBDA', + Name: 'LambdaCDKDefault', + }); + }); + + test('appsync configures name correctly', () => { + // WHEN + api.addLambdaDataSource(func, { + name: 'custom', + }); + + // EXPECT + expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { + Type: 'AWS_LAMBDA', + Name: 'custom', + }); + }); + + test('appsync configures name and description correctly', () => { + // WHEN + api.addLambdaDataSource(func, { + name: 'custom', + description: 'custom description', + }); + + // EXPECT + expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { + Type: 'AWS_LAMBDA', + Name: 'custom', + Description: 'custom description', + }); + }); + + test('appsync errors when creating multiple lambda data sources with no configuration', () => { + // WHEN + const when = () => { + api.addLambdaDataSource(func); + api.addLambdaDataSource(func); + }; + + // EXPECT + expect(when).toThrow('There is already a Construct with name \'LambdaCDKDefault\' in GraphQLApi [baseApi]'); + }); +}); + +describe('adding lambda data source from imported api',() => { + let func: lambda.Function; + beforeEach(() => { + func = new lambda.Function(stack, 'func', { + code: lambda.Code.fromAsset('test/verify'), + handler: 'iam-query.handler', + runtime: lambda.Runtime.NODEJS_12_X, + }); + }); + + test('imported api can add LambdaDbDataSource from id', () => { + // WHEN + const importedApi = appsync.GraphQLApi.fromGraphqlApiAttributes(stack, 'importedApi', { + graphqlApiId: api.apiId, + }); + importedApi.addLambdaDataSource(func); + + // THEN + expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { + Type: 'AWS_LAMBDA', + ApiId: { 'Fn::GetAtt': [ 'baseApiCDA4D43A', 'ApiId' ], + }, + }); + }); + + test('imported api can add LambdaDataSource from attributes', () => { + // WHEN + const importedApi = appsync.GraphQLApi.fromGraphqlApiAttributes(stack, 'importedApi', { + graphqlApiId: api.apiId, + graphqlArn: api.arn, + }); + importedApi.addLambdaDataSource(func); + + // THEN + expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { + Type: 'AWS_LAMBDA', + ApiId: { 'Fn::GetAtt': [ 'baseApiCDA4D43A', 'ApiId' ], + }, + }); + }); +}); \ No newline at end of file diff --git a/packages/@aws-cdk/aws-appsync/test/appsync-none.test.ts b/packages/@aws-cdk/aws-appsync/test/appsync-none.test.ts new file mode 100644 index 0000000000000..adda764fa1a77 --- /dev/null +++ b/packages/@aws-cdk/aws-appsync/test/appsync-none.test.ts @@ -0,0 +1,104 @@ +import '@aws-cdk/assert/jest'; +import * as path from 'path'; +import * as cdk from '@aws-cdk/core'; +import * as appsync from '../lib'; + +// GLOBAL GIVEN +let stack: cdk.Stack; +let api: appsync.GraphQLApi; +beforeEach(() => { + stack = new cdk.Stack(); + api = new appsync.GraphQLApi(stack, 'baseApi', { + name: 'api', + schemaDefinition: appsync.SchemaDefinition.FILE, + schemaDefinitionFile: path.join(__dirname, 'appsync.test.graphql'), + }); +}); + +describe('DynamoDb Data Source configuration', () => { + + test('default configuration produces name `NoneCDKDefault`', () => { + // WHEN + api.addNoneDataSource(); + + // EXPECT + expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { + Type: 'NONE', + Name: 'NoneCDKDefault', + }); + }); + + test('appsync configures name correctly', () => { + // WHEN + api.addNoneDataSource({ + name: 'custom', + }); + + // EXPECT + expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { + Type: 'NONE', + Name: 'custom', + }); + }); + + test('appsync configures name and description correctly', () => { + // WHEN + api.addNoneDataSource({ + name: 'custom', + description: 'custom description', + }); + + // EXPECT + expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { + Type: 'NONE', + Name: 'custom', + Description: 'custom description', + }); + }); + + test('appsync errors when creating multiple none data sources with no configuration', () => { + // WHEN + const when = () => { + api.addNoneDataSource(); + api.addNoneDataSource(); + }; + + // EXPECT + expect(when).toThrow('There is already a Construct with name \'NoneCDKDefault\' in GraphQLApi [baseApi]'); + }); +}); + +describe('adding none data source from imported api', () => { + test('imported api can add NoneDataSource from id', () => { + // WHEN + const importedApi = appsync.GraphQLApi.fromGraphqlApiAttributes(stack, 'importedApi', { + graphqlApiId: api.apiId, + }); + importedApi.addNoneDataSource(); + + // THEN + expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { + Type: 'NONE', + ApiId: { 'Fn::GetAtt': [ 'baseApiCDA4D43A', 'ApiId' ], + }, + }); + }); + + test('imported api can add NoneDataSource from attributes', () => { + // WHEN + const importedApi = appsync.GraphQLApi.fromGraphqlApiAttributes(stack, 'importedApi', { + graphqlApiId: api.apiId, + graphqlArn: api.arn, + }); + importedApi.addNoneDataSource(); + + // THEN + expect(stack).toHaveResourceLike('AWS::AppSync::DataSource', { + Type: 'NONE', + ApiId: { 'Fn::GetAtt': [ 'baseApiCDA4D43A', 'ApiId' ], + }, + }); + }); +}); + + diff --git a/packages/@aws-cdk/aws-appsync/test/integ.api-import.expected.json b/packages/@aws-cdk/aws-appsync/test/integ.api-import.expected.json index bd1cdea1aa103..f0c9b2f4aa078 100644 --- a/packages/@aws-cdk/aws-appsync/test/integ.api-import.expected.json +++ b/packages/@aws-cdk/aws-appsync/test/integ.api-import.expected.json @@ -49,7 +49,7 @@ }, { "Resources": { - "ApiDynamoDbCDKDefaultServiceRoleFF246E00": { + "ApiTableCDKDefaultServiceRoleF54231AA": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { @@ -66,7 +66,7 @@ } } }, - "ApiDynamoDbCDKDefaultServiceRoleDefaultPolicy2BC1F6C3": { + "ApiTableCDKDefaultServiceRoleDefaultPolicy745D6657": { "Type": "AWS::IAM::Policy", "Properties": { "PolicyDocument": { @@ -100,21 +100,21 @@ ], "Version": "2012-10-17" }, - "PolicyName": "ApiDynamoDbCDKDefaultServiceRoleDefaultPolicy2BC1F6C3", + "PolicyName": "ApiTableCDKDefaultServiceRoleDefaultPolicy745D6657", "Roles": [ { - "Ref": "ApiDynamoDbCDKDefaultServiceRoleFF246E00" + "Ref": "ApiTableCDKDefaultServiceRoleF54231AA" } ] } }, - "ApiDynamoDbCDKDefault5BF6C4EC": { + "ApiTableCDKDefault0035EEA0": { "Type": "AWS::AppSync::DataSource", "Properties": { "ApiId": { "Fn::ImportValue": "baseStack:ExportsOutputFnGetAttbaseApiCDA4D43AApiId50287E68" }, - "Name": "DynamoDbCDKDefault", + "Name": "TableCDKDefault", "Type": "AMAZON_DYNAMODB", "DynamoDBConfig": { "AwsRegion": { @@ -126,13 +126,13 @@ }, "ServiceRoleArn": { "Fn::GetAtt": [ - "ApiDynamoDbCDKDefaultServiceRoleFF246E00", + "ApiTableCDKDefaultServiceRoleF54231AA", "Arn" ] } } }, - "ApiDynamoDbCDKDefaultQuerygetTestsResolver39CE25D4": { + "ApiTableCDKDefaultQuerygetTestsResolverCB3712E2": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { @@ -140,16 +140,16 @@ }, "FieldName": "getTests", "TypeName": "Query", - "DataSourceName": "DynamoDbCDKDefault", + "DataSourceName": "TableCDKDefault", "Kind": "UNIT", "RequestMappingTemplate": "{\"version\" : \"2017-02-28\", \"operation\" : \"Scan\"}", "ResponseMappingTemplate": "$util.toJson($ctx.result.items)" }, "DependsOn": [ - "ApiDynamoDbCDKDefault5BF6C4EC" + "ApiTableCDKDefault0035EEA0" ] }, - "ApiDynamoDbCDKDefaultMutationaddTestResolverB340117E": { + "ApiTableCDKDefaultMutationaddTestResolver8087CE09": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { @@ -157,13 +157,13 @@ }, "FieldName": "addTest", "TypeName": "Mutation", - "DataSourceName": "DynamoDbCDKDefault", + "DataSourceName": "TableCDKDefault", "Kind": "UNIT", "RequestMappingTemplate": "\n #set($input = $ctx.args.test)\n \n {\n \"version\": \"2017-02-28\",\n \"operation\": \"PutItem\",\n \"key\" : {\n \"id\" : $util.dynamodb.toDynamoDBJson($util.autoId())\n },\n \"attributeValues\": $util.dynamodb.toMapValuesJson($input)\n }", "ResponseMappingTemplate": "$util.toJson($ctx.result)" }, "DependsOn": [ - "ApiDynamoDbCDKDefault5BF6C4EC" + "ApiTableCDKDefault0035EEA0" ] }, "TestTable5769773A": { diff --git a/packages/@aws-cdk/aws-appsync/test/integ.graphql-iam.expected.json b/packages/@aws-cdk/aws-appsync/test/integ.graphql-iam.expected.json index 86284c0deb8f4..9f9ee37ed3dd7 100644 --- a/packages/@aws-cdk/aws-appsync/test/integ.graphql-iam.expected.json +++ b/packages/@aws-cdk/aws-appsync/test/integ.graphql-iam.expected.json @@ -109,7 +109,7 @@ "Definition": "type test @aws_iam {\n id: String!\n version: String!\n}\n\ntype Query {\n getTest(id: String!): test\n getTests: [ test! ]\n @aws_iam \n}\n\ninput TestInput {\n version: String!\n}\n\ntype Mutation {\n addTest(input: TestInput!): test\n @aws_iam\n}\n" } }, - "ApiDynamoDbCDKDefaultServiceRoleFF246E00": { + "ApiTableCDKDefaultServiceRoleF54231AA": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { @@ -126,7 +126,7 @@ } } }, - "ApiDynamoDbCDKDefaultServiceRoleDefaultPolicy2BC1F6C3": { + "ApiTableCDKDefaultServiceRoleDefaultPolicy745D6657": { "Type": "AWS::IAM::Policy", "Properties": { "PolicyDocument": { @@ -160,15 +160,15 @@ ], "Version": "2012-10-17" }, - "PolicyName": "ApiDynamoDbCDKDefaultServiceRoleDefaultPolicy2BC1F6C3", + "PolicyName": "ApiTableCDKDefaultServiceRoleDefaultPolicy745D6657", "Roles": [ { - "Ref": "ApiDynamoDbCDKDefaultServiceRoleFF246E00" + "Ref": "ApiTableCDKDefaultServiceRoleF54231AA" } ] } }, - "ApiDynamoDbCDKDefault5BF6C4EC": { + "ApiTableCDKDefault0035EEA0": { "Type": "AWS::AppSync::DataSource", "Properties": { "ApiId": { @@ -177,7 +177,7 @@ "ApiId" ] }, - "Name": "DynamoDbCDKDefault", + "Name": "TableCDKDefault", "Type": "AMAZON_DYNAMODB", "DynamoDBConfig": { "AwsRegion": { @@ -189,13 +189,13 @@ }, "ServiceRoleArn": { "Fn::GetAtt": [ - "ApiDynamoDbCDKDefaultServiceRoleFF246E00", + "ApiTableCDKDefaultServiceRoleF54231AA", "Arn" ] } } }, - "ApiDynamoDbCDKDefaultQuerygetTestResolverCC295D20": { + "ApiTableCDKDefaultQuerygetTestResolverD961215D": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { @@ -206,17 +206,17 @@ }, "FieldName": "getTest", "TypeName": "Query", - "DataSourceName": "DynamoDbCDKDefault", + "DataSourceName": "TableCDKDefault", "Kind": "UNIT", "RequestMappingTemplate": "{\"version\": \"2017-02-28\", \"operation\": \"GetItem\", \"key\": {\"id\": $util.dynamodb.toDynamoDBJson($ctx.args.id)}}", "ResponseMappingTemplate": "$util.toJson($ctx.result)" }, "DependsOn": [ - "ApiDynamoDbCDKDefault5BF6C4EC", - "ApiSchema510EECD7" + "ApiSchema510EECD7", + "ApiTableCDKDefault0035EEA0" ] }, - "ApiDynamoDbCDKDefaultQuerygetTestsResolver39CE25D4": { + "ApiTableCDKDefaultQuerygetTestsResolverCB3712E2": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { @@ -227,17 +227,17 @@ }, "FieldName": "getTests", "TypeName": "Query", - "DataSourceName": "DynamoDbCDKDefault", + "DataSourceName": "TableCDKDefault", "Kind": "UNIT", "RequestMappingTemplate": "{\"version\" : \"2017-02-28\", \"operation\" : \"Scan\"}", "ResponseMappingTemplate": "$util.toJson($ctx.result.items)" }, "DependsOn": [ - "ApiDynamoDbCDKDefault5BF6C4EC", - "ApiSchema510EECD7" + "ApiSchema510EECD7", + "ApiTableCDKDefault0035EEA0" ] }, - "ApiDynamoDbCDKDefaultMutationaddTestResolverB340117E": { + "ApiTableCDKDefaultMutationaddTestResolver8087CE09": { "Type": "AWS::AppSync::Resolver", "Properties": { "ApiId": { @@ -248,14 +248,14 @@ }, "FieldName": "addTest", "TypeName": "Mutation", - "DataSourceName": "DynamoDbCDKDefault", + "DataSourceName": "TableCDKDefault", "Kind": "UNIT", "RequestMappingTemplate": "\n #set($input = $ctx.args.test)\n \n {\n \"version\": \"2017-02-28\",\n \"operation\": \"PutItem\",\n \"key\" : {\n \"id\" : $util.dynamodb.toDynamoDBJson($util.autoId())\n },\n \"attributeValues\": $util.dynamodb.toMapValuesJson($input)\n }", "ResponseMappingTemplate": "$util.toJson($ctx.result)" }, "DependsOn": [ - "ApiDynamoDbCDKDefault5BF6C4EC", - "ApiSchema510EECD7" + "ApiSchema510EECD7", + "ApiTableCDKDefault0035EEA0" ] }, "TestTable5769773A": {