diff options
Diffstat (limited to 'packages/demobank-ui/src/components/Transactions/test.ts')
-rw-r--r-- | packages/demobank-ui/src/components/Transactions/test.ts | 148 |
1 files changed, 85 insertions, 63 deletions
diff --git a/packages/demobank-ui/src/components/Transactions/test.ts b/packages/demobank-ui/src/components/Transactions/test.ts index 3f2d5fb68..b13767f7c 100644 --- a/packages/demobank-ui/src/components/Transactions/test.ts +++ b/packages/demobank-ui/src/components/Transactions/test.ts @@ -19,12 +19,13 @@ * @author Sebastian Javier Marchano (sebasjm) */ -import { tests } from "@gnu-taler/web-util/lib/index.browser"; +import { ErrorType, tests } from "@gnu-taler/web-util/lib/index.browser"; import { SwrMockEnvironment } from "@gnu-taler/web-util/lib/tests/swr"; import { expect } from "chai"; import { TRANSACTION_API_EXAMPLE } from "../../endpoints.js"; import { Props } from "./index.js"; import { useComponentState } from "./state.js"; +import { HttpStatusCode } from "@gnu-taler/taler-util"; describe("Transaction states", () => { it("should query backend and render transactions", async () => { @@ -34,59 +35,62 @@ describe("Transaction states", () => { account: "myAccount", }; + //@ts-ignore env.addRequestExpectation(TRANSACTION_API_EXAMPLE.LIST_FIRST_PAGE, { response: { - transactions: [ - { - creditorIban: "DE159593", - creditorBic: "SANDBOXX", - creditorName: "exchange company", - debtorIban: "DE118695", - debtorBic: "SANDBOXX", - debtorName: "Name unknown", - amount: "1", - currency: "KUDOS", - subject: - "Taler Withdrawal N588V8XE9TR49HKAXFQ20P0EQ0EYW2AC9NNANV8ZP5P59N6N0410", - date: "2022-12-12Z", - uid: "8PPFR9EM", - direction: "DBIT", - pmtInfId: null, - msgId: null, - }, - { - creditorIban: "DE159593", - creditorBic: "SANDBOXX", - creditorName: "exchange company", - debtorIban: "DE118695", - debtorBic: "SANDBOXX", - debtorName: "Name unknown", - amount: "5.00", - currency: "KUDOS", - subject: "HNEWWT679TQC5P1BVXJS48FX9NW18FWM6PTK2N80Z8GVT0ACGNK0", - date: "2022-12-07Z", - uid: "7FZJC3RJ", - direction: "DBIT", - pmtInfId: null, - msgId: null, - }, - { - creditorIban: "DE118695", - creditorBic: "SANDBOXX", - creditorName: "Name unknown", - debtorIban: "DE579516", - debtorBic: "SANDBOXX", - debtorName: "The Bank", - amount: "100", - currency: "KUDOS", - subject: "Sign-up bonus", - date: "2022-12-07Z", - uid: "I31A06J8", - direction: "CRDT", - pmtInfId: null, - msgId: null, - }, - ], + data: { + transactions: [ + { + creditorIban: "DE159593", + creditorBic: "SANDBOXX", + creditorName: "exchange company", + debtorIban: "DE118695", + debtorBic: "SANDBOXX", + debtorName: "Name unknown", + amount: "1", + currency: "KUDOS", + subject: + "Taler Withdrawal N588V8XE9TR49HKAXFQ20P0EQ0EYW2AC9NNANV8ZP5P59N6N0410", + date: "2022-12-12Z", + uid: "8PPFR9EM", + direction: "DBIT", + pmtInfId: null, + msgId: null, + }, + { + creditorIban: "DE159593", + creditorBic: "SANDBOXX", + creditorName: "exchange company", + debtorIban: "DE118695", + debtorBic: "SANDBOXX", + debtorName: "Name unknown", + amount: "5.00", + currency: "KUDOS", + subject: "HNEWWT679TQC5P1BVXJS48FX9NW18FWM6PTK2N80Z8GVT0ACGNK0", + date: "2022-12-07Z", + uid: "7FZJC3RJ", + direction: "DBIT", + pmtInfId: null, + msgId: null, + }, + { + creditorIban: "DE118695", + creditorBic: "SANDBOXX", + creditorName: "Name unknown", + debtorIban: "DE579516", + debtorBic: "SANDBOXX", + debtorName: "The Bank", + amount: "100", + currency: "KUDOS", + subject: "Sign-up bonus", + date: "2022-12-07Z", + uid: "I31A06J8", + direction: "CRDT", + pmtInfId: null, + msgId: null, + }, + ], + }, }, }); @@ -118,7 +122,13 @@ describe("Transaction states", () => { account: "myAccount", }; - env.addRequestExpectation(TRANSACTION_API_EXAMPLE.LIST_NOT_FOUND, {}); + env.addRequestExpectation(TRANSACTION_API_EXAMPLE.LIST_NOT_FOUND, { + response: { + error: { + description: "Transaction page 0 could not be retrieved.", + }, + }, + }); const hookBehavior = await tests.hookBehaveLikeThis( useComponentState, @@ -130,10 +140,13 @@ describe("Transaction states", () => { }, ({ status, error }) => { expect(status).equals("loading-error"); - expect(error).deep.eq({ - hasError: true, - operational: false, - message: "Transactions page 0 was not found.", + if (error === undefined || error.type !== ErrorType.CLIENT) { + throw Error("not the expected error"); + } + expect(error.payload).deep.equal({ + error: { + description: "Transaction page 0 could not be retrieved.", + }, }); }, ], @@ -145,13 +158,19 @@ describe("Transaction states", () => { }); it("should show error message on server error", async () => { - const env = new SwrMockEnvironment(false); + const env = new SwrMockEnvironment(); const props: Props = { account: "myAccount", }; - env.addRequestExpectation(TRANSACTION_API_EXAMPLE.LIST_ERROR, {}); + env.addRequestExpectation(TRANSACTION_API_EXAMPLE.LIST_ERROR, { + response: { + error: { + description: "Transaction page 0 could not be retrieved.", + }, + }, + }); const hookBehavior = await tests.hookBehaveLikeThis( useComponentState, @@ -163,10 +182,13 @@ describe("Transaction states", () => { }, ({ status, error }) => { expect(status).equals("loading-error"); - expect(error).deep.equal({ - hasError: true, - operational: false, - message: "Transaction page 0 could not be retrieved.", + if (error === undefined || error.type !== ErrorType.SERVER) { + throw Error("not the expected error"); + } + expect(error.payload).deep.equal({ + error: { + description: "Transaction page 0 could not be retrieved.", + }, }); }, ], |