aboutsummaryrefslogtreecommitdiff
path: root/packages/merchant-backoffice-ui
diff options
context:
space:
mode:
authorSebastian <sebasjm@gmail.com>2023-01-03 10:01:04 -0300
committerSebastian <sebasjm@gmail.com>2023-01-03 10:01:04 -0300
commit9ad1f2712a92d58804e090a7c3dd4cc0a41ee1d9 (patch)
tree51ea688742936faece5c5055bc2b66dbf501782d /packages/merchant-backoffice-ui
parenta2668c22f0d18386fc988f27299172145d9fa15d (diff)
downloadwallet-core-9ad1f2712a92d58804e090a7c3dd4cc0a41ee1d9.tar.xz
pretty
Diffstat (limited to 'packages/merchant-backoffice-ui')
-rw-r--r--packages/merchant-backoffice-ui/src/context/backend.test.ts26
-rw-r--r--packages/merchant-backoffice-ui/src/hooks/instance.test.ts429
-rw-r--r--packages/merchant-backoffice-ui/src/hooks/order.test.ts298
-rw-r--r--packages/merchant-backoffice-ui/src/hooks/order.ts6
-rw-r--r--packages/merchant-backoffice-ui/src/hooks/product.test.ts142
-rw-r--r--packages/merchant-backoffice-ui/src/hooks/reserve.test.ts109
-rw-r--r--packages/merchant-backoffice-ui/src/hooks/templates.ts7
-rw-r--r--packages/merchant-backoffice-ui/src/hooks/transfer.ts16
-rw-r--r--packages/merchant-backoffice-ui/src/utils/regex.test.ts83
-rw-r--r--packages/merchant-backoffice-ui/src/utils/request.ts4
10 files changed, 654 insertions, 466 deletions
diff --git a/packages/merchant-backoffice-ui/src/context/backend.test.ts b/packages/merchant-backoffice-ui/src/context/backend.test.ts
index c7fb19293..77395ca0c 100644
--- a/packages/merchant-backoffice-ui/src/context/backend.test.ts
+++ b/packages/merchant-backoffice-ui/src/context/backend.test.ts
@@ -29,14 +29,17 @@ import {
} from "../hooks/instance.js";
import { expect } from "chai";
import { ApiMockEnvironment } from "../hooks/testing.js";
-import { API_CREATE_INSTANCE, API_UPDATE_CURRENT_INSTANCE_AUTH, API_UPDATE_INSTANCE_AUTH_BY_ID } from "../hooks/urls.js";
+import {
+ API_CREATE_INSTANCE,
+ API_UPDATE_CURRENT_INSTANCE_AUTH,
+ API_UPDATE_INSTANCE_AUTH_BY_ID,
+} from "../hooks/urls.js";
interface TestingContextProps {
children?: ComponentChildren;
}
describe("backend context api ", () => {
-
it("should use new token after updating the instance token in the settings as user", async () => {
const env = new ApiMockEnvironment();
@@ -61,10 +64,12 @@ describe("backend context api ", () => {
} as MerchantBackend.Instances.QueryInstancesResponse,
});
- management.setNewToken("another_token")
+ management.setNewToken("another_token");
},
({ instance, management, admin }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
env.addRequestExpectation(API_CREATE_INSTANCE, {
auth: "another_token",
@@ -76,9 +81,10 @@ describe("backend context api ", () => {
admin.createInstance({
id: "new_instance_id",
} as MerchantBackend.Instances.InstanceConfigurationMessage);
-
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
@@ -110,7 +116,9 @@ describe("backend context api ", () => {
instance.setNewToken("another_token");
},
({ instance, management, admin }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
env.addRequestExpectation(API_CREATE_INSTANCE, {
auth: "another_token",
@@ -123,7 +131,9 @@ describe("backend context api ", () => {
id: "new_instance_id",
} as MerchantBackend.Instances.InstanceConfigurationMessage);
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
diff --git a/packages/merchant-backoffice-ui/src/hooks/instance.test.ts b/packages/merchant-backoffice-ui/src/hooks/instance.test.ts
index c7aa63e20..76c2c47ae 100644
--- a/packages/merchant-backoffice-ui/src/hooks/instance.test.ts
+++ b/packages/merchant-backoffice-ui/src/hooks/instance.test.ts
@@ -22,7 +22,13 @@
import { tests } from "@gnu-taler/web-util/lib/index.browser";
import { expect } from "chai";
import { MerchantBackend } from "../declaration.js";
-import { useAdminAPI, useBackendInstances, useInstanceAPI, useInstanceDetails, useManagementAPI } from "./instance.js";
+import {
+ useAdminAPI,
+ useBackendInstances,
+ useInstanceAPI,
+ useInstanceDetails,
+ useManagementAPI,
+} from "./instance.js";
import { ApiMockEnvironment } from "./testing.js";
import {
API_CREATE_INSTANCE,
@@ -30,17 +36,17 @@ import {
API_GET_CURRENT_INSTANCE,
API_LIST_INSTANCES,
API_UPDATE_CURRENT_INSTANCE,
- API_UPDATE_CURRENT_INSTANCE_AUTH, API_UPDATE_INSTANCE_BY_ID
+ API_UPDATE_CURRENT_INSTANCE_AUTH,
+ API_UPDATE_INSTANCE_BY_ID,
} from "./urls.js";
describe("instance api interaction with details", () => {
-
it("should evict cache when updating an instance", async () => {
const env = new ApiMockEnvironment();
env.addRequestExpectation(API_GET_CURRENT_INSTANCE, {
response: {
- name: 'instance_name'
+ name: "instance_name",
} as MerchantBackend.Instances.QueryInstancesResponse,
});
@@ -56,42 +62,47 @@ describe("instance api interaction with details", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- name: 'instance_name'
+ name: "instance_name",
});
env.addRequestExpectation(API_UPDATE_CURRENT_INSTANCE, {
request: {
- name: 'other_name'
+ name: "other_name",
} as MerchantBackend.Instances.InstanceReconfigurationMessage,
});
env.addRequestExpectation(API_GET_CURRENT_INSTANCE, {
response: {
- name: 'other_name'
+ name: "other_name",
} as MerchantBackend.Instances.QueryInstancesResponse,
});
api.updateInstance({
- name: 'other_name'
+ name: "other_name",
} as MerchantBackend.Instances.InstanceReconfigurationMessage);
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- name: 'other_name'
+ name: "other_name",
});
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
-
});
it("should evict cache when setting the instance's token", async () => {
@@ -99,11 +110,11 @@ describe("instance api interaction with details", () => {
env.addRequestExpectation(API_GET_CURRENT_INSTANCE, {
response: {
- name: 'instance_name',
+ name: "instance_name",
auth: {
- method: 'token',
- token: 'not-secret',
- }
+ method: "token",
+ token: "not-secret",
+ },
} as MerchantBackend.Instances.QueryInstancesResponse,
});
@@ -119,51 +130,56 @@ describe("instance api interaction with details", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- name: 'instance_name',
+ name: "instance_name",
auth: {
- method: 'token',
- token: 'not-secret',
- }
+ method: "token",
+ token: "not-secret",
+ },
});
env.addRequestExpectation(API_UPDATE_CURRENT_INSTANCE_AUTH, {
request: {
- method: 'token',
- token: 'secret'
+ method: "token",
+ token: "secret",
} as MerchantBackend.Instances.InstanceAuthConfigurationMessage,
});
env.addRequestExpectation(API_GET_CURRENT_INSTANCE, {
response: {
- name: 'instance_name',
+ name: "instance_name",
auth: {
- method: 'token',
- token: 'secret',
- }
+ method: "token",
+ token: "secret",
+ },
} as MerchantBackend.Instances.QueryInstancesResponse,
});
- api.setNewToken('secret')
+ api.setNewToken("secret");
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- name: 'instance_name',
+ name: "instance_name",
auth: {
- method: 'token',
- token: 'secret',
- }
+ method: "token",
+ token: "secret",
+ },
});
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
-
});
it("should evict cache when clearing the instance's token", async () => {
@@ -171,11 +187,11 @@ describe("instance api interaction with details", () => {
env.addRequestExpectation(API_GET_CURRENT_INSTANCE, {
response: {
- name: 'instance_name',
+ name: "instance_name",
auth: {
- method: 'token',
- token: 'not-secret',
- }
+ method: "token",
+ token: "not-secret",
+ },
} as MerchantBackend.Instances.QueryInstancesResponse,
});
@@ -191,46 +207,52 @@ describe("instance api interaction with details", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- name: 'instance_name',
+ name: "instance_name",
auth: {
- method: 'token',
- token: 'not-secret',
- }
+ method: "token",
+ token: "not-secret",
+ },
});
env.addRequestExpectation(API_UPDATE_CURRENT_INSTANCE_AUTH, {
request: {
- method: 'external',
+ method: "external",
} as MerchantBackend.Instances.InstanceAuthConfigurationMessage,
});
env.addRequestExpectation(API_GET_CURRENT_INSTANCE, {
response: {
- name: 'instance_name',
+ name: "instance_name",
auth: {
- method: 'external',
- }
+ method: "external",
+ },
} as MerchantBackend.Instances.QueryInstancesResponse,
});
api.clearToken();
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- name: 'instance_name',
+ name: "instance_name",
auth: {
- method: 'external',
- }
+ method: "external",
+ },
});
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
// const { result, waitForNextUpdate } = renderHook(
@@ -266,14 +288,12 @@ describe("instance api interaction with details", () => {
// }
// });
-
// act(async () => {
// await result.current?.api.clearToken();
// });
// expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
-
// expect(result.current.query.loading).false;
// await waitForNextUpdate({ timeout: 1 });
@@ -293,15 +313,16 @@ describe("instance api interaction with details", () => {
});
describe("instance admin api interaction with listing", () => {
-
it("should evict cache when creating a new instance", async () => {
const env = new ApiMockEnvironment();
env.addRequestExpectation(API_LIST_INSTANCES, {
response: {
- instances: [{
- name: 'instance_name'
- } as MerchantBackend.Instances.Instance]
+ instances: [
+ {
+ name: "instance_name",
+ } as MerchantBackend.Instances.Instance,
+ ],
},
});
@@ -317,53 +338,65 @@ describe("instance admin api interaction with listing", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- instances: [{
- name: 'instance_name'
- }]
+ instances: [
+ {
+ name: "instance_name",
+ },
+ ],
});
env.addRequestExpectation(API_CREATE_INSTANCE, {
request: {
- name: 'other_name'
+ name: "other_name",
} as MerchantBackend.Instances.InstanceConfigurationMessage,
});
env.addRequestExpectation(API_LIST_INSTANCES, {
response: {
- instances: [{
- name: 'instance_name'
- } as MerchantBackend.Instances.Instance,
- {
- name: 'other_name'
- } as MerchantBackend.Instances.Instance]
+ instances: [
+ {
+ name: "instance_name",
+ } as MerchantBackend.Instances.Instance,
+ {
+ name: "other_name",
+ } as MerchantBackend.Instances.Instance,
+ ],
},
});
api.createInstance({
- name: 'other_name'
+ name: "other_name",
} as MerchantBackend.Instances.InstanceConfigurationMessage);
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- instances: [{
- name: 'instance_name'
- }, {
- name: 'other_name'
- }]
+ instances: [
+ {
+ name: "instance_name",
+ },
+ {
+ name: "other_name",
+ },
+ ],
});
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
-
});
it("should evict cache when deleting an instance", async () => {
@@ -371,14 +404,16 @@ describe("instance admin api interaction with listing", () => {
env.addRequestExpectation(API_LIST_INSTANCES, {
response: {
- instances: [{
- id: 'default',
- name: 'instance_name'
- } as MerchantBackend.Instances.Instance,
- {
- id: 'the_id',
- name: 'second_instance'
- } as MerchantBackend.Instances.Instance]
+ instances: [
+ {
+ id: "default",
+ name: "instance_name",
+ } as MerchantBackend.Instances.Instance,
+ {
+ id: "the_id",
+ name: "second_instance",
+ } as MerchantBackend.Instances.Instance,
+ ],
},
});
@@ -394,45 +429,58 @@ describe("instance admin api interaction with listing", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- instances: [{
- id: 'default',
- name: 'instance_name'
- }, {
- id: 'the_id',
- name: 'second_instance'
- }]
+ instances: [
+ {
+ id: "default",
+ name: "instance_name",
+ },
+ {
+ id: "the_id",
+ name: "second_instance",
+ },
+ ],
});
- env.addRequestExpectation(API_DELETE_INSTANCE('the_id'), {});
+ env.addRequestExpectation(API_DELETE_INSTANCE("the_id"), {});
env.addRequestExpectation(API_LIST_INSTANCES, {
response: {
- instances: [{
- id: 'default',
- name: 'instance_name'
- } as MerchantBackend.Instances.Instance]
+ instances: [
+ {
+ id: "default",
+ name: "instance_name",
+ } as MerchantBackend.Instances.Instance,
+ ],
},
});
- api.deleteInstance('the_id');
+ api.deleteInstance("the_id");
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- instances: [{
- id: 'default',
- name: 'instance_name'
- }]
+ instances: [
+ {
+ id: "default",
+ name: "instance_name",
+ },
+ ],
});
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
@@ -510,14 +558,16 @@ describe("instance admin api interaction with listing", () => {
env.addRequestExpectation(API_LIST_INSTANCES, {
response: {
- instances: [{
- id: 'default',
- name: 'instance_name'
- } as MerchantBackend.Instances.Instance,
- {
- id: 'the_id',
- name: 'second_instance'
- } as MerchantBackend.Instances.Instance]
+ instances: [
+ {
+ id: "default",
+ name: "instance_name",
+ } as MerchantBackend.Instances.Instance,
+ {
+ id: "the_id",
+ name: "second_instance",
+ } as MerchantBackend.Instances.Instance,
+ ],
},
});
@@ -533,72 +583,85 @@ describe("instance admin api interaction with listing", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- instances: [{
- id: 'default',
- name: 'instance_name'
- }, {
- id: 'the_id',
- name: 'second_instance'
- }]
+ instances: [
+ {
+ id: "default",
+ name: "instance_name",
+ },
+ {
+ id: "the_id",
+ name: "second_instance",
+ },
+ ],
});
- env.addRequestExpectation(API_DELETE_INSTANCE('the_id'), {
+ env.addRequestExpectation(API_DELETE_INSTANCE("the_id"), {
qparam: {
- purge: 'YES'
- }
+ purge: "YES",
+ },
});
env.addRequestExpectation(API_LIST_INSTANCES, {
response: {
- instances: [{
- id: 'default',
- name: 'instance_name'
- } as MerchantBackend.Instances.Instance]
+ instances: [
+ {
+ id: "default",
+ name: "instance_name",
+ } as MerchantBackend.Instances.Instance,
+ ],
},
});
- api.purgeInstance('the_id')
+ api.purgeInstance("the_id");
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- instances: [{
- id: 'default',
- name: 'instance_name'
- }]
+ instances: [
+ {
+ id: "default",
+ name: "instance_name",
+ },
+ ],
});
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
-
});
});
describe("instance management api interaction with listing", () => {
-
it("should evict cache when updating an instance", async () => {
const env = new ApiMockEnvironment();
env.addRequestExpectation(API_LIST_INSTANCES, {
response: {
- instances: [{
- id: 'managed',
- name: 'instance_name'
- } as MerchantBackend.Instances.Instance]
+ instances: [
+ {
+ id: "managed",
+ name: "instance_name",
+ } as MerchantBackend.Instances.Instance,
+ ],
},
});
const hookBehavior = await tests.hookBehaveLikeThis(
() => {
- const api = useManagementAPI('managed');
+ const api = useManagementAPI("managed");
const query = useBackendInstances();
return { query, api };
},
@@ -608,53 +671,61 @@ describe("instance management api interaction with listing", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- instances: [{
- id: 'managed',
- name: 'instance_name'
- }]
+ instances: [
+ {
+ id: "managed",
+ name: "instance_name",
+ },
+ ],
});
- env.addRequestExpectation(API_UPDATE_INSTANCE_BY_ID('managed'), {
+ env.addRequestExpectation(API_UPDATE_INSTANCE_BY_ID("managed"), {
request: {
- name: 'other_name'
+ name: "other_name",
} as MerchantBackend.Instances.InstanceReconfigurationMessage,
});
env.addRequestExpectation(API_LIST_INSTANCES, {
response: {
instances: [
{
- id: 'managed',
- name: 'other_name'
- } as MerchantBackend.Instances.Instance]
+ id: "managed",
+ name: "other_name",
+ } as MerchantBackend.Instances.Instance,
+ ],
},
});
api.updateInstance({
- name: 'other_name'
+ name: "other_name",
} as MerchantBackend.Instances.InstanceConfigurationMessage);
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- instances: [{
- id: 'managed',
- name: 'other_name'
- }]
+ instances: [
+ {
+ id: "managed",
+ name: "other_name",
+ },
+ ],
});
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
-
});
-
});
-
diff --git a/packages/merchant-backoffice-ui/src/hooks/order.test.ts b/packages/merchant-backoffice-ui/src/hooks/order.test.ts
index be4d1d804..2f4615729 100644
--- a/packages/merchant-backoffice-ui/src/hooks/order.test.ts
+++ b/packages/merchant-backoffice-ui/src/hooks/order.test.ts
@@ -29,11 +29,11 @@ import {
API_DELETE_ORDER,
API_FORGET_ORDER_BY_ID,
API_GET_ORDER_BY_ID,
- API_LIST_ORDERS, API_REFUND_ORDER_BY_ID
+ API_LIST_ORDERS,
+ API_REFUND_ORDER_BY_ID,
} from "./urls.js";
describe("order api interaction with listing", () => {
-
it("should evict cache when creating an order", async () => {
const env = new ApiMockEnvironment();
@@ -51,7 +51,6 @@ describe("order api interaction with listing", () => {
},
});
-
const newDate = (d: Date) => {
//console.log("new date", d);
};
@@ -68,9 +67,11 @@ describe("order api interaction with listing", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).undefined;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
orders: [{ order_id: "1" }, { order_id: "2" }],
@@ -102,19 +103,22 @@ describe("order api interaction with listing", () => {
} as any);
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).undefined;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
orders: [{ order_id: "1" }, { order_id: "2" }, { order_id: "3" }],
});
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
-
});
it("should evict cache when doing a refund", async () => {
@@ -123,16 +127,21 @@ describe("order api interaction with listing", () => {
env.addRequestExpectation(API_LIST_ORDERS, {
qparam: { delta: 0, paid: "yes" },
response: {
- orders: [{ order_id: "1", amount: 'EUR:12', refundable: true } as MerchantBackend.Orders.OrderHistoryEntry],
+ orders: [
+ {
+ order_id: "1",
+ amount: "EUR:12",
+ refundable: true,
+ } as MerchantBackend.Orders.OrderHistoryEntry,
+ ],
},
});
env.addRequestExpectation(API_LIST_ORDERS, {
qparam: { delta: -20, paid: "yes" },
- response: { orders: [], },
+ response: { orders: [] },
});
-
const newDate = (d: Date) => {
//console.log("new date", d);
};
@@ -149,61 +158,72 @@ describe("order api interaction with listing", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).undefined;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- orders: [{
- order_id: "1",
- amount: 'EUR:12',
- refundable: true,
- }],
+ orders: [
+ {
+ order_id: "1",
+ amount: "EUR:12",
+ refundable: true,
+ },
+ ],
});
- env.addRequestExpectation(API_REFUND_ORDER_BY_ID('1'), {
+ env.addRequestExpectation(API_REFUND_ORDER_BY_ID("1"), {
request: {
- reason: 'double pay',
- refund: 'EUR:1'
+ reason: "double pay",
+ refund: "EUR:1",
},
});
env.addRequestExpectation(API_LIST_ORDERS, {
qparam: { delta: 0, paid: "yes" },
response: {
- orders: [{ order_id: "1", amount: 'EUR:12', refundable: false } as any],
+ orders: [
+ { order_id: "1", amount: "EUR:12", refundable: false } as any,
+ ],
},
});
env.addRequestExpectation(API_LIST_ORDERS, {
qparam: { delta: -20, paid: "yes" },
- response: { orders: [], },
+ response: { orders: [] },
});
- api.refundOrder('1', {
- reason: 'double pay',
- refund: 'EUR:1'
+ api.refundOrder("1", {
+ reason: "double pay",
+ refund: "EUR:1",
});
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).undefined;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- orders: [{
- order_id: "1",
- amount: 'EUR:12',
- refundable: false,
- }],
+ orders: [
+ {
+ order_id: "1",
+ amount: "EUR:12",
+ refundable: false,
+ },
+ ],
});
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
-
});
it("should evict cache when deleting an order", async () => {
@@ -223,7 +243,6 @@ describe("order api interaction with listing", () => {
},
});
-
const newDate = (d: Date) => {
//console.log("new date", d);
};
@@ -240,15 +259,17 @@ describe("order api interaction with listing", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).undefined;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
orders: [{ order_id: "1" }, { order_id: "2" }],
});
- env.addRequestExpectation(API_DELETE_ORDER('1'), {});
+ env.addRequestExpectation(API_DELETE_ORDER("1"), {});
env.addRequestExpectation(API_LIST_ORDERS, {
qparam: { delta: 0, paid: "yes" },
@@ -264,35 +285,36 @@ describe("order api interaction with listing", () => {
},
});
- api.deleteOrder('1');
+ api.deleteOrder("1");
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).undefined;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
orders: [{ order_id: "2" }],
});
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
-
});
-
});
describe("order api interaction with details", () => {
-
it("should evict cache when doing a refund", async () => {
const env = new ApiMockEnvironment();
- env.addRequestExpectation(API_GET_ORDER_BY_ID('1'), {
+ env.addRequestExpectation(API_GET_ORDER_BY_ID("1"), {
// qparam: { delta: 0, paid: "yes" },
response: {
- summary: 'description',
- refund_amount: 'EUR:0',
+ summary: "description",
+ refund_amount: "EUR:0",
} as unknown as MerchantBackend.Orders.CheckPaymentPaidResponse,
});
@@ -302,7 +324,7 @@ describe("order api interaction with details", () => {
const hookBehavior = await tests.hookBehaveLikeThis(
() => {
- const query = useOrderDetails('1')
+ const query = useOrderDetails("1");
const api = useOrderAPI();
return { query, api };
},
@@ -312,58 +334,63 @@ describe("order api interaction with details", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- summary: 'description',
- refund_amount: 'EUR:0',
+ summary: "description",
+ refund_amount: "EUR:0",
});
- env.addRequestExpectation(API_REFUND_ORDER_BY_ID('1'), {
+ env.addRequestExpectation(API_REFUND_ORDER_BY_ID("1"), {
request: {
- reason: 'double pay',
- refund: 'EUR:1'
+ reason: "double pay",
+ refund: "EUR:1",
},
});
- env.addRequestExpectation(API_GET_ORDER_BY_ID('1'), {
+ env.addRequestExpectation(API_GET_ORDER_BY_ID("1"), {
response: {
- summary: 'description',
- refund_amount: 'EUR:1',
+ summary: "description",
+ refund_amount: "EUR:1",
} as unknown as MerchantBackend.Orders.CheckPaymentPaidResponse,
});
- api.refundOrder('1', {
- reason: 'double pay',
- refund: 'EUR:1'
- })
+ api.refundOrder("1", {
+ reason: "double pay",
+ refund: "EUR:1",
+ });
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- summary: 'description',
- refund_amount: 'EUR:1',
+ summary: "description",
+ refund_amount: "EUR:1",
});
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
-
- })
+ });
it("should evict cache when doing a forget", async () => {
const env = new ApiMockEnvironment();
- env.addRequestExpectation(API_GET_ORDER_BY_ID('1'), {
+ env.addRequestExpectation(API_GET_ORDER_BY_ID("1"), {
// qparam: { delta: 0, paid: "yes" },
response: {
- summary: 'description',
- refund_amount: 'EUR:0',
+ summary: "description",
+ refund_amount: "EUR:0",
} as unknown as MerchantBackend.Orders.CheckPaymentPaidResponse,
});
@@ -373,7 +400,7 @@ describe("order api interaction with details", () => {
const hookBehavior = await tests.hookBehaveLikeThis(
() => {
- const query = useOrderDetails('1')
+ const query = useOrderDetails("1");
const api = useOrderAPI();
return { query, api };
},
@@ -383,48 +410,52 @@ describe("order api interaction with details", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- summary: 'description',
- refund_amount: 'EUR:0',
+ summary: "description",
+ refund_amount: "EUR:0",
});
- env.addRequestExpectation(API_FORGET_ORDER_BY_ID('1'), {
+ env.addRequestExpectation(API_FORGET_ORDER_BY_ID("1"), {
request: {
- fields: ['$.summary']
+ fields: ["$.summary"],
},
});
- env.addRequestExpectation(API_GET_ORDER_BY_ID('1'), {
+ env.addRequestExpectation(API_GET_ORDER_BY_ID("1"), {
response: {
summary: undefined,
} as unknown as MerchantBackend.Orders.CheckPaymentPaidResponse,
});
- api.forgetOrder('1', {
- fields: ['$.summary']
- })
+ api.forgetOrder("1", {
+ fields: ["$.summary"],
+ });
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
summary: undefined,
});
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
-
- })
-})
+ });
+});
describe("order listing pagination", () => {
-
it("should not load more if has reach the end", async () => {
const env = new ApiMockEnvironment();
env.addRequestExpectation(API_LIST_ORDERS, {
@@ -441,7 +472,6 @@ describe("order listing pagination", () => {
},
});
-
const newDate = (d: Date) => {
//console.log("new date", d);
};
@@ -449,7 +479,7 @@ describe("order listing pagination", () => {
const hookBehavior = await tests.hookBehaveLikeThis(
() => {
const date = new Date(12);
- const query = useInstanceOrders({ wired: "yes", date }, newDate)
+ const query = useInstanceOrders({ wired: "yes", date }, newDate);
const api = useOrderAPI();
return { query, api };
},
@@ -459,33 +489,40 @@ describe("order listing pagination", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).undefined;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
orders: [{ order_id: "1" }, { order_id: "2" }],
});
- expect(query.isReachingEnd).true
- expect(query.isReachingStart).true
+ expect(query.isReachingEnd).true;
+ expect(query.isReachingStart).true;
// should not trigger new state update or query
- query.loadMore()
+ query.loadMore();
query.loadMorePrev();
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
-
});
it("should load more if result brings more that PAGE_SIZE", async () => {
const env = new ApiMockEnvironment();
- const ordersFrom0to20 = Array.from({ length: 20 }).map((e, i) => ({ order_id: String(i) }))
- const ordersFrom20to40 = Array.from({ length: 20 }).map((e, i) => ({ order_id: String(i + 20) }))
- const ordersFrom20to0 = [...ordersFrom0to20].reverse()
+ const ordersFrom0to20 = Array.from({ length: 20 }).map((e, i) => ({
+ order_id: String(i),
+ }));
+ const ordersFrom20to40 = Array.from({ length: 20 }).map((e, i) => ({
+ order_id: String(i + 20),
+ }));
+ const ordersFrom20to0 = [...ordersFrom0to20].reverse();
env.addRequestExpectation(API_LIST_ORDERS, {
qparam: { delta: 20, wired: "yes", date_ms: 12 },
@@ -508,7 +545,7 @@ describe("order listing pagination", () => {
const hookBehavior = await tests.hookBehaveLikeThis(
() => {
const date = new Date(12);
- const query = useInstanceOrders({ wired: "yes", date }, newDate)
+ const query = useInstanceOrders({ wired: "yes", date }, newDate);
const api = useOrderAPI();
return { query, api };
},
@@ -518,62 +555,77 @@ describe("order listing pagination", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).undefined;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
orders: [...ordersFrom20to0, ...ordersFrom20to40],
});
- expect(query.isReachingEnd).false
- expect(query.isReachingStart).false
+ expect(query.isReachingEnd).false;
+ expect(query.isReachingStart).false;
env.addRequestExpectation(API_LIST_ORDERS, {
qparam: { delta: -40, wired: "yes", date_ms: 13 },
response: {
- orders: [...ordersFrom20to40, { order_id: '41' }],
+ orders: [...ordersFrom20to40, { order_id: "41" }],
},
});
- query.loadMore()
+ query.loadMore();
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).true;
},
({ query, api }) => {
expect(query.loading).undefined;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- orders: [...ordersFrom20to0, ...ordersFrom20to40, { order_id: '41' }],
+ orders: [
+ ...ordersFrom20to0,
+ ...ordersFrom20to40,
+ { order_id: "41" },
+ ],
});
env.addRequestExpectation(API_LIST_ORDERS, {
qparam: { delta: 40, wired: "yes", date_ms: 12 },
response: {
- orders: [...ordersFrom0to20, { order_id: '-1' }],
+ orders: [...ordersFrom0to20, { order_id: "-1" }],
},
});
- query.loadMorePrev()
+ query.loadMorePrev();
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).true;
},
({ query, api }) => {
expect(query.loading).undefined;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- orders: [{ order_id: '-1' }, ...ordersFrom20to0, ...ordersFrom20to40, { order_id: '41' }],
+ orders: [
+ { order_id: "-1" },
+ ...ordersFrom20to0,
+ ...ordersFrom20to40,
+ { order_id: "41" },
+ ],
});
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
});
-
-
});
diff --git a/packages/merchant-backoffice-ui/src/hooks/order.ts b/packages/merchant-backoffice-ui/src/hooks/order.ts
index 0bea6b963..5be480160 100644
--- a/packages/merchant-backoffice-ui/src/hooks/order.ts
+++ b/packages/merchant-backoffice-ui/src/hooks/order.ts
@@ -257,9 +257,9 @@ export function useInstanceOrders(
!beforeData || !afterData
? []
: (beforeData || lastBefore).data.orders
- .slice()
- .reverse()
- .concat((afterData || lastAfter).data.orders);
+ .slice()
+ .reverse()
+ .concat((afterData || lastAfter).data.orders);
if (loadingAfter || loadingBefore) return { loading: true, data: { orders } };
if (beforeData && afterData) {
return { ok: true, data: { orders }, ...pagination };
diff --git a/packages/merchant-backoffice-ui/src/hooks/product.test.ts b/packages/merchant-backoffice-ui/src/hooks/product.test.ts
index a182b28f4..c2271eb64 100644
--- a/packages/merchant-backoffice-ui/src/hooks/product.test.ts
+++ b/packages/merchant-backoffice-ui/src/hooks/product.test.ts
@@ -22,13 +22,18 @@
import { tests } from "@gnu-taler/web-util/lib/index.browser";
import { expect } from "chai";
import { MerchantBackend } from "../declaration.js";
-import { useInstanceProducts, useProductAPI, useProductDetails } from "./product.js";
+import {
+ useInstanceProducts,
+ useProductAPI,
+ useProductDetails,
+} from "./product.js";
import { ApiMockEnvironment } from "./testing.js";
import {
API_CREATE_PRODUCT,
- API_DELETE_PRODUCT, API_GET_PRODUCT_BY_ID,
+ API_DELETE_PRODUCT,
+ API_GET_PRODUCT_BY_ID,
API_LIST_PRODUCTS,
- API_UPDATE_PRODUCT_BY_ID
+ API_UPDATE_PRODUCT_BY_ID,
} from "./urls.js";
describe("product api interaction with listing", () => {
@@ -56,19 +61,21 @@ describe("product api interaction with listing", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).true;
},
({ query, api }) => {
expect(query.loading).undefined;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
- expect(query.data).deep.equals([
- { id: "1234", price: "ARS:12" },
- ]);
+ expect(query.data).deep.equals([{ id: "1234", price: "ARS:12" }]);
env.addRequestExpectation(API_CREATE_PRODUCT, {
- request: { price: "ARS:23" } as MerchantBackend.Products.ProductAddDetail,
+ request: {
+ price: "ARS:23",
+ } as MerchantBackend.Products.ProductAddDetail,
});
env.addRequestExpectation(API_LIST_PRODUCTS, {
@@ -77,28 +84,37 @@ describe("product api interaction with listing", () => {
},
});
env.addRequestExpectation(API_GET_PRODUCT_BY_ID("1234"), {
- response: { price: "ARS:12" } as MerchantBackend.Products.ProductDetail,
+ response: {
+ price: "ARS:12",
+ } as MerchantBackend.Products.ProductDetail,
});
env.addRequestExpectation(API_GET_PRODUCT_BY_ID("1234"), {
- response: { price: "ARS:12" } as MerchantBackend.Products.ProductDetail,
+ response: {
+ price: "ARS:12",
+ } as MerchantBackend.Products.ProductDetail,
});
env.addRequestExpectation(API_GET_PRODUCT_BY_ID("2345"), {
- response: { price: "ARS:23" } as MerchantBackend.Products.ProductDetail,
+ response: {
+ price: "ARS:23",
+ } as MerchantBackend.Products.ProductDetail,
});
api.createProduct({
price: "ARS:23",
- } as any)
-
+ } as any);
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).undefined;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals([
{
@@ -111,11 +127,12 @@ describe("product api interaction with listing", () => {
},
]);
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
-
});
it("should evict cache when updating a product", async () => {
@@ -145,16 +162,18 @@ describe("product api interaction with listing", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).undefined;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
- expect(query.data).deep.equals([
- { id: "1234", price: "ARS:12" },
- ]);
+ expect(query.data).deep.equals([{ id: "1234", price: "ARS:12" }]);
env.addRequestExpectation(API_UPDATE_PRODUCT_BY_ID("1234"), {
- request: { price: "ARS:13" } as MerchantBackend.Products.ProductPatchDetail,
+ request: {
+ price: "ARS:13",
+ } as MerchantBackend.Products.ProductPatchDetail,
});
env.addRequestExpectation(API_LIST_PRODUCTS, {
@@ -163,18 +182,21 @@ describe("product api interaction with listing", () => {
},
});
env.addRequestExpectation(API_GET_PRODUCT_BY_ID("1234"), {
- response: { price: "ARS:13" } as MerchantBackend.Products.ProductDetail,
+ response: {
+ price: "ARS:13",
+ } as MerchantBackend.Products.ProductDetail,
});
api.updateProduct("1234", {
price: "ARS:13",
- } as any)
-
+ } as any);
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).undefined;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals([
{
@@ -183,11 +205,12 @@ describe("product api interaction with listing", () => {
},
]);
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
-
});
it("should evict cache when deleting a product", async () => {
@@ -217,12 +240,14 @@ describe("product api interaction with listing", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).true;
},
({ query, api }) => {
expect(query.loading).undefined;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals([
{ id: "1234", price: "ARS:12" },
@@ -238,29 +263,34 @@ describe("product api interaction with listing", () => {
});
env.addRequestExpectation(API_GET_PRODUCT_BY_ID("1234"), {
- response: { price: "ARS:12" } as MerchantBackend.Products.ProductDetail,
+ response: {
+ price: "ARS:12",
+ } as MerchantBackend.Products.ProductDetail,
});
api.deleteProduct("2345");
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).undefined;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
- expect(query.data).deep.equals([
- { id: "1234", price: "ARS:12" },
- ]);
+ expect(query.data).deep.equals([{ id: "1234", price: "ARS:12" }]);
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
});
-
});
describe("product api interaction with details", () => {
@@ -285,16 +315,20 @@ describe("product api interaction with details", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
description: "this is a description",
});
env.addRequestExpectation(API_UPDATE_PRODUCT_BY_ID("12"), {
- request: { description: "other description" } as MerchantBackend.Products.ProductPatchDetail,
+ request: {
+ description: "other description",
+ } as MerchantBackend.Products.ProductPatchDetail,
});
env.addRequestExpectation(API_GET_PRODUCT_BY_ID("12"), {
@@ -306,21 +340,23 @@ describe("product api interaction with details", () => {
api.updateProduct("12", {
description: "other description",
} as any);
-
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
description: "other description",
});
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
-
- })
-}) \ No newline at end of file
+ });
+});
diff --git a/packages/merchant-backoffice-ui/src/hooks/reserve.test.ts b/packages/merchant-backoffice-ui/src/hooks/reserve.test.ts
index da0e054e5..79c8c9229 100644
--- a/packages/merchant-backoffice-ui/src/hooks/reserve.test.ts
+++ b/packages/merchant-backoffice-ui/src/hooks/reserve.test.ts
@@ -25,7 +25,7 @@ import {
useInstanceReserves,
useReserveDetails,
useReservesAPI,
- useTipDetails
+ useTipDetails,
} from "./reserves.js";
import { ApiMockEnvironment } from "./testing.js";
import {
@@ -35,7 +35,7 @@ import {
API_DELETE_RESERVE,
API_GET_RESERVE_BY_ID,
API_GET_TIP_BY_ID,
- API_LIST_RESERVES
+ API_LIST_RESERVES,
} from "./urls.js";
import { tests } from "@gnu-taler/web-util/lib/index.browser";
@@ -66,7 +66,7 @@ describe("reserve api interaction with listing", () => {
},
({ query, api }) => {
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
reserves: [{ reserve_pub: "11" }],
@@ -101,10 +101,12 @@ describe("reserve api interaction with listing", () => {
initial_balance: "ARS:3333",
exchange_url: "http://url",
wire_method: "iban",
- })
+ });
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
expect(query.ok).true;
if (!query.ok) return;
@@ -120,11 +122,12 @@ describe("reserve api interaction with listing", () => {
],
});
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
-
});
it("should evict cache when deleting a reserve", async () => {
@@ -158,10 +161,12 @@ describe("reserve api interaction with listing", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" })
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
reserves: [
@@ -185,25 +190,25 @@ describe("reserve api interaction with listing", () => {
},
});
- api.deleteReserve("11")
+ api.deleteReserve("11");
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" })
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
- reserves: [
- { reserve_pub: "22" },
- { reserve_pub: "33" },
- ],
+ reserves: [{ reserve_pub: "22" }, { reserve_pub: "33" }],
});
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
-
});
});
@@ -217,8 +222,8 @@ describe("reserve api interaction with details", () => {
tips: [{ reason: "why?", tip_id: "id1", total_amount: "USD:10" }],
} as MerchantBackend.Tips.ReserveDetail,
qparam: {
- tips: "yes"
- }
+ tips: "yes",
+ },
});
const hookBehavior = await tests.hookBehaveLikeThis(
@@ -233,9 +238,11 @@ describe("reserve api interaction with details", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
payto_uri: "payto://here",
@@ -253,8 +260,8 @@ describe("reserve api interaction with details", () => {
taler_tip_uri: "uri",
tip_expiration: { t_s: 1 },
tip_status_url: "url",
- }
- },);
+ },
+ });
env.addRequestExpectation(API_GET_RESERVE_BY_ID("11"), {
response: {
@@ -265,18 +272,20 @@ describe("reserve api interaction with details", () => {
],
} as MerchantBackend.Tips.ReserveDetail,
qparam: {
- tips: "yes"
- }
+ tips: "yes",
+ },
});
api.authorizeTipReserve("11", {
amount: "USD:12",
justification: "not",
next_url: "http://taler.net",
- })
+ });
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
expect(query.loading).false;
@@ -291,11 +300,12 @@ describe("reserve api interaction with details", () => {
],
});
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
-
});
it("should evict cache when adding a tip for a random reserve", async () => {
@@ -307,8 +317,8 @@ describe("reserve api interaction with details", () => {
tips: [{ reason: "why?", tip_id: "id1", total_amount: "USD:10" }],
} as MerchantBackend.Tips.ReserveDetail,
qparam: {
- tips: "yes"
- }
+ tips: "yes",
+ },
});
const hookBehavior = await tests.hookBehaveLikeThis(
@@ -323,9 +333,11 @@ describe("reserve api interaction with details", () => {
expect(query.loading).true;
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
payto_uri: "payto://here",
@@ -355,8 +367,8 @@ describe("reserve api interaction with details", () => {
],
} as MerchantBackend.Tips.ReserveDetail,
qparam: {
- tips: "yes"
- }
+ tips: "yes",
+ },
});
api.authorizeTip({
@@ -364,10 +376,11 @@ describe("reserve api interaction with details", () => {
justification: "not",
next_url: "http://taler.net",
});
-
},
({ query, api }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).false;
expect(query.ok).true;
if (!query.ok) return;
@@ -380,7 +393,9 @@ describe("reserve api interaction with details", () => {
],
});
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
@@ -388,7 +403,6 @@ describe("reserve api interaction with details", () => {
});
describe("reserve api interaction with tip details", () => {
-
it("should list tips", async () => {
const env = new ApiMockEnvironment();
@@ -398,8 +412,8 @@ describe("reserve api interaction with tip details", () => {
reason: "not",
} as MerchantBackend.Tips.TipDetails,
qparam: {
- pickups: "yes"
- }
+ pickups: "yes",
+ },
});
const hookBehavior = await tests.hookBehaveLikeThis(
@@ -410,22 +424,25 @@ describe("reserve api interaction with tip details", () => {
{},
[
({ query }) => {
- expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
+ expect(env.assertJustExpectedRequestWereMade()).deep.eq({
+ result: "ok",
+ });
expect(query.loading).true;
},
({ query }) => {
expect(query.loading).false;
- expect(query.ok).true
+ expect(query.ok).true;
if (!query.ok) return;
expect(query.data).deep.equals({
total_picked_up: "USD:12",
reason: "not",
});
},
- ], env.buildTestingContext());
+ ],
+ env.buildTestingContext(),
+ );
expect(hookBehavior).deep.eq({ result: "ok" });
expect(env.assertJustExpectedRequestWereMade()).deep.eq({ result: "ok" });
-
});
});
diff --git a/packages/merchant-backoffice-ui/src/hooks/templates.ts b/packages/merchant-backoffice-ui/src/hooks/templates.ts
index 55c3875b5..672eaf792 100644
--- a/packages/merchant-backoffice-ui/src/hooks/templates.ts
+++ b/packages/merchant-backoffice-ui/src/hooks/templates.ts
@@ -174,9 +174,10 @@ export function useInstanceTemplates(
if (afterData.data.templates.length < MAX_RESULT_SIZE) {
setPageAfter(pageAfter + 1);
} else {
- const from = `${afterData.data.templates[afterData.data.templates.length - 1]
- .template_id
- }`;
+ const from = `${
+ afterData.data.templates[afterData.data.templates.length - 1]
+ .template_id
+ }`;
if (from && updatePosition) updatePosition(from);
}
},
diff --git a/packages/merchant-backoffice-ui/src/hooks/transfer.ts b/packages/merchant-backoffice-ui/src/hooks/transfer.ts
index c827772e4..b86247476 100644
--- a/packages/merchant-backoffice-ui/src/hooks/transfer.ts
+++ b/packages/merchant-backoffice-ui/src/hooks/transfer.ts
@@ -141,9 +141,10 @@ export function useInstanceTransfers(
if (afterData.data.transfers.length < MAX_RESULT_SIZE) {
setPageAfter(pageAfter + 1);
} else {
- const from = `${afterData.data.transfers[afterData.data.transfers.length - 1]
+ const from = `${
+ afterData.data.transfers[afterData.data.transfers.length - 1]
.transfer_serial_id
- }`;
+ }`;
if (from && updatePosition) updatePosition(from);
}
},
@@ -152,9 +153,10 @@ export function useInstanceTransfers(
if (beforeData.data.transfers.length < MAX_RESULT_SIZE) {
setPageBefore(pageBefore + 1);
} else if (beforeData) {
- const from = `${beforeData.data.transfers[beforeData.data.transfers.length - 1]
+ const from = `${
+ beforeData.data.transfers[beforeData.data.transfers.length - 1]
.transfer_serial_id
- }`;
+ }`;
if (from && updatePosition) updatePosition(from);
}
},
@@ -164,9 +166,9 @@ export function useInstanceTransfers(
!beforeData || !afterData
? []
: (beforeData || lastBefore).data.transfers
- .slice()
- .reverse()
- .concat((afterData || lastAfter).data.transfers);
+ .slice()
+ .reverse()
+ .concat((afterData || lastAfter).data.transfers);
if (loadingAfter || loadingBefore)
return { loading: true, data: { transfers } };
if (beforeData && afterData) {
diff --git a/packages/merchant-backoffice-ui/src/utils/regex.test.ts b/packages/merchant-backoffice-ui/src/utils/regex.test.ts
index 41f0156f5..341a19fb1 100644
--- a/packages/merchant-backoffice-ui/src/utils/regex.test.ts
+++ b/packages/merchant-backoffice-ui/src/utils/regex.test.ts
@@ -15,74 +15,73 @@
*/
/**
-*
-* @author Sebastian Javier Marchano (sebasjm)
-*/
+ *
+ * @author Sebastian Javier Marchano (sebasjm)
+ */
import { expect } from "chai";
import { AMOUNT_REGEX, PAYTO_REGEX } from "../../src/utils/constants.js";
-describe('payto uri format', () => {
+describe("payto uri format", () => {
const valids = [
- 'payto://iban/DE75512108001245126199?amount=EUR:200.0&message=hello',
- 'payto://ach/122000661/1234',
- 'payto://upi/alice@example.com?receiver-name=Alice&amount=INR:200',
- 'payto://void/?amount=EUR:10.5',
- 'payto://ilp/g.acme.bob'
- ]
+ "payto://iban/DE75512108001245126199?amount=EUR:200.0&message=hello",
+ "payto://ach/122000661/1234",
+ "payto://upi/alice@example.com?receiver-name=Alice&amount=INR:200",
+ "payto://void/?amount=EUR:10.5",
+ "payto://ilp/g.acme.bob",
+ ];
- it('should be valid', () => {
- valids.forEach(v => expect(v).match(PAYTO_REGEX))
+ it("should be valid", () => {
+ valids.forEach((v) => expect(v).match(PAYTO_REGEX));
});
const invalids = [
// has two question marks
- 'payto://iban/DE75?512108001245126199?amount=EUR:200.0&message=hello',
+ "payto://iban/DE75?512108001245126199?amount=EUR:200.0&message=hello",
// has a space
- 'payto://ach /122000661/1234',
+ "payto://ach /122000661/1234",
// has a space
- 'payto://upi/alice@ example.com?receiver-name=Alice&amount=INR:200',
+ "payto://upi/alice@ example.com?receiver-name=Alice&amount=INR:200",
// invalid field name (mount instead of amount)
- 'payto://void/?mount=EUR:10.5',
+ "payto://void/?mount=EUR:10.5",
// payto:// is incomplete
- 'payto: //ilp/g.acme.bob'
- ]
+ "payto: //ilp/g.acme.bob",
+ ];
- it('should not be valid', () => {
- invalids.forEach(v => expect(v).not.match(PAYTO_REGEX))
+ it("should not be valid", () => {
+ invalids.forEach((v) => expect(v).not.match(PAYTO_REGEX));
});
-})
+});
-describe('amount format', () => {
+describe("amount format", () => {
const valids = [
- 'ARS:10',
- 'COL:10.2',
- 'UY:1,000.2',
- 'ARS:10.123,123',
- 'ARS:1,000,000',
- 'ARSCOL:10',
- 'THISISTHEMOTHERCOIN:1,000,000.123,123',
- ]
+ "ARS:10",
+ "COL:10.2",
+ "UY:1,000.2",
+ "ARS:10.123,123",
+ "ARS:1,000,000",
+ "ARSCOL:10",
+ "THISISTHEMOTHERCOIN:1,000,000.123,123",
+ ];
- it('should be valid', () => {
- valids.forEach(v => expect(v).match(AMOUNT_REGEX))
+ it("should be valid", () => {
+ valids.forEach((v) => expect(v).match(AMOUNT_REGEX));
});
const invalids = [
//no currency name
- ':10',
+ ":10",
//use . instead of ,
- 'ARS:1.000.000',
+ "ARS:1.000.000",
//currency name with numbers
- '1ARS:10',
+ "1ARS:10",
//currency name with numbers
- 'AR5:10',
+ "AR5:10",
//missing value
- 'USD:',
- ]
+ "USD:",
+ ];
- it('should not be valid', () => {
- invalids.forEach(v => expect(v).not.match(AMOUNT_REGEX))
+ it("should not be valid", () => {
+ invalids.forEach((v) => expect(v).not.match(AMOUNT_REGEX));
});
-
-}) \ No newline at end of file
+});
diff --git a/packages/merchant-backoffice-ui/src/utils/request.ts b/packages/merchant-backoffice-ui/src/utils/request.ts
index 32b31a557..821eca4a7 100644
--- a/packages/merchant-backoffice-ui/src/utils/request.ts
+++ b/packages/merchant-backoffice-ui/src/utils/request.ts
@@ -200,7 +200,7 @@ async function buildRequestOk<T>(
hasToken: boolean,
): Promise<HttpResponseOk<T>> {
const dataTxt = await response.text();
- const data = dataTxt ? JSON.parse(dataTxt) : undefined
+ const data = dataTxt ? JSON.parse(dataTxt) : undefined;
return {
ok: true,
data,
@@ -234,7 +234,7 @@ async function buildRequestFailed(
try {
const dataTxt = await response.text();
- const data = dataTxt ? JSON.parse(dataTxt) : undefined
+ const data = dataTxt ? JSON.parse(dataTxt) : undefined;
if (status && status >= 400 && status < 500) {
const error: HttpResponseClientError = {
clientError: true,