From da9ec5eb16298d8ca5690800eca1c15f5a6cfaa5 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Fri, 14 Oct 2022 11:40:38 -0300 Subject: refactored terms of service to remove duplicated code prettfied some sources --- .../src/cta/Withdraw/test.ts | 97 +++++++++++----------- 1 file changed, 50 insertions(+), 47 deletions(-) (limited to 'packages/taler-wallet-webextension/src/cta/Withdraw/test.ts') diff --git a/packages/taler-wallet-webextension/src/cta/Withdraw/test.ts b/packages/taler-wallet-webextension/src/cta/Withdraw/test.ts index 7ccf7f606..f3598b557 100644 --- a/packages/taler-wallet-webextension/src/cta/Withdraw/test.ts +++ b/packages/taler-wallet-webextension/src/cta/Withdraw/test.ts @@ -37,7 +37,8 @@ const exchanges: ExchangeFullDetails[] = [ exchangeBaseUrl: "http://exchange.demo.taler.net", paytoUris: [], tos: { - acceptedVersion: "", + acceptedVersion: "v1", + currentVersion: "v1", }, auditors: [ { @@ -58,7 +59,7 @@ const exchanges: ExchangeFullDetails[] = [ accounts: [], feesForType: {}, }, - }, + } as Partial as ExchangeFullDetails, ]; describe("Withdraw CTA states", () => { @@ -161,17 +162,20 @@ describe("Withdraw CTA states", () => { }, { listExchanges: async () => ({ exchanges }), - getWithdrawalDetailsForUri: async ({ talerWithdrawUri }: any) => ({ - amount: "ARS:2", - possibleExchanges: exchanges, - defaultExchangeBaseUrl: exchanges[0].exchangeBaseUrl, - }), + getWithdrawalDetailsForUri: async ({ + talerWithdrawUri, + }: any): Promise => + ({ + amount: "ARS:2", + possibleExchanges: exchanges, + defaultExchangeBaseUrl: exchanges[0].exchangeBaseUrl, + } as Partial as ExchangeWithdrawDetails), getExchangeWithdrawalInfo: async (): Promise => - ({ - withdrawalAmountRaw: "ARS:2", - withdrawalAmountEffective: "ARS:2", - } as any), + ({ + withdrawalAmountRaw: "ARS:2", + withdrawalAmountEffective: "ARS:2", + } as any), getExchangeTos: async (): Promise => ({ contentType: "text", content: "just accept", @@ -205,25 +209,39 @@ describe("Withdraw CTA states", () => { expect(state.status).equals("success"); if (state.status !== "success") return; - // expect(state.exchange.isDirty).false; - // expect(state.exchange.value).equal("http://exchange.demo.taler.net"); - // expect(state.exchange.list).deep.equal({ - // "http://exchange.demo.taler.net": "http://exchange.demo.taler.net", - // }); - // expect(state.showExchangeSelection).false; - expect(state.toBeReceived).deep.equal(Amounts.parseOrThrow("ARS:2")); expect(state.withdrawalFee).deep.equal(Amounts.parseOrThrow("ARS:0")); expect(state.chosenAmount).deep.equal(Amounts.parseOrThrow("ARS:2")); expect(state.doWithdrawal.onClick).not.undefined; - expect(state.mustAcceptFirst).false; } await assertNoPendingUpdate(); }); it("should be accept the tos before withdraw", async () => { + const listExchangesResponse = { + exchanges: exchanges.map((e) => ({ + ...e, + tos: { + ...e.tos, + acceptedVersion: undefined, + }, + })) as ExchangeFullDetails[], + }; + + function updateAcceptedVersionToCurrentVersion(): void { + listExchangesResponse.exchanges = listExchangesResponse.exchanges.map( + (e) => ({ + ...e, + tos: { + ...e.tos, + acceptedVersion: e.tos.currentVersion, + }, + }), + ); + } + const { getLastResultOrThrow, waitNextUpdate, assertNoPendingUpdate } = mountHook(() => useComponentStateFromURI( @@ -237,18 +255,19 @@ describe("Withdraw CTA states", () => { }, }, { - listExchanges: async () => ({ exchanges }), - getWithdrawalDetailsForUri: async ({ talerWithdrawUri }: any) => ({ - amount: "ARS:2", - possibleExchanges: exchanges, - defaultExchangeBaseUrl: exchanges[0].exchangeBaseUrl, - }), + listExchanges: async () => listExchangesResponse, + getWithdrawalDetailsForUri: async ({ talerWithdrawUri }: any) => + ({ + amount: "ARS:2", + possibleExchanges: exchanges, + defaultExchangeBaseUrl: exchanges[0].exchangeBaseUrl, + } as Partial as ExchangeWithdrawDetails), getExchangeWithdrawalInfo: async (): Promise => - ({ - withdrawalAmountRaw: "ARS:2", - withdrawalAmountEffective: "ARS:2", - } as any), + ({ + withdrawalAmountRaw: "ARS:2", + withdrawalAmountEffective: "ARS:2", + } as any), getExchangeTos: async (): Promise => ({ contentType: "text", content: "just accept", @@ -283,22 +302,14 @@ describe("Withdraw CTA states", () => { expect(state.status).equals("success"); if (state.status !== "success") return; - // expect(state.exchange.isDirty).false; - // expect(state.exchange.value).equal("http://exchange.demo.taler.net"); - // expect(state.exchange.list).deep.equal({ - // "http://exchange.demo.taler.net": "http://exchange.demo.taler.net", - // }); - // expect(state.showExchangeSelection).false; - expect(state.toBeReceived).deep.equal(Amounts.parseOrThrow("ARS:2")); expect(state.withdrawalFee).deep.equal(Amounts.parseOrThrow("ARS:0")); expect(state.chosenAmount).deep.equal(Amounts.parseOrThrow("ARS:2")); expect(state.doWithdrawal.onClick).undefined; - expect(state.mustAcceptFirst).true; - // accept TOS - state.tosProps?.onAccept(true); + updateAcceptedVersionToCurrentVersion(); + state.onTosUpdate(); } await waitNextUpdate(); @@ -308,19 +319,11 @@ describe("Withdraw CTA states", () => { expect(state.status).equals("success"); if (state.status !== "success") return; - // expect(state.exchange.isDirty).false; - // expect(state.exchange.value).equal("http://exchange.demo.taler.net"); - // expect(state.exchange.list).deep.equal({ - // "http://exchange.demo.taler.net": "http://exchange.demo.taler.net", - // }); - // expect(state.showExchangeSelection).false; - expect(state.toBeReceived).deep.equal(Amounts.parseOrThrow("ARS:2")); expect(state.withdrawalFee).deep.equal(Amounts.parseOrThrow("ARS:0")); expect(state.chosenAmount).deep.equal(Amounts.parseOrThrow("ARS:2")); expect(state.doWithdrawal.onClick).not.undefined; - expect(state.mustAcceptFirst).true; } await assertNoPendingUpdate(); -- cgit v1.2.3