From f582e477786bd40a31fb2b50a01d77c61d686714 Mon Sep 17 00:00:00 2001 From: Parker Scanlon <69879391+scanlonp@users.noreply.github.com> Date: Wed, 13 Sep 2023 17:17:19 -0700 Subject: [PATCH] add circular tests --- .../test/coerce-api-parameters.test.ts | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) diff --git a/packages/@aws-cdk/sdk-v2-to-v3-adapter/test/coerce-api-parameters.test.ts b/packages/@aws-cdk/sdk-v2-to-v3-adapter/test/coerce-api-parameters.test.ts index 42bb2fa569813..a217f84bbd499 100644 --- a/packages/@aws-cdk/sdk-v2-to-v3-adapter/test/coerce-api-parameters.test.ts +++ b/packages/@aws-cdk/sdk-v2-to-v3-adapter/test/coerce-api-parameters.test.ts @@ -472,4 +472,74 @@ describe('number', () => { }); }); }); +}); + +describe('circular coersions', () => { + + test('simple circular reference', async () => { + const params = await coerceApiParameters('DynamoDB', 'getObject', { + Key: { + ColumnToSearch: { + L: [ + { N: '1' }, + { N: '2' }, + ], + }, + }, + TableName: 'abc', + }); + + expect(params).toMatchObject({ + Key: { + ColumnToSearch: { + L: [ + { N: 1 }, + { N: 2 }, + ], + }, + }, + TableName: new Uint8Array([97, 98, 99]), + }); + }); + + test('complex circular reference', async () => { + const params = await coerceApiParameters('DynamoDB', 'getObject', { + Key: { + ColumnToSearch: { + L: [ + { + L: [ + { N: '1' }, + { N: '2' }, + ], + }, + { + M: { Name: { S: 'abd' }, Age: { N: '35' } }, + }, + ], + }, + }, + TableName: 'abc', + }); + + expect(params).toMatchObject({ + Key: { + ColumnToSearch: { + L: [ + { + L: [ + { N: 1 }, + { N: 2 }, + ], + }, + { + M: { Name: { S: new Uint8Array([97, 98, 100]) }, Age: { N: 35 } }, + }, + ], + }, + }, + TableName: new Uint8Array([97, 98, 99]), + }); + }); + }); \ No newline at end of file