From bc64f92c085f08b6aefc4ef7a1de717bfdd3c694 Mon Sep 17 00:00:00 2001 From: Harry Altman Date: Mon, 8 Apr 2019 22:06:26 -0400 Subject: [PATCH] Update mapping tests to use Maps --- .../truffle-debugger/test/data/decoding.js | 31 +++++-------------- .../truffle-debugger/test/data/helpers.js | 14 ++++++++- 2 files changed, 21 insertions(+), 24 deletions(-) diff --git a/packages/truffle-debugger/test/data/decoding.js b/packages/truffle-debugger/test/data/decoding.js index 6e7f945ecc3..f337d891d3b 100644 --- a/packages/truffle-debugger/test/data/decoding.js +++ b/packages/truffle-debugger/test/data/decoding.js @@ -53,12 +53,7 @@ const mappingFixtures = [ from: "uint256", to: "uint256" }, - value: { - ...Object.assign( - {}, - ...generateArray(5).map((value, idx) => ({ [idx]: value })) - ) - } + value: new Map(generateArray(5).map((value, idx) => [idx, value])) }, { name: "numberedStrings", @@ -66,14 +61,9 @@ const mappingFixtures = [ from: "uint256", to: "string" }, - value: { - ...Object.assign( - {}, - ...generateArray(7).map((value, idx) => ({ - [value]: faker.lorem.slug(idx) - })) - ) - } + value: new Map( + generateArray(7).map((value, idx) => [value, faker.lorem.slug(idx)]) + ) }, { name: "stringsToStrings", @@ -81,14 +71,9 @@ const mappingFixtures = [ from: "string", to: "string" }, - value: { - ...Object.assign( - {}, - ...[0, 1, 2, 3, 4].map(idx => ({ - [faker.lorem.slug(idx)]: faker.lorem.slug(idx) - })) - ) - } + value: new Map( + [0, 1, 2, 3, 4].map(idx => [faker.lorem.slug(idx), faker.lorem.slug(idx)]) + ) } ]; @@ -146,7 +131,7 @@ contract ${contractName} { function run() public { ${fixtures .map(({ name, type: { from }, value }) => - Object.entries(value) + Array.from(value.entries()) .map( ([k, v]) => from === "string" diff --git a/packages/truffle-debugger/test/data/helpers.js b/packages/truffle-debugger/test/data/helpers.js index cb5ac677a6b..b3682f2d465 100644 --- a/packages/truffle-debugger/test/data/helpers.js +++ b/packages/truffle-debugger/test/data/helpers.js @@ -32,7 +32,19 @@ function generateTests(fixtures) { for (let { name, value: expected } of fixtures) { it(`correctly decodes ${name}`, async () => { const response = await this.decode(name); - assert.deepEqual(response, expected); + if (expected instanceof Map) { + assert.instanceOf(response, Map); + assert.sameDeepMembers( + Array.from(response.keys()), + Array.from(expected.keys()) + ); + for (let key of expected.keys()) { + //no mappings in this test are nested so this will do fine + assert.deepEqual(response[key], expected[key]); + } + } else { + assert.deepEqual(response, expected); + } }); } }