richie-education 3.2.2-dev38 → 3.2.2-dev41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/js/api/lms/dummy.ts +22 -16
- package/js/components/SaleTunnel/SaleTunnelInformation/SaleTunnelInformationGroup.tsx +1 -1
- package/js/components/SaleTunnel/SaleTunnelInformation/StepContent.tsx +5 -1
- package/js/components/SaleTunnel/index.full-process-b2b.spec.tsx +70 -4
- package/package.json +1 -1
package/js/api/lms/dummy.ts
CHANGED
|
@@ -25,26 +25,32 @@ type JWTPayload = {
|
|
|
25
25
|
username: string;
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
-
/* All JWT tokens will expire the
|
|
28
|
+
/* All JWT tokens will expire the 05 Feb 2027 ! */
|
|
29
29
|
const JOANIE_DEV_DEMO_USER_JWT_TOKENS = {
|
|
30
|
-
|
|
31
|
-
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
|
|
32
|
-
user1:
|
|
33
|
-
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzcwMjIzOTY5LCJpYXQiOjE3Mzg2ODc5NjksImp0aSI6ImIwYjk3YjZkZjFlMzRkMTg4NjFiMGFhMjcxYWI0YWU1IiwiZW1haWwiOiJzYW1wc29uYW5uYUBleGFtcGxlLm9yZyIsImxhbmd1YWdlIjoiZW4tdXMiLCJ1c2VybmFtZSI6InVzZXIxIiwiZnVsbF9uYW1lIjoiT3RoZXIgT3duZXIifQ.yd46_63iuw19zmzH8aVNRAVAvAE4VGH8W8BjmFs6PPU',
|
|
34
|
-
user2:
|
|
35
|
-
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzcwMjIzOTY5LCJpYXQiOjE3Mzg2ODc5NjksImp0aSI6ImNmYzY2OTNmY2Q5ZTRlZGViM2Y2NzU1MTZhNDIzMTdiIiwiZW1haWwiOiJsb3BlemFtYmVyQGV4YW1wbGUub3JnIiwibGFuZ3VhZ2UiOiJlbi11cyIsInVzZXJuYW1lIjoidXNlcjIiLCJmdWxsX25hbWUiOiJPdGhlciBPd25lciJ9.TlFILOXY-wK29M_BUgDKgjdOovSfEIlw5cNXed6ZV3w',
|
|
36
|
-
user3:
|
|
37
|
-
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzcwMjIzOTY5LCJpYXQiOjE3Mzg2ODc5NjksImp0aSI6IjA4ZTcxZGJjYWIyMDRjMmZhZjgyMDVjZTRiNTliMjZiIiwiZW1haWwiOiJsb25nZWxpemFiZXRoQGV4YW1wbGUub3JnIiwibGFuZ3VhZ2UiOiJlbi11cyIsInVzZXJuYW1lIjoidXNlcjMiLCJmdWxsX25hbWUiOiJPdGhlciBPd25lciJ9.8NxYyjc567lO2Yc7me-TQr8PNvKqB5VLRzHd1Z4vA4U',
|
|
38
|
-
user4:
|
|
39
|
-
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNzcwMjIzOTY5LCJpYXQiOjE3Mzg2ODc5NjksImp0aSI6ImVmZGRkM2Q0YTdmZDQ4ZmFhYmZkM2Q2OTI4YzMwM2U4IiwiZW1haWwiOiJqb25lc2plbm5pZmVyQGV4YW1wbGUub3JnIiwibGFuZ3VhZ2UiOiJlbi11cyIsInVzZXJuYW1lIjoidXNlcjQiLCJmdWxsX25hbWUiOiJPdGhlciBPd25lciJ9.Wn5CKuNPn0s4B_76Mxd3zTKqdUMaZGV456bhZ-fDe-o',
|
|
30
|
+
admin:
|
|
31
|
+
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxODAxODMyNDI4LCJpYXQiOjE3NzAyOTY0MjgsImp0aSI6IjY2NWQ2N2Y3ZTU4MzQyMDc4YTg1MWNjNTFhNGMyMDg5IiwiZW1haWwiOiJhZG1pbkBleGFtcGxlLmNvbSIsImxhbmd1YWdlIjoiZW4tdXMiLCJ1c2VybmFtZSI6ImFkbWluIiwiZnVsbF9uYW1lIjoiIn0.yDC39WViIYl_pnJAjTedpVNBl14lSXZsXbDv-604VOo',
|
|
40
32
|
organization_owner:
|
|
41
|
-
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
|
|
33
|
+
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxODAxODMyNDI4LCJpYXQiOjE3NzAyOTY0MjgsImp0aSI6IjlmY2EyZTA5MjcxYjRmZDQ5MTAzMGQ5YjJkMzk3MDhhIiwiZW1haWwiOiJkZXZlbG9wZXIrb3JnYW5pemF0aW9uX293bmVyQGV4YW1wbGUuY29tIiwibGFuZ3VhZ2UiOiJmci1mciIsInVzZXJuYW1lIjoib3JnYW5pemF0aW9uX293bmVyIiwiZnVsbF9uYW1lIjoiT3JnYSBPd25lciJ9.lf2ePQ-xZ-uHY6azh32kFIU3JvzKn3YJZZjmkApqBuE',
|
|
42
34
|
student_user:
|
|
43
|
-
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
|
|
35
|
+
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxODAxODMyNDI4LCJpYXQiOjE3NzAyOTY0MjgsImp0aSI6ImU0M2U3NDg4NDBlYzRkMTI4YTUzMTZmZDY0M2Y1ZWZjIiwiZW1haWwiOiJkZXZlbG9wZXIrc3R1ZGVudF91c2VyQGV4YW1wbGUuY29tIiwibGFuZ3VhZ2UiOiJlbi11cyIsInVzZXJuYW1lIjoic3R1ZGVudF91c2VyIiwiZnVsbF9uYW1lIjoiXHUwMGM5dHVkaWFudCJ9.KViEfiPEv9UGq3nuYxoXBOcJDXxoBfr-sPZEqEJtve4',
|
|
44
36
|
second_student_user:
|
|
45
|
-
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
|
|
46
|
-
|
|
47
|
-
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
|
|
37
|
+
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxODAxODMyNDI4LCJpYXQiOjE3NzAyOTY0MjgsImp0aSI6IjIzZDI1OGI5ZmIxMzQyMWFiNDlmNDk1M2RjMjRkZjM5IiwiZW1haWwiOiJkZXZlbG9wZXIrc2Vjb25kX3N0dWRlbnRfdXNlckBleGFtcGxlLmNvbSIsImxhbmd1YWdlIjoiZnItZnIiLCJ1c2VybmFtZSI6InNlY29uZF9zdHVkZW50X3VzZXIiLCJmdWxsX25hbWUiOiJcdTAwYzl0dWRpYW50IDAwMiJ9.WOSPWNi9XRAap4Cd0Nzwp7A-3M1Rkp4A2k9yFI1sUdQ',
|
|
38
|
+
user4:
|
|
39
|
+
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxODAxODMyNDI4LCJpYXQiOjE3NzAyOTY0MjgsImp0aSI6ImM0ZThjNDhmYTVhMjQyOTZhMzliMzQzNDI5MTYxYmU2IiwiZW1haWwiOiJkdXN0aW5tYXJ0aW5lekBleGFtcGxlLmNvbSIsImxhbmd1YWdlIjoiZW4tdXMiLCJ1c2VybmFtZSI6InVzZXI0IiwiZnVsbF9uYW1lIjoiSmFyZWQgQmVuc29uIn0.J6q6Vgn-TJBCF1HJk7jf8OWjdI5zBjCHYAdoJeVB_Lk',
|
|
40
|
+
user5:
|
|
41
|
+
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxODAxODMyNDI4LCJpYXQiOjE3NzAyOTY0MjgsImp0aSI6ImEzMzNhNjZjMTJmODQ5ZDNhY2FmMzFjNDc1NzVmZjFiIiwiZW1haWwiOiJnYWNvc3RhQGV4YW1wbGUub3JnIiwibGFuZ3VhZ2UiOiJlbi11cyIsInVzZXJuYW1lIjoidXNlcjUiLCJmdWxsX25hbWUiOiJKZXJyeSBKYW1lcyJ9.E9Cs8ETQveN7VNq0gq3enIBFWbth3ESZ1JHrIaeQvkY',
|
|
42
|
+
user6:
|
|
43
|
+
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxODAxODMyNDI4LCJpYXQiOjE3NzAyOTY0MjgsImp0aSI6ImNhZDAzOTFkMTk5NjQwNWQ5YThmZWYzMGQ4YzBiZTNiIiwiZW1haWwiOiJtb3JnYW5kb25uYUBleGFtcGxlLmNvbSIsImxhbmd1YWdlIjoiZnItZnIiLCJ1c2VybmFtZSI6InVzZXI2IiwiZnVsbF9uYW1lIjoiS3Jpc3RpbiBOb2JsZSJ9.FowqEHxSh72wGq52QTm6aG3U1GZfcJBQseiSPm4RXOc',
|
|
44
|
+
user7:
|
|
45
|
+
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxODAxODMyNDI4LCJpYXQiOjE3NzAyOTY0MjgsImp0aSI6ImJhZjUxYjM4OWNhNzQwYWVhMzk3Y2EwY2QzOGFmYzczIiwiZW1haWwiOiJ0dXJuZXJtYWRpc29uQGV4YW1wbGUubmV0IiwibGFuZ3VhZ2UiOiJmci1mciIsInVzZXJuYW1lIjoidXNlcjciLCJmdWxsX25hbWUiOiJCZWNreSBWYXNxdWV6In0.mtbflgik7w7PEVJ-W6mjL2Wnq-bKrugGlWkkmc_jxxU',
|
|
46
|
+
user8:
|
|
47
|
+
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxODAxODMyNDI4LCJpYXQiOjE3NzAyOTY0MjgsImp0aSI6IjM4NWNiZDljMTI4MjQxMDk4YjZlOGFmYjI2ZjA1Y2Y0IiwiZW1haWwiOiJyb2JlcnQ3NUBleGFtcGxlLm5ldCIsImxhbmd1YWdlIjoiZW4tdXMiLCJ1c2VybmFtZSI6InVzZXI4IiwiZnVsbF9uYW1lIjoiS2V2aW4gQm9vbmUifQ.c_mwfr72SC49hdNOupjgPlplPXBOrm0Gb5d5KuC6NI4',
|
|
48
|
+
user9:
|
|
49
|
+
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxODAxODMyNDI4LCJpYXQiOjE3NzAyOTY0MjgsImp0aSI6IjI5MGVlN2UxZDQ5YTRjZTJiOTk1ZGMyOWExN2QyOTZiIiwiZW1haWwiOiJjbGFya2tpbWJlcmx5QGV4YW1wbGUubmV0IiwibGFuZ3VhZ2UiOiJlbi11cyIsInVzZXJuYW1lIjoidXNlcjkiLCJmdWxsX25hbWUiOiJKb2huIE93ZW5zIn0.ke-2g7942a2LgBR2OpMxYg-ozB7269ymWx8nzaJs-kc',
|
|
50
|
+
user10:
|
|
51
|
+
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxODAxODMyNDI4LCJpYXQiOjE3NzAyOTY0MjgsImp0aSI6ImMxMWJhNDY3YWY0YTRjMWFhZDIwOTZhOGU1MDA3NTJiIiwiZW1haWwiOiJiZW5qYW1pbjU5QGV4YW1wbGUub3JnIiwibGFuZ3VhZ2UiOiJlbi11cyIsInVzZXJuYW1lIjoidXNlcjEwIiwiZnVsbF9uYW1lIjoiUm9uYWxkIEpvaG5zb24ifQ.c_AEOp6jD_K0xsJK4ZvkZcGnKlD3wmm_eJ2UEBGY5v0',
|
|
52
|
+
user11:
|
|
53
|
+
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxODAxODMyNDI4LCJpYXQiOjE3NzAyOTY0MjgsImp0aSI6Ijc5ZDg3NDkxZDU0NDRmMWVhZDAzYTYyMmQ0NWI0Y2E1IiwiZW1haWwiOiJhbWFuZGExMUBleGFtcGxlLm5ldCIsImxhbmd1YWdlIjoiZW4tdXMiLCJ1c2VybmFtZSI6InVzZXIxMSIsImZ1bGxfbmFtZSI6IkNoZXJ5bCBUYXlsb3IifQ.e6DEq75EHvCgtjf7aLr7Tk1DyZ9-4f-n-W8DXySCZZM',
|
|
48
54
|
};
|
|
49
55
|
|
|
50
56
|
export type DevDemoUser = keyof typeof JOANIE_DEV_DEMO_USER_JWT_TOKENS;
|
|
@@ -211,6 +211,7 @@ export const StepContent = ({
|
|
|
211
211
|
value: organization.id,
|
|
212
212
|
}));
|
|
213
213
|
const [otherBillingAddress, setOtherBillingAddress] = useState(false);
|
|
214
|
+
const organizationId = form.watch('organization_id');
|
|
214
215
|
|
|
215
216
|
return (
|
|
216
217
|
<div className="step-content">
|
|
@@ -525,11 +526,14 @@ export const StepContent = ({
|
|
|
525
526
|
</div>
|
|
526
527
|
<FormattedMessage {...messages.recommandation} />
|
|
527
528
|
<Select
|
|
528
|
-
{...register('organization_id')}
|
|
529
529
|
label={intl.formatMessage(messages.participatingOrganisations)}
|
|
530
530
|
clearable
|
|
531
531
|
options={orgOptions}
|
|
532
532
|
className="recommandation"
|
|
533
|
+
value={organizationId ?? ''}
|
|
534
|
+
onChange={(e) => {
|
|
535
|
+
form.setValue('organization_id', e.target.value as string);
|
|
536
|
+
}}
|
|
533
537
|
/>
|
|
534
538
|
</div>
|
|
535
539
|
</div>
|
|
@@ -2,6 +2,7 @@ import { screen, within } from '@testing-library/react';
|
|
|
2
2
|
import fetchMock from 'fetch-mock';
|
|
3
3
|
import queryString from 'query-string';
|
|
4
4
|
import userEvent from '@testing-library/user-event';
|
|
5
|
+
import { PaymentMethod } from 'components/PaymentInterfaces/types';
|
|
5
6
|
import {
|
|
6
7
|
RichieContextFactory as mockRichieContextFactory,
|
|
7
8
|
PacedCourseFactory,
|
|
@@ -17,6 +18,7 @@ import {
|
|
|
17
18
|
OfferingBatchOrderFactory,
|
|
18
19
|
BatchOrderReadFactory,
|
|
19
20
|
CredentialOrderFactory,
|
|
21
|
+
OrganizationFactory,
|
|
20
22
|
} from 'utils/test/factories/joanie';
|
|
21
23
|
import { CourseRun, NOT_CANCELED_ORDER_STATES, OrderState } from 'types/Joanie';
|
|
22
24
|
import { Priority } from 'types';
|
|
@@ -82,9 +84,7 @@ describe('SaleTunnel', () => {
|
|
|
82
84
|
const product = ProductFactory().one();
|
|
83
85
|
const offering = OfferingFactory({ course, product, is_withdrawable: false }).one();
|
|
84
86
|
const paymentPlan = PaymentPlanFactory().one();
|
|
85
|
-
const
|
|
86
|
-
product: { id: product.id, title: product.title },
|
|
87
|
-
}).one();
|
|
87
|
+
const organizations = OrganizationFactory().many(3);
|
|
88
88
|
|
|
89
89
|
fetchMock.get(
|
|
90
90
|
`https://joanie.endpoint/api/v1.0/courses/${course.code}/products/${product.id}/`,
|
|
@@ -105,7 +105,7 @@ describe('SaleTunnel', () => {
|
|
|
105
105
|
);
|
|
106
106
|
fetchMock.get(
|
|
107
107
|
`https://joanie.endpoint/api/v1.0/offerings/${offering.id}/get-organizations/`,
|
|
108
|
-
|
|
108
|
+
organizations,
|
|
109
109
|
);
|
|
110
110
|
|
|
111
111
|
render(<CourseProductItem productId={product.id} course={course} />, {
|
|
@@ -214,6 +214,33 @@ describe('SaleTunnel', () => {
|
|
|
214
214
|
await user.type($nbParticipants, '13');
|
|
215
215
|
expect($nbParticipants).toHaveValue(13);
|
|
216
216
|
|
|
217
|
+
// Financing step
|
|
218
|
+
await user.click(screen.getByRole('button', { name: 'Next' }));
|
|
219
|
+
|
|
220
|
+
const $purchaseOrderRadio = await screen.findByLabelText('Purchase order');
|
|
221
|
+
await user.click($purchaseOrderRadio);
|
|
222
|
+
|
|
223
|
+
const $fundingEntity = screen.getByLabelText('Entity name');
|
|
224
|
+
await user.type($fundingEntity, 'OPCO');
|
|
225
|
+
expect($fundingEntity).toHaveValue('OPCO');
|
|
226
|
+
|
|
227
|
+
const $fundingAmount = screen.getByLabelText('Amount covered');
|
|
228
|
+
await user.type($fundingAmount, '5000');
|
|
229
|
+
expect($fundingAmount).toHaveValue(5000);
|
|
230
|
+
|
|
231
|
+
const organizationComboboxes = screen.getAllByRole('combobox', {
|
|
232
|
+
name: 'Participating organizations',
|
|
233
|
+
});
|
|
234
|
+
|
|
235
|
+
const $organizationSelect = organizationComboboxes[organizationComboboxes.length - 1];
|
|
236
|
+
await user.click($organizationSelect);
|
|
237
|
+
const organizationMenu: HTMLDivElement = screen.getByRole('listbox', {
|
|
238
|
+
name: 'Participating organizations',
|
|
239
|
+
});
|
|
240
|
+
expectMenuToBeOpen(organizationMenu);
|
|
241
|
+
const firstOrg = organizations[0];
|
|
242
|
+
await user.click(screen.getByRole('option', { name: firstOrg.title }));
|
|
243
|
+
|
|
217
244
|
// Submit the batch order
|
|
218
245
|
const batchOrderRead = BatchOrderReadFactory().one();
|
|
219
246
|
fetchMock.post('https://joanie.endpoint/api/v1.0/batch-orders/', batchOrderRead);
|
|
@@ -229,6 +256,39 @@ describe('SaleTunnel', () => {
|
|
|
229
256
|
'href',
|
|
230
257
|
`/en/dashboard/batch-orders/${batchOrderRead.id}`,
|
|
231
258
|
);
|
|
259
|
+
|
|
260
|
+
// Verify the batch order payload contains all required and optional fields
|
|
261
|
+
const batchOrderCalls = fetchMock.calls('https://joanie.endpoint/api/v1.0/batch-orders/');
|
|
262
|
+
expect(batchOrderCalls).toHaveLength(1);
|
|
263
|
+
const batchOrderCall = batchOrderCalls[0];
|
|
264
|
+
const batchOrderRequest = batchOrderCall[1];
|
|
265
|
+
const batchOrderPayload = JSON.parse(batchOrderRequest?.body as string);
|
|
266
|
+
|
|
267
|
+
// Verify all payload fields
|
|
268
|
+
expect(batchOrderPayload).toEqual({
|
|
269
|
+
offering_id: offering.id,
|
|
270
|
+
company_name: 'GIP-FUN',
|
|
271
|
+
identification_number: '789 242 229 01694',
|
|
272
|
+
address: '61 Bis Rue de la Glaciere',
|
|
273
|
+
postcode: '75013',
|
|
274
|
+
city: 'Paris',
|
|
275
|
+
country: 'FR',
|
|
276
|
+
administrative_lastname: 'Doe',
|
|
277
|
+
administrative_firstname: 'John',
|
|
278
|
+
administrative_profession: 'HR',
|
|
279
|
+
administrative_email: 'john.doe@fun-mooc.com',
|
|
280
|
+
administrative_telephone: '+338203920103',
|
|
281
|
+
signatory_lastname: 'Doe',
|
|
282
|
+
signatory_firstname: 'John',
|
|
283
|
+
signatory_profession: 'CEO',
|
|
284
|
+
signatory_email: 'john.doe@fun-mooc.com',
|
|
285
|
+
signatory_telephone: '+338203920103',
|
|
286
|
+
nb_seats: '13',
|
|
287
|
+
payment_method: PaymentMethod.PURCHASE_ORDER,
|
|
288
|
+
funding_entity: 'OPCO',
|
|
289
|
+
funding_amount: '5000',
|
|
290
|
+
organization_id: firstOrg.id,
|
|
291
|
+
});
|
|
232
292
|
}, 30000);
|
|
233
293
|
|
|
234
294
|
it('tests the entire process of subscribing with a voucher from a batch order', async () => {
|
|
@@ -491,6 +551,12 @@ describe('SaleTunnel', () => {
|
|
|
491
551
|
await user.type($nbParticipants, '13');
|
|
492
552
|
expect($nbParticipants).toHaveValue(13);
|
|
493
553
|
|
|
554
|
+
// Financing step
|
|
555
|
+
await user.click(screen.getByRole('button', { name: 'Next' }));
|
|
556
|
+
|
|
557
|
+
const $purchaseOrderRadio = await screen.findByLabelText('Purchase order');
|
|
558
|
+
await user.click($purchaseOrderRadio);
|
|
559
|
+
|
|
494
560
|
fetchMock.post('https://joanie.endpoint/api/v1.0/batch-orders/', {
|
|
495
561
|
status: 422,
|
|
496
562
|
body: {
|