Testing euFin 'bad gateway' handling.

This commit is contained in:
ms 2021-10-02 10:20:20 +02:00
parent bff5b3f59c
commit 2c3456608e
No known key found for this signature in database
GPG Key ID: 8D526861953F4C0F
3 changed files with 76 additions and 52 deletions

View File

@ -1,50 +0,0 @@
/*
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, delayMs } from "./harness";
import {
SandboxUserBundle,
NexusUserBundle,
launchLibeufinServices,
LibeufinSandboxApi,
LibeufinNexusApi,
} from "./libeufin";
/**
* This test checks how the C52 and C53 coordinate. It'll test
* whether fresh transactions stop showing as C52 after they get
* included in a bank statement.
*/
export async function runLibeufinNexus404ResponseTest(t: GlobalTestState) {
/**
* User saltetd "01"
*/
const user01nexus = new NexusUserBundle(
"01",
"http://localhost:5010/not-found", // the EBICS endpoint at Sandbox
);
/**
* Launch Sandbox and Nexus.
*/
const libeufinServices = await launchLibeufinServices(
t, [user01nexus],
);
}
runLibeufinNexus404ResponseTest.suites = ["libeufin"];

View File

@ -0,0 +1,74 @@
/*
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, delayMs } from "./harness";
import {
NexusUserBundle,
LibeufinNexusApi,
LibeufinNexusService,
LibeufinSandboxService,
} from "./libeufin";
/**
* Testing how Nexus reacts when the Sandbox is unreachable.
* Typically, because the user specified a wrong EBICS endpoint.
*/
export async function runLibeufinBadGatewayTest(t: GlobalTestState) {
/**
* User saltetd "01"
*/
const user01nexus = new NexusUserBundle(
"01", "http://localhost:5010/not-found", // the EBICS endpoint at Sandbox
);
// Start Nexus
const libeufinNexus = await LibeufinNexusService.create(t, {
httpPort: 5011,
databaseJdbcUri: `jdbc:sqlite:${t.testDir}/libeufin-nexus.sqlite3`,
});
await libeufinNexus.start();
await libeufinNexus.pingUntilAvailable();
// Start Sandbox
const libeufinSandbox = await LibeufinSandboxService.create(t, {
httpPort: 5010,
databaseJdbcUri: `jdbc:sqlite:${t.testDir}/libeufin-sandbox.sqlite3`,
});
await libeufinSandbox.start();
await libeufinSandbox.pingUntilAvailable();
// Connecting to a non-existent Sandbox endpoint.
await LibeufinNexusApi.createEbicsBankConnection(
libeufinNexus,
user01nexus.connReq
);
// 502 Bad Gateway expected.
try {
await LibeufinNexusApi.connectBankConnection(
libeufinNexus,
user01nexus.connReq.name,
);
} catch(e) {
t.assertTrue(e.response.status == 502);
return;
}
t.assertTrue(false);
}
runLibeufinBadGatewayTest.suites = ["libeufin"];

View File

@ -59,7 +59,7 @@ import { runMerchantExchangeConfusionTest } from "./test-merchant-exchange-confu
import { runLibeufinBasicTest } from "./test-libeufin-basic";
import { runLibeufinC5xTest } from "./test-libeufin-c5x";
import { runLibeufinNexusBalanceTest } from "./test-libeufin-nexus-balance";
import { runLibeufinNexus404ResponseTest } from "./test-libeufin-404-from-sandbox";
import { runLibeufinBadGatewayTest } from "./test-libeufin-bad-gateway";
import { runLibeufinKeyrotationTest } from "./test-libeufin-keyrotation";
import { runLibeufinRefundTest } from "./test-libeufin-refund";
import { runLibeufinRefundMultipleUsersTest } from "./test-libeufin-refund-multiple-users";
@ -116,7 +116,7 @@ const allTests: TestMainFunction[] = [
runLibeufinRefundTest,
runLibeufinC5xTest,
runLibeufinNexusBalanceTest,
runLibeufinNexus404ResponseTest,
runLibeufinBadGatewayTest,
runLibeufinRefundMultipleUsersTest,
runLibeufinApiPermissionsTest,
runLibeufinApiFacadeTest,