From f7f2c666707f40a0f00b1b3a7713835bc4cf46d0 Mon Sep 17 00:00:00 2001 From: Mac Date: Fri, 2 Jul 2021 22:45:35 +0530 Subject: [PATCH] feat(amplify-appsync-simulator): map.keySet returns an a JavaArray with elements of type JavaString --- .../__tests__/velocity/value-mapper/map.test.ts | 14 +++++++++++++- .../__tests__/velocity/value-mapper/string.test.ts | 6 +----- .../src/velocity/value-mapper/array.ts | 8 -------- .../src/velocity/value-mapper/map.ts | 3 ++- .../src/velocity/value-mapper/string.ts | 4 ---- 5 files changed, 16 insertions(+), 19 deletions(-) diff --git a/packages/amplify-appsync-simulator/src/__tests__/velocity/value-mapper/map.test.ts b/packages/amplify-appsync-simulator/src/__tests__/velocity/value-mapper/map.test.ts index 2cfbbcb56e9..6b566292e84 100644 --- a/packages/amplify-appsync-simulator/src/__tests__/velocity/value-mapper/map.test.ts +++ b/packages/amplify-appsync-simulator/src/__tests__/velocity/value-mapper/map.test.ts @@ -1,4 +1,7 @@ +import { JavaArray } from './../../../velocity/value-mapper/array'; import { JavaMap } from '../../../velocity/value-mapper/map'; +import { JavaString } from '../../../velocity/value-mapper/string'; +import { map as mapper } from '../../../velocity/value-mapper/mapper'; describe('JavaMap', () => { let identityMapper = jest.fn().mockImplementation(val => val); @@ -36,7 +39,10 @@ describe('JavaMap', () => { it('entrySet', () => { const obj = { foo: 'Foo Value', bar: 'Bar Value' }; const map = new JavaMap(obj, identityMapper); - expect(map.entrySet().toJSON()).toEqual([{ key: 'foo', value: 'Foo Value' }, { key: 'bar', value: 'Bar Value' }]); + expect(map.entrySet().toJSON()).toEqual([ + { key: 'foo', value: 'Foo Value' }, + { key: 'bar', value: 'Bar Value' }, + ]); }); it('equal', () => { @@ -66,6 +72,12 @@ describe('JavaMap', () => { expect(map.keySet().toJSON()).toEqual(['foo', 'bar']); }); + it('keySet returns a JavaArray with each element of type JavaString', () => { + const obj = { foo: 'Foo Value', bar: 'Bar Value' }; + const map = new JavaMap(obj, identityMapper); + expect(map.keySet()).toEqual(new JavaArray([new JavaString('foo'), new JavaString('bar')], mapper)); + }); + it('put', () => { const map = new JavaMap({}, identityMapper); map.put('foo', 'Foo Value'); diff --git a/packages/amplify-appsync-simulator/src/__tests__/velocity/value-mapper/string.test.ts b/packages/amplify-appsync-simulator/src/__tests__/velocity/value-mapper/string.test.ts index 2867b7e9df7..3657df1f5ad 100644 --- a/packages/amplify-appsync-simulator/src/__tests__/velocity/value-mapper/string.test.ts +++ b/packages/amplify-appsync-simulator/src/__tests__/velocity/value-mapper/string.test.ts @@ -1,4 +1,4 @@ -import { JavaString, toJavaString } from '../../../velocity/value-mapper/string'; +import { JavaString } from '../../../velocity/value-mapper/string'; describe('JavaString', () => { it('replaceAll', () => { @@ -131,8 +131,4 @@ describe('JavaString', () => { const str4 = new JavaString('foo bar '); expect(str4.trim().toString()).toEqual('foo bar'); }); - it('toJavaString', () => { - const str = toJavaString('foo bar'); - expect(str instanceof JavaString).toBeTruthy(); - }); }); diff --git a/packages/amplify-appsync-simulator/src/velocity/value-mapper/array.ts b/packages/amplify-appsync-simulator/src/velocity/value-mapper/array.ts index 9936b4aed4c..912c20926e4 100644 --- a/packages/amplify-appsync-simulator/src/velocity/value-mapper/array.ts +++ b/packages/amplify-appsync-simulator/src/velocity/value-mapper/array.ts @@ -1,4 +1,3 @@ -import { JavaString } from './string'; import { toJSON } from './to-json'; export class JavaArray extends Array { @@ -8,13 +7,6 @@ export class JavaArray extends Array { // splice sends a single object values = [values]; } - values = values.map(value => { - if (typeof value === 'string' && !((value as any) instanceof JavaString)) { - return new JavaString(value); - } - return value; - }); - if (values.length !== 1) { super(...values); } else { diff --git a/packages/amplify-appsync-simulator/src/velocity/value-mapper/map.ts b/packages/amplify-appsync-simulator/src/velocity/value-mapper/map.ts index d075fa022b0..5a2e7528759 100644 --- a/packages/amplify-appsync-simulator/src/velocity/value-mapper/map.ts +++ b/packages/amplify-appsync-simulator/src/velocity/value-mapper/map.ts @@ -1,5 +1,6 @@ import { JavaArray } from './array'; import { toJSON } from './to-json'; +import { map } from './mapper'; export class JavaMap { private map: Map; @@ -56,7 +57,7 @@ export class JavaMap { } keySet() { - return new JavaArray(Array.from(this.map.keys()), this.mapper); + return map(Array.from(this.map.keys())); } put(key, value) { diff --git a/packages/amplify-appsync-simulator/src/velocity/value-mapper/string.ts b/packages/amplify-appsync-simulator/src/velocity/value-mapper/string.ts index b966b896a75..f07fd90f119 100644 --- a/packages/amplify-appsync-simulator/src/velocity/value-mapper/string.ts +++ b/packages/amplify-appsync-simulator/src/velocity/value-mapper/string.ts @@ -107,7 +107,3 @@ export class JavaString { return this.value && this.value.length; } } -/** - * Mapper function to convert string to JavaString - */ -export const toJavaString = (value: string): JavaString => new JavaString(value);