aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-cli/src/integrationtests/test-merchant-instances.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2021-03-04 13:42:08 +0100
committerFlorian Dold <florian@dold.me>2021-03-04 13:42:08 +0100
commit050461f28da4c97733af412d41c4ac75be877012 (patch)
tree8cdbb2f6738193d56b8d366fa0b70f3e331f0e4c /packages/taler-wallet-cli/src/integrationtests/test-merchant-instances.ts
parent032c486eaf8c6c1a87c5b3afc609898b41eba59b (diff)
downloadwallet-core-050461f28da4c97733af412d41c4ac75be877012.tar.xz
test merchant issue reported by MS
Diffstat (limited to 'packages/taler-wallet-cli/src/integrationtests/test-merchant-instances.ts')
-rw-r--r--packages/taler-wallet-cli/src/integrationtests/test-merchant-instances.ts36
1 files changed, 32 insertions, 4 deletions
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 4691487de..5d1c06e1e 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"];