Libeufin testing: testing users creation/update

This commit is contained in:
MS 2021-05-10 11:54:59 +02:00
parent 4ed4535bc0
commit 9772e5837e
No known key found for this signature in database
GPG Key ID: 8D526861953F4C0F
3 changed files with 103 additions and 2 deletions

View File

@ -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, {

View File

@ -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"]);
}

View File

@ -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,