summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-cli/src/integrationtests/libeufin.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-cli/src/integrationtests/libeufin.ts')
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/libeufin.ts175
1 files changed, 175 insertions, 0 deletions
diff --git a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts b/packages/taler-wallet-cli/src/integrationtests/libeufin.ts
index a7aeb0a73..582c23795 100644
--- a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/libeufin.ts
@@ -51,6 +51,43 @@ export interface LibeufinCliDetails {
sandboxUrl: string;
nexusDatabaseUri: string;
sandboxDatabaseUri: string;
+ user: LibeufinNexusUser;
+}
+
+export interface LibeufinEbicsSubscriberDetails {
+ hostId: string;
+ partnerId: string;
+ userId: string;
+}
+
+export interface LibeufinEbicsConnectionDetails {
+ subscriberDetails: LibeufinEbicsSubscriberDetails;
+ ebicsUrl: string;
+ connectionName: string;
+}
+
+export interface LibeufinBankAccountDetails {
+ currency: string;
+ iban: string;
+ bic: string;
+ personName: string;
+ accountName: string;
+}
+
+export interface LibeufinNexusUser {
+ username: string;
+ password: string;
+}
+
+export interface LibeufinBackupFileDetails {
+ passphrase: string;
+ outputFile: string;
+ connectionName: string;
+}
+
+export interface LibeufinKeyLetterDetails {
+ outputFile: string;
+ connectionName: string;
}
export class LibeufinSandboxService implements LibeufinSandboxServiceInterface {
@@ -136,6 +173,20 @@ export class LibeufinNexusService {
const url = `${this.baseUrl}config`;
await pingProc(this.nexusProc, url, "libeufin-nexus");
}
+
+ async createNexusSuperuser(
+ details: LibeufinNexusUser,
+ ): Promise<void> {
+
+ const stdout = await sh(
+ this.globalTestState,
+ "libeufin-nexus",
+ `libeufin-nexus superuser ${details.username} --password=${details.password}`,
+ extendEnv({ LIBEUFIN_NEXUS_DB_CONNECTION: this.nexusConfig.databaseJdbcUri }),
+ );
+ console.log(stdout);
+ }
+
}
export interface CreateEbicsSubscriberRequest {
@@ -207,6 +258,130 @@ export class LibeufinCli {
);
console.log(stdout);
}
+
+ async createEbicsSubscriber(
+ details: LibeufinEbicsSubscriberDetails,
+ ): Promise<void> {
+
+ const stdout = await sh(
+ this.globalTestState,
+ "libeufin-cli-createebicssubscriber",
+ "libeufin-cli sandbox ebicssubscriber create" +
+ ` --host-id=${details.hostId}` +
+ ` --partner-id=${details.partnerId}` +
+ ` --user-id=${details.userId}`,
+ extendEnv({ LIBEUFIN_SANDBOX_URL: this.cliDetails.sandboxUrl }),
+ );
+ console.log(stdout);
+ }
+
+ async createEbicsBankAccount(
+ sd: LibeufinEbicsSubscriberDetails,
+ bankAccountDetails: LibeufinBankAccountDetails,
+ ): Promise<void> {
+
+ const stdout = await sh(
+ this.globalTestState,
+ "libeufin-cli-createebicsbankaccount",
+ "libeufin-cli sandbox ebicsbankaccount create" +
+ ` --currency=${bankAccountDetails.currency}` +
+ ` --iban=${bankAccountDetails.iban}` +
+ ` --bic=${bankAccountDetails.bic}` +
+ ` --person-name='${bankAccountDetails.personName}'` +
+ ` --account-name=${bankAccountDetails.accountName}` +
+ ` --ebics-host-id=${sd.hostId}` +
+ ` --ebics-partner-id=${sd.partnerId}` +
+ ` --ebics-user-id=${sd.userId}`,
+ extendEnv({ LIBEUFIN_SANDBOX_URL: this.cliDetails.sandboxUrl }),
+ );
+ console.log(stdout);
+ }
+
+ async generateTransactions(
+ accountName: string,
+ ): Promise<void> {
+
+ const stdout = await sh(
+ this.globalTestState,
+ "libeufin-cli-generatetransactions",
+ `libeufin-cli sandbox bankaccount generate-transactions ${accountName}`,
+ extendEnv({ LIBEUFIN_SANDBOX_URL: this.cliDetails.sandboxUrl }),
+ );
+ console.log(stdout);
+ }
+
+ async showSandboxTransactions(
+ accountName: string,
+ ): Promise<void> {
+
+ const stdout = await sh(
+ this.globalTestState,
+ "libeufin-cli-showsandboxtransactions",
+ `libeufin-cli sandbox bankaccount transactions ${accountName}`,
+ extendEnv({ LIBEUFIN_SANDBOX_URL: this.cliDetails.sandboxUrl }),
+ );
+ console.log(stdout);
+ }
+
+ async createEbicsConnection(
+ connectionDetails: LibeufinEbicsConnectionDetails,
+ ): Promise<void> {
+
+ const stdout = await sh(
+ this.globalTestState,
+ "libeufin-cli-createebicsconnection",
+ `libeufin-cli connections new-ebics-connection` +
+ ` --ebics-url=${connectionDetails.ebicsUrl}` +
+ ` --host-id=${connectionDetails.subscriberDetails.hostId}` +
+ ` --partner-id=${connectionDetails.subscriberDetails.partnerId}` +
+ ` --ebics-user-id=${connectionDetails.subscriberDetails.partnerId}` +
+ ` ${connectionDetails.connectionName}`,
+ extendEnv({
+ LIBEUFIN_NEXUS_URL: this.cliDetails.nexusUrl,
+ LIBEUFIN_NEXUS_USERNAME: this.cliDetails.user.username,
+ LIBEUFIN_NEXUS_PASSWORD: this.cliDetails.user.password,
+ }),
+ );
+ console.log(stdout);
+ }
+
+ async createBackupFile(
+ details: LibeufinBackupFileDetails,
+ ): Promise<void> {
+
+ const stdout = await sh(
+ this.globalTestState,
+ "libeufin-cli-createbackupfile",
+ `libeufin-cli connections export-backup` +
+ ` --passphrase=${details.passphrase}` +
+ ` --output-file=${details.outputFile}` +
+ ` ${details.connectionName}`,
+ extendEnv({
+ LIBEUFIN_NEXUS_URL: this.cliDetails.nexusUrl,
+ LIBEUFIN_NEXUS_USERNAME: this.cliDetails.user.username,
+ LIBEUFIN_NEXUS_PASSWORD: this.cliDetails.user.password,
+ }),
+ );
+ console.log(stdout);
+ }
+
+ async createKeyLetter(
+ details: LibeufinKeyLetterDetails,
+ ): Promise<void> {
+
+ const stdout = await sh(
+ this.globalTestState,
+ "libeufin-cli-createkeyletter",
+ `libeufin-cli connections get-key-letter` +
+ ` ${details.connectionName} ${details.outputFile}`,
+ extendEnv({
+ LIBEUFIN_NEXUS_URL: this.cliDetails.nexusUrl,
+ LIBEUFIN_NEXUS_USERNAME: this.cliDetails.user.username,
+ LIBEUFIN_NEXUS_PASSWORD: this.cliDetails.user.password,
+ }),
+ );
+ console.log(stdout);
+ }
}
export namespace LibeufinSandboxApi {