/* This file is part of GNU Taler (C) 2022 Taler Systems S.A. GNU Taler is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Taler; see the file COPYING. If not, see */ /** * * @author Sebastian Javier Marchano (sebasjm) */ import * as tests from "@gnu-taler/web-util/testing"; import { expect } from "chai"; import { createWalletApiMock } from "../../test-utils.js"; import { Props } from "./index.js"; import { useComponentState } from "./state.js"; describe("DevExperiment CTA states", () => { it("should tell the user that the URI is missing", async () => { const { handler, TestingContext } = createWalletApiMock(); const props: Props = { talerExperimentUri: undefined, onCancel: async () => { null; }, onSuccess: async () => { null; }, }; const hookBehavior = await tests.hookBehaveLikeThis( useComponentState, props, [ ({ status }) => { expect(status).equals("error"); }, ({ status, error }) => { expect(status).equals("error"); if (!error) expect.fail(); // if (!error.hasError) expect.fail(); // if (error.operational) expect.fail(); // expect(error.description).eq("ERROR_NO-URI-FOR-DEPOSIT"); }, ], TestingContext, ); expect(hookBehavior).deep.equal({ result: "ok" }); expect(handler.getCallingQueueState()).eq("empty"); }); });