diff options
author | ms <ms@taler.net> | 2021-07-27 10:08:00 +0200 |
---|---|---|
committer | ms <ms@taler.net> | 2021-07-27 10:08:00 +0200 |
commit | fbf1b3e9bfe7d9c9c846ac0f924f2c385ddefa42 (patch) | |
tree | 3f3793d12c1e8941606987203c28ff9d302d170c | |
parent | d591933890ffb23ecaf23a5da85c41ac95416ffa (diff) |
Sandbox keyrotation testcase.
3 files changed, 72 insertions, 2 deletions
diff --git a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts b/packages/taler-wallet-cli/src/integrationtests/libeufin.ts index 037ba1163..7a6f3ee17 100644 --- a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts +++ b/packages/taler-wallet-cli/src/integrationtests/libeufin.ts @@ -1070,13 +1070,13 @@ export namespace LibeufinNexusApi { accountName: string, username: string = "admin", password: string = "test", - ): Promise<void> { + ): Promise<any> { const baseUrl = libeufinNexusService.baseUrl; let url = new URL( `/bank-accounts/${accountName}/fetch-transactions`, baseUrl, ); - await axios.post( + return await axios.post( url.href, { rangeType: "all", @@ -1087,6 +1087,7 @@ export namespace LibeufinNexusApi { username: username, password: password, }, + validateStatus: () => true, }, ); } diff --git a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-keyrotation.ts b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-keyrotation.ts new file mode 100644 index 000000000..97135267a --- /dev/null +++ b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-keyrotation.ts @@ -0,0 +1,67 @@ +/* + This file is part of GNU Taler + (C) 2020 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 <http://www.gnu.org/licenses/> + */ + +/** + * Imports. + */ +import { GlobalTestState } from "./harness"; +import { + SandboxUserBundle, + NexusUserBundle, + launchLibeufinServices, + LibeufinSandboxApi, + LibeufinNexusApi, +} from "./libeufin"; + +/** + * Run basic test with LibEuFin. + */ +export async function runLibeufinKeyrotationTest(t: GlobalTestState) { + /** + * User saltetd "01" + */ + const user01nexus = new NexusUserBundle( + "01", + "http://localhost:5010/ebicsweb", + ); + const user01sandbox = new SandboxUserBundle("01"); + + /** + * Launch Sandbox and Nexus. + */ + const libeufinServices = await launchLibeufinServices( + t, [user01nexus], [user01sandbox], + ); + + await LibeufinNexusApi.fetchAllTransactions( + libeufinServices.libeufinNexus, + user01nexus.localAccountName, + ); + + /* Rotate the Sandbox keys, and fetch the transactions again */ + await LibeufinSandboxApi.rotateKeys( + libeufinServices.libeufinSandbox, + user01sandbox.ebicsBankAccount.subscriber.hostID, + ); + + const resp = await LibeufinNexusApi.fetchAllTransactions( + libeufinServices.libeufinNexus, + user01nexus.localAccountName, + ); + console.log("Attempted fetch after key rotation", resp.data); + t.assertTrue(resp.status == 500); +} +runLibeufinKeyrotationTest.suites = ["libeufin"]; diff --git a/packages/taler-wallet-cli/src/integrationtests/testrunner.ts b/packages/taler-wallet-cli/src/integrationtests/testrunner.ts index 8162eccd0..b92257572 100644 --- a/packages/taler-wallet-cli/src/integrationtests/testrunner.ts +++ b/packages/taler-wallet-cli/src/integrationtests/testrunner.ts @@ -56,6 +56,7 @@ import { runWithdrawalBankIntegratedTest } from "./test-withdrawal-bank-integrat import M from "minimatch"; import { runMerchantExchangeConfusionTest } from "./test-merchant-exchange-confusion"; import { runLibeufinBasicTest } from "./test-libeufin-basic"; +import { runLibeufinKeyrotationTest } from "./test-libeufin-keyrotation"; import { runLibeufinRefundTest } from "./test-libeufin-refund"; import { runLibeufinRefundMultipleUsersTest } from "./test-libeufin-refund-multiple-users"; import { runLibeufinTutorialTest } from "./test-libeufin-tutorial"; @@ -95,6 +96,7 @@ const allTests: TestMainFunction[] = [ runExchangeManagementTest, runFeeRegressionTest, runLibeufinBasicTest, + runLibeufinKeyrotationTest, runLibeufinTutorialTest, runLibeufinRefundTest, runLibeufinRefundMultipleUsersTest, |