[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-wallet-core] 02/02: test merchant issue reported by MS
From: |
gnunet |
Subject: |
[taler-wallet-core] 02/02: test merchant issue reported by MS |
Date: |
Thu, 04 Mar 2021 13:42:13 +0100 |
This is an automated email from the git hooks/post-receive script.
dold pushed a commit to branch master
in repository wallet-core.
commit 050461f28da4c97733af412d41c4ac75be877012
Author: Florian Dold <florian@dold.me>
AuthorDate: Thu Mar 4 13:42:08 2021 +0100
test merchant issue reported by MS
---
.../src/integrationtests/harness.ts | 24 ++++++++++++---
.../integrationtests/test-merchant-instances.ts | 36 +++++++++++++++++++---
2 files changed, 51 insertions(+), 9 deletions(-)
diff --git a/packages/taler-wallet-cli/src/integrationtests/harness.ts
b/packages/taler-wallet-cli/src/integrationtests/harness.ts
index a2d2b8e1..169aa8aa 100644
--- a/packages/taler-wallet-cli/src/integrationtests/harness.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/harness.ts
@@ -277,7 +277,9 @@ export class GlobalTestState {
}
assertAxiosError(e: any): asserts e is AxiosError {
- return e.isAxiosError;
+ if (!e.isAxiosError) {
+ throw Error("expected axios error");
+ }
}
assertTrue(b: boolean): asserts b {
@@ -1191,6 +1193,14 @@ export class MerchantApiClient {
});
}
+ async deleteInstance(instanceId: string) {
+ const baseUrl = this.baseUrl;
+ const url = new URL(`private/instances/${instanceId}`);
+ await axios.delete(url.href, {
+ headers: this.makeAuthHeader(),
+ });
+ }
+
async createInstance(req: MerchantInstanceConfig): Promise<void> {
const baseUrl = this.baseUrl;
const url = new URL("private/instances", baseUrl);
@@ -1209,10 +1219,14 @@ export class MerchantApiClient {
async getInstanceFullDetails(instanceId: string): Promise<any> {
const url = new URL(`private/instances/${instanceId}`, this.baseUrl);
- const resp = await axios.get(url.href, {
- headers: this.makeAuthHeader(),
- });
- return resp.data;
+ try {
+ const resp = await axios.get(url.href, {
+ headers: this.makeAuthHeader(),
+ });
+ return resp.data;
+ } catch (e) {
+ throw e;
+ }
}
makeAuthHeader(): Record<string, string> {
diff --git
a/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances.ts
b/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances.ts
index 4691487d..5d1c06e1 100644
--- a/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances.ts
+++ b/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances.ts
@@ -80,13 +80,23 @@ export async function runMerchantInstancesTest(t:
GlobalTestState) {
},
});
+ // Add an instance, no auth!
+ await merchant.addInstance({
+ id: "myinst",
+ name: "Second Instance",
+ paytoUris: [`payto://x-taler-bank/merchant-default`],
+ auth: {
+ method: "external",
+ },
+ });
+
let merchantClient = new MerchantApiClient(merchant.makeInstanceBaseUrl(), {
method: "external",
});
{
const r = await merchantClient.getInstances();
- t.assertDeepEqual(r.instances.length, 1);
+ t.assertDeepEqual(r.instances.length, 2);
}
// Check that a "malformed" bearer Authorization header gets ignored
@@ -94,7 +104,7 @@ export async function runMerchantInstancesTest(t:
GlobalTestState) {
const url = merchant.makeInstanceBaseUrl();
const resp = await axios.get(new URL("private/instances", url).href, {
headers: {
- "Authorization": "foo bar-baz",
+ Authorization: "foo bar-baz",
},
});
t.assertDeepEqual(resp.status, 200);
@@ -133,8 +143,8 @@ export async function runMerchantInstancesTest(t:
GlobalTestState) {
const resp = await axios.get(new URL("private/instances", url).href, {
headers: {
// Note the spaces
- "Authorization": "Bearer secret-token:foobar",
- }
+ Authorization: "Bearer secret-token:foobar",
+ },
});
t.assertDeepEqual(resp.status, 200);
}
@@ -146,6 +156,24 @@ export async function runMerchantInstancesTest(t:
GlobalTestState) {
// Token should *not* be reported back.
t.assertDeepEqual(fullDetails.auth.token, undefined);
}
+
+ // Check that deleting an instance checks the auth
+ // of the default instance.
+ {
+ const unauthMerchantClient = new MerchantApiClient(
+ merchant.makeInstanceBaseUrl(),
+ {
+ method: "external",
+ },
+ );
+
+ const exc = await t.assertThrowsAsync(async () => {
+ await unauthMerchantClient.deleteInstance("");
+ });
+ console.log(exc);
+ t.assertAxiosError(exc);
+ t.assertDeepEqual(exc.response?.status, 403);
+ }
}
runMerchantInstancesTest.suites = ["merchant"];
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.