aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-harness/src/index.ts
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2023-10-23 15:49:13 -0300
committerSebastian <sebasjm@gmail.com>2023-10-23 15:49:35 -0300
commitc66f06eb73e53a8804b8c2b36ff45972836c633c (patch)
tree18461a0e29124326ccb70331971d5914f3ff56b3 /packages/taler-harness/src/index.ts
parent2512665e9462690162a5bae5fab3337217943269 (diff)
downloadwallet-core-c66f06eb73e53a8804b8c2b36ff45972836c633c.tar.xz
update conversion rate info, added test-bank-api in taler harness
Diffstat (limited to 'packages/taler-harness/src/index.ts')
-rw-r--r--packages/taler-harness/src/index.ts87
1 files changed, 76 insertions, 11 deletions
diff --git a/packages/taler-harness/src/index.ts b/packages/taler-harness/src/index.ts
index 09b953a22..0f93abdbe 100644
--- a/packages/taler-harness/src/index.ts
+++ b/packages/taler-harness/src/index.ts
@@ -18,22 +18,27 @@
* Imports.
*/
import {
- addPaytoQueryParams,
+ AccessToken,
+ AmountString,
Amounts,
- TalerCorebankApiClient,
Configuration,
- decodeCrock,
- j2s,
+ Duration,
+ HttpStatusCode,
+ LibtoolVersion,
Logger,
MerchantApiClient,
- rsaBlind,
- setGlobalLogLevelFromString,
- RegisterAccountRequest,
- HttpStatusCode,
MerchantInstanceConfig,
- Duration,
+ RegisterAccountRequest,
+ TalerCoreBankHttpClient,
+ TalerCorebankApiClient,
+ addPaytoQueryParams,
+ decodeCrock,
+ encodeCrock,
generateIban,
- AmountString,
+ getRandomBytes,
+ j2s,
+ rsaBlind,
+ setGlobalLogLevelFromString,
} from "@gnu-taler/taler-util";
import { clk } from "@gnu-taler/taler-util/clk";
import {
@@ -42,8 +47,8 @@ import {
} from "@gnu-taler/taler-util/http";
import {
CryptoDispatcher,
- downloadExchangeInfo,
SynchronousCryptoWorkerFactoryPlain,
+ downloadExchangeInfo,
topupReserveWithDemobank,
} from "@gnu-taler/taler-wallet-core";
import { deepStrictEqual } from "assert";
@@ -652,6 +657,66 @@ deploymentCli
process.exit(2);
});
+ deploymentCli
+ .subcommand("testBankAPI", "test-bank-api", {
+ help: "test api compatibility.",
+ })
+ .requiredArgument("corebankApiBaseUrl", clk.STRING)
+ .maybeOption("adminPwd", ["--admin-password"], clk.STRING)
+ .action(async (args) => {
+ const httpLib = createPlatformHttpLib();
+ const api = new TalerCoreBankHttpClient(args.testBankAPI.corebankApiBaseUrl, httpLib);
+
+ {
+ logger.info("compatibility")
+ const resp = await api.getConfig()
+ if (!LibtoolVersion.compare(resp.body.version, api.PROTOCOL_VERSION)?.compatible) {
+ logger.error("The API client is not compatible with the server", api.PROTOCOL_VERSION, resp.body.version)
+ process.exit(1)
+ }
+ }
+ if (!args.testBankAPI.adminPwd) {
+ logger.info("test completed")
+ process.exit(0)
+ }
+
+ let token: AccessToken;
+ {
+ logger.info("login admin")
+ const resp = await api.getAuthenticationAPI("admin").createAccessToken(args.testBankAPI.adminPwd, {
+ scope: "readwrite"
+ })
+ if (resp.type === "fail") {
+ logger.error("login failed", resp.detail)
+ process.exit(1)
+ }
+ token = resp.body.access_token;
+ }
+
+ logger.info("account management")
+ const username = "user-" + encodeCrock(getRandomBytes(10)).toLowerCase();
+ {
+ const resp = await api.createAccount(token, { name: username, password: "123", username })
+ if (resp.type === "fail") {
+ logger.error("create account failed", resp.detail)
+ process.exit(1)
+ }
+ }
+ {
+ const resp = await api.updateAccount({username, token}, { challenge_contact_data: {email: "asd"} })
+ if (resp.type === "fail") {
+ logger.error("create account failed", resp.detail)
+ process.exit(1)
+ }
+ }
+
+
+ logger.info("test completed")
+
+ });
+
+
+
deploymentCli
.subcommand("coincfg", "gen-coin-config", {
help: "Generate a coin/denomination configuration for the exchange.",