Testing Libeufin's permission API: creating and deleting one.
This commit is contained in:
parent
1944b08f87
commit
b414de8533
@ -913,6 +913,18 @@ export namespace LibeufinNexusApi {
|
||||
JSON.stringify(response.data, null, 2));
|
||||
}
|
||||
|
||||
export async function getConfig(
|
||||
libeufinNexusService: LibeufinNexusService,
|
||||
): Promise<void> {
|
||||
const baseUrl = libeufinNexusService.baseUrl;
|
||||
let url = new URL(
|
||||
`/config`,
|
||||
baseUrl,
|
||||
);
|
||||
let response = await axios.get(url.href);
|
||||
}
|
||||
|
||||
|
||||
// FIXME: this function should return some structured
|
||||
// object that represents a history.
|
||||
export async function getAccountTransactions(
|
||||
@ -978,6 +990,19 @@ export namespace LibeufinNexusApi {
|
||||
});
|
||||
}
|
||||
|
||||
export async function getAllPermissions(
|
||||
libeufinNexusService: LibeufinNexusServiceInterface,
|
||||
):Promise<any> {
|
||||
const baseUrl = libeufinNexusService.baseUrl;
|
||||
let url = new URL(`/permissions`, baseUrl);
|
||||
return await axios.get(url.href, {
|
||||
auth: {
|
||||
username: "admin",
|
||||
password: "test",
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
export async function postPermission(
|
||||
libeufinNexusService: LibeufinNexusServiceInterface,
|
||||
req: PostNexusPermissionRequest,
|
||||
|
@ -0,0 +1,65 @@
|
||||
/*
|
||||
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, setupDb } from "./harness";
|
||||
import {
|
||||
SandboxUserBundle,
|
||||
NexusUserBundle,
|
||||
launchLibeufinServices,
|
||||
LibeufinSandboxApi,
|
||||
LibeufinNexusApi,
|
||||
LibeufinNexusService,
|
||||
} from "./libeufin";
|
||||
|
||||
/**
|
||||
* Run basic test with LibEuFin.
|
||||
*/
|
||||
export async function runLibeufinApiPermissionsTest(t: GlobalTestState) {
|
||||
const nexus = await LibeufinNexusService.create(t, {
|
||||
httpPort: 5011,
|
||||
databaseJdbcUri: `jdbc:sqlite:${t.testDir}/libeufin-nexus.sqlite3`,
|
||||
});
|
||||
await nexus.start();
|
||||
await nexus.pingUntilAvailable();
|
||||
|
||||
const user01nexus = new NexusUserBundle(
|
||||
"01",
|
||||
"http://localhost:5010/ebicsweb",
|
||||
);
|
||||
|
||||
await LibeufinNexusApi.createUser(nexus, user01nexus.userReq);
|
||||
await LibeufinNexusApi.postPermission(
|
||||
nexus,
|
||||
user01nexus.twgTransferPermission,
|
||||
);
|
||||
let transferPermission = await LibeufinNexusApi.getAllPermissions(nexus);
|
||||
let element = transferPermission.data["permissions"].pop();
|
||||
t.assertTrue(
|
||||
element["permissionName"] == "facade.talerWireGateway.transfer"
|
||||
&& element["subjectId"] == "username-01"
|
||||
);
|
||||
let denyTransfer = user01nexus.twgTransferPermission;
|
||||
|
||||
// Now revoke permission.
|
||||
denyTransfer["action"] = "revoke";
|
||||
await LibeufinNexusApi.postPermission(nexus, denyTransfer);
|
||||
|
||||
transferPermission = await LibeufinNexusApi.getAllPermissions(nexus);
|
||||
t.assertTrue(transferPermission.data["permissions"].length == 0);
|
||||
}
|
@ -58,6 +58,7 @@ import { runLibeufinBasicTest } from "./test-libeufin-basic";
|
||||
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 { runDepositTest } from "./test-deposit";
|
||||
import CancellationToken from "cancellationtoken";
|
||||
import { runMerchantInstancesTest } from "./test-merchant-instances";
|
||||
@ -89,6 +90,7 @@ const allTests: TestMainFunction[] = [
|
||||
runLibeufinTutorialTest,
|
||||
runLibeufinRefundTest,
|
||||
runLibeufinRefundMultipleUsersTest,
|
||||
runLibeufinApiPermissionsTest,
|
||||
runMerchantExchangeConfusionTest,
|
||||
runMerchantInstancesTest,
|
||||
runMerchantInstancesDeleteTest,
|
||||
|
Loading…
Reference in New Issue
Block a user