aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMS <ms@taler.net>2021-05-10 11:54:59 +0200
committerMS <ms@taler.net>2021-05-10 11:54:59 +0200
commit9772e5837ea861b23690b6727f1a67c7b2edf1da (patch)
treebea6eadd95e38d6aa6c6711694b2baf063168610
parent4ed4535bc090acf3e5a3b7781ba458d077aac751 (diff)
Libeufin testing: testing users creation/update
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/libeufin.ts33
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-users.ts70
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/testrunner.ts2
3 files changed, 103 insertions, 2 deletions
diff --git a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts b/packages/taler-wallet-cli/src/integrationtests/libeufin.ts
index f90b22f3b..638926a43 100644
--- a/packages/taler-wallet-cli/src/integrationtests/libeufin.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/libeufin.ts
@@ -755,6 +755,17 @@ export interface CreateTalerWireGatewayFacadeRequest {
reserveTransferLevel: "report" | "statement" | "notification";
}
+export interface UpdateNexusUserRequest {
+ newPassword: string;
+}
+
+export interface NexusAuth {
+ auth: {
+ username: string;
+ password: string;
+ }
+}
+
export interface CreateNexusUserRequest {
username: string;
password: string;
@@ -949,7 +960,6 @@ export namespace LibeufinNexusApi {
);
}
-
export async function fetchAllTransactions(
libeufinNexusService: LibeufinNexusService,
accountName: string,
@@ -976,6 +986,25 @@ export namespace LibeufinNexusApi {
);
}
+ export async function changePassword(
+ libeufinNexusService: LibeufinNexusServiceInterface,
+ req: UpdateNexusUserRequest,
+ auth: NexusAuth,
+ ) {
+ const baseUrl = libeufinNexusService.baseUrl;
+ let url = new URL(`/users/password`, baseUrl);
+ await axios.post(url.href, req, auth);
+ }
+
+ export async function getUser(
+ libeufinNexusService: LibeufinNexusServiceInterface,
+ auth: NexusAuth,
+ ): Promise<any> {
+ const baseUrl = libeufinNexusService.baseUrl;
+ let url = new URL(`/user`, baseUrl);
+ return await axios.get(url.href, auth);
+ }
+
export async function createUser(
libeufinNexusService: LibeufinNexusServiceInterface,
req: CreateNexusUserRequest,
@@ -992,7 +1021,7 @@ export namespace LibeufinNexusApi {
export async function getAllPermissions(
libeufinNexusService: LibeufinNexusServiceInterface,
- ):Promise<any> {
+ ): Promise<any> {
const baseUrl = libeufinNexusService.baseUrl;
let url = new URL(`/permissions`, baseUrl);
return await axios.get(url.href, {
diff --git a/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-users.ts b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-users.ts
new file mode 100644
index 000000000..fa443305f
--- /dev/null
+++ b/packages/taler-wallet-cli/src/integrationtests/test-libeufin-api-users.ts
@@ -0,0 +1,70 @@
+/*
+ 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 {
+ NexusUserBundle,
+ LibeufinNexusApi,
+ LibeufinNexusService,
+} from "./libeufin";
+
+/**
+ * Run basic test with LibEuFin.
+ */
+export async function runLibeufinApiUsersTest(t: GlobalTestState) {
+ const nexus = await LibeufinNexusService.create(t, {
+ httpPort: 5011,
+ databaseJdbcUri: `jdbc:sqlite:${t.testDir}/libeufin-nexus.sqlite3`,
+ });
+ await nexus.start();
+ await nexus.pingUntilAvailable();
+
+ await LibeufinNexusApi.createUser(
+ nexus,
+ {
+ username: "one",
+ password: "will-be-changed",
+ }
+ );
+
+ await LibeufinNexusApi.changePassword(
+ nexus,
+ {
+ newPassword: "got-changed",
+ },
+ {
+ auth: {
+ username: "one",
+ password: "will-be-changed",
+ }
+ },
+ );
+
+ let resp = await LibeufinNexusApi.getUser(
+ nexus,
+ {
+ auth: {
+ username: "one",
+ password: "got-changed",
+ }
+ }
+ );
+ console.log(resp.data);
+ t.assertTrue(resp.data["username"] == "one" && !resp.data["superuser"]);
+}
diff --git a/packages/taler-wallet-cli/src/integrationtests/testrunner.ts b/packages/taler-wallet-cli/src/integrationtests/testrunner.ts
index b064ebb05..c57cd8d1f 100644
--- a/packages/taler-wallet-cli/src/integrationtests/testrunner.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/testrunner.ts
@@ -59,6 +59,7 @@ import { runLibeufinRefundTest } from "./test-libeufin-refund";
import { runLibeufinRefundMultipleUsersTest } from "./test-libeufin-refund-multiple-users";
import { runLibeufinTutorialTest } from "./test-libeufin-tutorial";
import { runLibeufinApiPermissionsTest } from "./test-libeufin-api-permissions";
+import { runLibeufinApiUsersTest } from "./test-libeufin-api-users";
import { runDepositTest } from "./test-deposit";
import CancellationToken from "cancellationtoken";
import { runMerchantInstancesTest } from "./test-merchant-instances";
@@ -91,6 +92,7 @@ const allTests: TestMainFunction[] = [
runLibeufinRefundTest,
runLibeufinRefundMultipleUsersTest,
runLibeufinApiPermissionsTest,
+ runLibeufinApiUsersTest,
runMerchantExchangeConfusionTest,
runMerchantInstancesTest,
runMerchantInstancesDeleteTest,