From ca625c1f3e3358315b1af9fb72bf9fcf95bb7f9d Mon Sep 17 00:00:00 2001 From: Simon Warta Date: Mon, 2 Mar 2020 08:22:44 +0100 Subject: [PATCH] Pull out fromOneElementArray --- packages/sdk/src/restclient.spec.ts | 20 ++++---------------- packages/sdk/src/testutils.spec.ts | 6 ++++++ 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/packages/sdk/src/restclient.spec.ts b/packages/sdk/src/restclient.spec.ts index 095ab1ba..03b95e8e 100644 --- a/packages/sdk/src/restclient.spec.ts +++ b/packages/sdk/src/restclient.spec.ts @@ -14,6 +14,7 @@ import cosmoshub from "./testdata/cosmoshub.json"; import { bech32AddressMatcher, deployedErc20, + fromOneElementArray, getRandomizedHackatom, makeRandomAddress, pendingWithoutWasmd, @@ -491,17 +492,11 @@ describe("RestClient", () => { expect(parseInt(result.count, 10)).toBeGreaterThanOrEqual(4); // Check first 4 results - const [store, hash, isa, jade] = result.txs - .map(txResponse => txResponse.tx.value.msg) - .map(msgs => { - assert(msgs.length === 1, "Single message transactions expected"); - return msgs[0]; - }); + const [store, hash, isa, jade] = result.txs.map(tx => fromOneElementArray(tx.tx.value.msg)); assert(isMsgStoreCode(store)); assert(isMsgInstantiateContract(hash)); assert(isMsgInstantiateContract(isa)); assert(isMsgInstantiateContract(jade)); - expect(store.value).toEqual( jasmine.objectContaining({ sender: faucet.address, @@ -545,9 +540,7 @@ describe("RestClient", () => { `message.module=wasm&message.code_id=${deployedErc20.codeId}&message.action=store-code`, ); expect(parseInt(uploads.count, 10)).toEqual(1); - const msgs = uploads.txs[0].tx.value.msg; - assert(msgs.length === 1, "Single message transactions expected"); - const store = msgs[0]; + const store = fromOneElementArray(uploads.txs[0].tx.value.msg); assert(isMsgStoreCode(store)); expect(store.value).toEqual( jasmine.objectContaining({ @@ -563,12 +556,7 @@ describe("RestClient", () => { `message.module=wasm&message.code_id=${deployedErc20.codeId}&message.action=instantiate`, ); expect(parseInt(instantiations.count, 10)).toBeGreaterThanOrEqual(3); - const [hash, isa, jade] = instantiations.txs - .map(txResponse => txResponse.tx.value.msg) - .map(msgs => { - assert(msgs.length === 1, "Single message transactions expected"); - return msgs[0]; - }); + const [hash, isa, jade] = instantiations.txs.map(tx => fromOneElementArray(tx.tx.value.msg)); assert(isMsgInstantiateContract(hash)); assert(isMsgInstantiateContract(isa)); assert(isMsgInstantiateContract(jade)); diff --git a/packages/sdk/src/testutils.spec.ts b/packages/sdk/src/testutils.spec.ts index e1932fa6..d072842f 100644 --- a/packages/sdk/src/testutils.spec.ts +++ b/packages/sdk/src/testutils.spec.ts @@ -81,6 +81,12 @@ export function pendingWithoutWasmd(): void { } } +/** Returns first element. Throws if array has a different length than 1. */ +export function fromOneElementArray(elements: ArrayLike): T { + if (elements.length !== 1) throw new Error(`Expected exactly one element but got ${elements.length}`); + return elements[0]; +} + describe("leb128", () => { describe("leb128Encode", () => { it("works for single byte values", () => {