@labdigital/commercetools-mock 2.65.1 → 3.0.0-beta.0
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/README.md +31 -8
- package/dist/abstract-BKFcva6S.mjs +1044 -0
- package/dist/abstract-BKFcva6S.mjs.map +1 -0
- package/dist/config-BcNSzPZz.d.mts +1718 -0
- package/dist/index.d.mts +50 -1633
- package/dist/index.mjs +3771 -2654
- package/dist/index.mjs.map +1 -1
- package/dist/storage/sqlite.d.mts +59 -0
- package/dist/storage/sqlite.mjs +234 -0
- package/dist/storage/sqlite.mjs.map +1 -0
- package/package.json +26 -29
- package/src/ctMock.ts +125 -136
- package/src/helpers.ts +14 -6
- package/src/index.ts +5 -0
- package/src/lib/masking.ts +4 -5
- package/src/lib/product-review-statistics.test.ts +257 -294
- package/src/lib/review-statistics.ts +17 -4
- package/src/oauth/helpers.ts +7 -4
- package/src/oauth/server.test.ts +102 -62
- package/src/oauth/server.ts +215 -213
- package/src/oauth/store.ts +20 -6
- package/src/orderSearch.ts +3 -3
- package/src/product-projection-search.ts +38 -20
- package/src/product-search-availability.test.ts +31 -52
- package/src/product-search.ts +19 -10
- package/src/projectAPI.ts +6 -22
- package/src/repositories/abstract.ts +182 -48
- package/src/repositories/as-associate.test.ts +19 -19
- package/src/repositories/associate-role.ts +12 -23
- package/src/repositories/attribute-group.test.ts +23 -23
- package/src/repositories/attribute-group.ts +6 -4
- package/src/repositories/business-unit.test.ts +63 -57
- package/src/repositories/business-unit.ts +107 -55
- package/src/repositories/cart/actions.ts +96 -65
- package/src/repositories/cart/helpers.ts +15 -11
- package/src/repositories/cart/index.test.ts +136 -30
- package/src/repositories/cart/index.ts +76 -59
- package/src/repositories/cart-discount/actions.ts +12 -44
- package/src/repositories/cart-discount/index.ts +20 -8
- package/src/repositories/category/actions.ts +27 -27
- package/src/repositories/category/index.test.ts +13 -9
- package/src/repositories/category/index.ts +40 -23
- package/src/repositories/channel.test.ts +53 -51
- package/src/repositories/channel.ts +12 -22
- package/src/repositories/custom-object.ts +34 -25
- package/src/repositories/customer/actions.ts +47 -25
- package/src/repositories/customer/index.test.ts +11 -11
- package/src/repositories/customer/index.ts +65 -35
- package/src/repositories/customer-group.test.ts +44 -42
- package/src/repositories/customer-group.ts +12 -22
- package/src/repositories/discount-code/actions.ts +3 -19
- package/src/repositories/discount-code/index.ts +9 -4
- package/src/repositories/discount-group/index.ts +8 -3
- package/src/repositories/extension.test.ts +27 -27
- package/src/repositories/extension.ts +10 -5
- package/src/repositories/helpers.ts +126 -47
- package/src/repositories/inventory-entry/actions.ts +3 -24
- package/src/repositories/inventory-entry/index.ts +19 -11
- package/src/repositories/my-customer.ts +13 -12
- package/src/repositories/my-order.ts +5 -2
- package/src/repositories/order/actions.ts +89 -56
- package/src/repositories/order/index.test.ts +36 -31
- package/src/repositories/order/index.ts +83 -49
- package/src/repositories/order-edit.ts +8 -3
- package/src/repositories/payment/actions.ts +64 -44
- package/src/repositories/payment/helpers.ts +3 -3
- package/src/repositories/payment/index.ts +28 -12
- package/src/repositories/product/actions.ts +133 -98
- package/src/repositories/product/helpers.ts +29 -16
- package/src/repositories/product/index.ts +42 -25
- package/src/repositories/product-discount.ts +6 -4
- package/src/repositories/product-projection.ts +41 -21
- package/src/repositories/product-selection.ts +8 -15
- package/src/repositories/product-tailoring.ts +22 -3
- package/src/repositories/product-type.ts +45 -4
- package/src/repositories/project.ts +57 -13
- package/src/repositories/quote/actions.ts +5 -28
- package/src/repositories/quote/index.ts +29 -6
- package/src/repositories/quote-request/actions.ts +5 -28
- package/src/repositories/quote-request/index.test.ts +3 -3
- package/src/repositories/quote-request/index.ts +31 -11
- package/src/repositories/quote-staged/actions.ts +5 -28
- package/src/repositories/quote-staged/index.ts +22 -8
- package/src/repositories/recurrence-policy/index.ts +6 -4
- package/src/repositories/recurring-order/actions.ts +7 -32
- package/src/repositories/recurring-order/index.ts +8 -6
- package/src/repositories/review.test.ts +147 -142
- package/src/repositories/review.ts +31 -37
- package/src/repositories/shipping-method/actions.ts +11 -28
- package/src/repositories/shipping-method/index.ts +26 -15
- package/src/repositories/shopping-list/actions.ts +21 -31
- package/src/repositories/shopping-list/index.ts +44 -22
- package/src/repositories/standalone-price.ts +6 -4
- package/src/repositories/state.ts +15 -9
- package/src/repositories/store.ts +21 -32
- package/src/repositories/subscription.test.ts +22 -22
- package/src/repositories/subscription.ts +8 -3
- package/src/repositories/tax-category/index.ts +8 -3
- package/src/repositories/type/actions.ts +21 -3
- package/src/repositories/type/index.ts +5 -3
- package/src/repositories/zone.test.ts +112 -77
- package/src/repositories/zone.ts +5 -3
- package/src/schemas/generated/associate-role.ts +13 -0
- package/src/schemas/generated/attribute-group.ts +12 -0
- package/src/schemas/generated/business-unit.ts +38 -0
- package/src/schemas/generated/cart-discount.ts +33 -0
- package/src/schemas/generated/cart.ts +61 -0
- package/src/schemas/generated/category.ts +25 -0
- package/src/schemas/generated/channel.ts +21 -0
- package/src/schemas/generated/common.ts +1372 -0
- package/src/schemas/generated/custom-object.ts +11 -0
- package/src/schemas/generated/customer-group.ts +11 -0
- package/src/schemas/generated/customer.ts +47 -0
- package/src/schemas/generated/discount-code.ts +25 -0
- package/src/schemas/generated/discount-group.ts +13 -0
- package/src/schemas/generated/extension.ts +15 -0
- package/src/schemas/generated/index.ts +42 -0
- package/src/schemas/generated/inventory-entry.ts +20 -0
- package/src/schemas/generated/my-quote-request.ts +10 -0
- package/src/schemas/generated/order-edit.ts +18 -0
- package/src/schemas/generated/order-from-cart.ts +25 -0
- package/src/schemas/generated/payment.ts +30 -0
- package/src/schemas/generated/product-discount.ts +20 -0
- package/src/schemas/generated/product-selection.ts +18 -0
- package/src/schemas/generated/product-tailoring.ts +26 -0
- package/src/schemas/generated/product-type.ts +12 -0
- package/src/schemas/generated/product.ts +37 -0
- package/src/schemas/generated/quote-request.ts +19 -0
- package/src/schemas/generated/quote.ts +18 -0
- package/src/schemas/generated/recurrence-policy.ts +15 -0
- package/src/schemas/generated/recurring-order.ts +19 -0
- package/src/schemas/generated/review.ts +24 -0
- package/src/schemas/generated/shipping-method.ts +24 -0
- package/src/schemas/generated/shopping-list.ts +28 -0
- package/src/schemas/generated/staged-quote.ts +18 -0
- package/src/schemas/generated/standalone-price.ts +32 -0
- package/src/schemas/generated/state.ts +20 -0
- package/src/schemas/generated/store.ts +23 -0
- package/src/schemas/generated/subscription.ts +20 -0
- package/src/schemas/generated/tax-category.ts +12 -0
- package/src/schemas/generated/type.ts +17 -0
- package/src/schemas/generated/zone.ts +12 -0
- package/src/schemas/update-request.ts +3 -5
- package/src/server.ts +32 -4
- package/src/services/abstract.ts +207 -101
- package/src/services/as-associate-cart.test.ts +28 -36
- package/src/services/as-associate-cart.ts +15 -12
- package/src/services/as-associate-order.test.ts +33 -40
- package/src/services/as-associate-order.ts +15 -12
- package/src/services/as-associate-quote-request.ts +15 -12
- package/src/services/as-associate-shopping-list.test.ts +25 -35
- package/src/services/as-associate-shopping-list.ts +15 -12
- package/src/services/as-associate.test.ts +21 -15
- package/src/services/as-associate.ts +23 -22
- package/src/services/associate-roles.test.ts +16 -22
- package/src/services/associate-roles.ts +2 -2
- package/src/services/attribute-group.test.ts +40 -44
- package/src/services/attribute-group.ts +2 -2
- package/src/services/business-units.test.ts +227 -163
- package/src/services/business-units.ts +2 -2
- package/src/services/cart-discount.test.ts +253 -187
- package/src/services/cart-discount.ts +2 -2
- package/src/services/cart.test.ts +833 -832
- package/src/services/cart.ts +31 -12
- package/src/services/category.test.ts +208 -130
- package/src/services/category.ts +2 -2
- package/src/services/channel.test.ts +39 -44
- package/src/services/channel.ts +2 -2
- package/src/services/custom-object.test.ts +103 -79
- package/src/services/custom-object.ts +106 -38
- package/src/services/customer-group.test.ts +39 -44
- package/src/services/customer-group.ts +2 -2
- package/src/services/customer.test.ts +357 -292
- package/src/services/customer.ts +70 -23
- package/src/services/discount-code.test.ts +57 -68
- package/src/services/discount-code.ts +2 -2
- package/src/services/discount-group.test.ts +111 -134
- package/src/services/discount-group.ts +2 -2
- package/src/services/draft-validation.test.ts +255 -0
- package/src/services/extension.test.ts +39 -44
- package/src/services/extension.ts +2 -2
- package/src/services/inventory-entry.test.ts +106 -87
- package/src/services/inventory-entry.ts +2 -2
- package/src/services/my-business-unit.test.ts +82 -112
- package/src/services/my-business-unit.ts +25 -19
- package/src/services/my-cart.test.ts +46 -41
- package/src/services/my-cart.ts +32 -28
- package/src/services/my-customer.test.ts +153 -88
- package/src/services/my-customer.ts +130 -61
- package/src/services/my-order.ts +15 -12
- package/src/services/my-payment.test.ts +30 -24
- package/src/services/my-payment.ts +2 -2
- package/src/services/my-shopping-list.ts +2 -2
- package/src/services/order.test.ts +332 -276
- package/src/services/order.ts +45 -27
- package/src/services/payment.test.ts +31 -29
- package/src/services/payment.ts +2 -2
- package/src/services/product-discount.test.ts +39 -46
- package/src/services/product-discount.ts +2 -2
- package/src/services/product-projection.test.ts +176 -166
- package/src/services/product-projection.ts +31 -15
- package/src/services/product-selection.test.ts +17 -9
- package/src/services/product-selection.ts +2 -2
- package/src/services/product-type.test.ts +80 -21
- package/src/services/product-type.ts +2 -2
- package/src/services/product.test.ts +569 -534
- package/src/services/product.ts +14 -7
- package/src/services/project.test.ts +22 -12
- package/src/services/project.ts +28 -13
- package/src/services/quote-request.test.ts +36 -39
- package/src/services/quote-request.ts +2 -2
- package/src/services/quote-staged.ts +2 -2
- package/src/services/quote.ts +2 -2
- package/src/services/recurrence-policy.test.ts +114 -139
- package/src/services/recurrence-policy.ts +2 -2
- package/src/services/recurring-order.test.ts +149 -194
- package/src/services/recurring-order.ts +2 -2
- package/src/services/reviews.test.ts +127 -106
- package/src/services/reviews.ts +2 -2
- package/src/services/shipping-method.test.ts +96 -125
- package/src/services/shipping-method.ts +24 -12
- package/src/services/shopping-list.test.ts +183 -141
- package/src/services/shopping-list.ts +2 -2
- package/src/services/standalone-price.test.ts +60 -46
- package/src/services/standalone-price.ts +2 -2
- package/src/services/state.test.ts +20 -25
- package/src/services/state.ts +2 -2
- package/src/services/store.test.ts +26 -45
- package/src/services/store.ts +2 -2
- package/src/services/subscription.test.ts +39 -44
- package/src/services/subscription.ts +2 -2
- package/src/services/tax-category.test.ts +33 -36
- package/src/services/tax-category.ts +2 -2
- package/src/services/type.test.ts +45 -44
- package/src/services/type.ts +2 -2
- package/src/services/zone.test.ts +40 -44
- package/src/services/zone.ts +2 -2
- package/src/shipping.ts +41 -11
- package/src/storage/abstract.ts +248 -17
- package/src/storage/in-memory.ts +147 -290
- package/src/storage/sqlite.ts +429 -0
- package/src/storage/storage-map.ts +75 -0
- package/src/storage/storage.test-helpers.ts +97 -0
- package/src/storage/storage.test.ts +802 -0
- package/src/testing/associate-role.ts +28 -0
- package/src/testing/attribute-group.ts +27 -0
- package/src/testing/business-unit.ts +9 -8
- package/src/testing/cart-discount.ts +34 -0
- package/src/testing/cart.ts +20 -0
- package/src/testing/category.ts +25 -0
- package/src/testing/channel.ts +23 -0
- package/src/testing/custom-object.ts +27 -0
- package/src/testing/customer-group.ts +26 -0
- package/src/testing/customer.ts +36 -33
- package/src/testing/discount-code.ts +29 -0
- package/src/testing/discount-group.ts +27 -0
- package/src/testing/extension.ts +32 -0
- package/src/testing/index.ts +33 -0
- package/src/testing/inventory-entry.ts +26 -0
- package/src/testing/order.ts +27 -0
- package/src/testing/payment.ts +23 -0
- package/src/testing/product-discount.ts +33 -0
- package/src/testing/product-selection.ts +28 -0
- package/src/testing/product-type.ts +27 -0
- package/src/testing/product.ts +38 -0
- package/src/testing/quote-request.ts +29 -0
- package/src/testing/recurrence-policy.ts +33 -0
- package/src/testing/recurring-order.ts +32 -0
- package/src/testing/review.ts +24 -0
- package/src/testing/shipping-method.ts +31 -0
- package/src/testing/shopping-list.ts +25 -0
- package/src/testing/standalone-price.ts +31 -0
- package/src/testing/state.ts +21 -0
- package/src/testing/store.ts +26 -0
- package/src/testing/subscription.ts +38 -0
- package/src/testing/tax-category.ts +27 -0
- package/src/testing/type.ts +9 -6
- package/src/testing/zone.ts +22 -0
- package/src/validate.test.ts +122 -0
- package/src/validate.ts +78 -7
- package/src/.env +0 -0
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import type { StandalonePriceDraft } from "@commercetools/platform-sdk";
|
|
2
|
-
import supertest from "supertest";
|
|
3
1
|
import {
|
|
4
2
|
afterAll,
|
|
5
3
|
afterEach,
|
|
@@ -9,13 +7,16 @@ import {
|
|
|
9
7
|
expect,
|
|
10
8
|
test,
|
|
11
9
|
} from "vitest";
|
|
10
|
+
import { standalonePriceDraftFactory } from "#src/testing/index.ts";
|
|
12
11
|
import { CommercetoolsMock } from "../index.ts";
|
|
13
12
|
|
|
14
13
|
const ctMock = new CommercetoolsMock();
|
|
15
14
|
|
|
16
15
|
describe("Standalone price Query", () => {
|
|
16
|
+
const standalonePriceDraft = standalonePriceDraftFactory(ctMock);
|
|
17
|
+
|
|
17
18
|
beforeAll(async () => {
|
|
18
|
-
|
|
19
|
+
await standalonePriceDraft.create({
|
|
19
20
|
value: {
|
|
20
21
|
centAmount: 100,
|
|
21
22
|
currencyCode: "EUR",
|
|
@@ -37,25 +38,22 @@ describe("Standalone price Query", () => {
|
|
|
37
38
|
id: "baz",
|
|
38
39
|
},
|
|
39
40
|
},
|
|
40
|
-
};
|
|
41
|
-
const createResponse = await supertest(ctMock.app)
|
|
42
|
-
.post("/dummy/standalone-prices")
|
|
43
|
-
.send(draft);
|
|
44
|
-
expect(createResponse.status).toEqual(201);
|
|
41
|
+
});
|
|
45
42
|
});
|
|
46
43
|
|
|
47
44
|
afterAll(async () => {
|
|
48
|
-
ctMock.clear();
|
|
45
|
+
await ctMock.clear();
|
|
49
46
|
});
|
|
50
47
|
|
|
51
48
|
test("Get standalone price", async () => {
|
|
52
|
-
const response = await
|
|
53
|
-
"
|
|
54
|
-
|
|
49
|
+
const response = await ctMock.app.inject({
|
|
50
|
+
method: "GET",
|
|
51
|
+
url: "/dummy/standalone-prices?sku=foo",
|
|
52
|
+
});
|
|
55
53
|
|
|
56
|
-
expect(response.
|
|
54
|
+
expect(response.statusCode).toBe(200);
|
|
57
55
|
|
|
58
|
-
expect(response.
|
|
56
|
+
expect(response.json().results).toEqual([
|
|
59
57
|
{
|
|
60
58
|
active: true,
|
|
61
59
|
channel: {
|
|
@@ -64,6 +62,7 @@ describe("Standalone price Query", () => {
|
|
|
64
62
|
},
|
|
65
63
|
country: "DE",
|
|
66
64
|
createdAt: expect.anything(),
|
|
65
|
+
createdBy: expect.anything(),
|
|
67
66
|
discounted: {
|
|
68
67
|
discount: {
|
|
69
68
|
id: "baz",
|
|
@@ -78,6 +77,7 @@ describe("Standalone price Query", () => {
|
|
|
78
77
|
},
|
|
79
78
|
id: expect.anything(),
|
|
80
79
|
lastModifiedAt: expect.anything(),
|
|
80
|
+
lastModifiedBy: expect.anything(),
|
|
81
81
|
sku: "foo",
|
|
82
82
|
value: {
|
|
83
83
|
centAmount: 100,
|
|
@@ -92,9 +92,11 @@ describe("Standalone price Query", () => {
|
|
|
92
92
|
});
|
|
93
93
|
|
|
94
94
|
describe("Standalone price Actions", () => {
|
|
95
|
+
const standalonePriceDraft = standalonePriceDraftFactory(ctMock);
|
|
95
96
|
let id: string | undefined;
|
|
97
|
+
|
|
96
98
|
beforeEach(async () => {
|
|
97
|
-
const
|
|
99
|
+
const resource = await standalonePriceDraft.create({
|
|
98
100
|
value: {
|
|
99
101
|
centAmount: 100,
|
|
100
102
|
currencyCode: "EUR",
|
|
@@ -106,22 +108,19 @@ describe("Standalone price Actions", () => {
|
|
|
106
108
|
typeId: "channel",
|
|
107
109
|
id: "bar",
|
|
108
110
|
},
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
.post("/dummy/standalone-prices")
|
|
112
|
-
.send(draft);
|
|
113
|
-
expect(createResponse.status).toEqual(201);
|
|
114
|
-
id = createResponse.body.id;
|
|
111
|
+
});
|
|
112
|
+
id = resource.id;
|
|
115
113
|
});
|
|
116
114
|
|
|
117
115
|
afterEach(async () => {
|
|
118
|
-
ctMock.clear();
|
|
116
|
+
await ctMock.clear();
|
|
119
117
|
});
|
|
120
118
|
|
|
121
119
|
test("changeValue", async () => {
|
|
122
|
-
const response = await
|
|
123
|
-
|
|
124
|
-
|
|
120
|
+
const response = await ctMock.app.inject({
|
|
121
|
+
method: "POST",
|
|
122
|
+
url: `/dummy/standalone-prices/${id}`,
|
|
123
|
+
payload: {
|
|
125
124
|
version: 1,
|
|
126
125
|
actions: [
|
|
127
126
|
{
|
|
@@ -132,11 +131,12 @@ describe("Standalone price Actions", () => {
|
|
|
132
131
|
},
|
|
133
132
|
},
|
|
134
133
|
],
|
|
135
|
-
}
|
|
134
|
+
},
|
|
135
|
+
});
|
|
136
136
|
|
|
137
|
-
expect(response.
|
|
137
|
+
expect(response.statusCode).toBe(200);
|
|
138
138
|
|
|
139
|
-
expect(response.
|
|
139
|
+
expect(response.json()).toEqual({
|
|
140
140
|
active: true,
|
|
141
141
|
channel: {
|
|
142
142
|
id: "bar",
|
|
@@ -144,8 +144,10 @@ describe("Standalone price Actions", () => {
|
|
|
144
144
|
},
|
|
145
145
|
country: "DE",
|
|
146
146
|
createdAt: expect.anything(),
|
|
147
|
+
createdBy: expect.anything(),
|
|
147
148
|
id: id,
|
|
148
149
|
lastModifiedAt: expect.anything(),
|
|
150
|
+
lastModifiedBy: expect.anything(),
|
|
149
151
|
sku: "foo",
|
|
150
152
|
value: {
|
|
151
153
|
centAmount: 200,
|
|
@@ -158,9 +160,10 @@ describe("Standalone price Actions", () => {
|
|
|
158
160
|
});
|
|
159
161
|
|
|
160
162
|
test("setActive", async () => {
|
|
161
|
-
const response = await
|
|
162
|
-
|
|
163
|
-
|
|
163
|
+
const response = await ctMock.app.inject({
|
|
164
|
+
method: "POST",
|
|
165
|
+
url: `/dummy/standalone-prices/${id}`,
|
|
166
|
+
payload: {
|
|
164
167
|
version: 1,
|
|
165
168
|
actions: [
|
|
166
169
|
{
|
|
@@ -168,11 +171,12 @@ describe("Standalone price Actions", () => {
|
|
|
168
171
|
active: false,
|
|
169
172
|
},
|
|
170
173
|
],
|
|
171
|
-
}
|
|
174
|
+
},
|
|
175
|
+
});
|
|
172
176
|
|
|
173
|
-
expect(response.
|
|
177
|
+
expect(response.statusCode).toBe(200);
|
|
174
178
|
|
|
175
|
-
expect(response.
|
|
179
|
+
expect(response.json()).toEqual({
|
|
176
180
|
active: false,
|
|
177
181
|
channel: {
|
|
178
182
|
id: "bar",
|
|
@@ -180,8 +184,10 @@ describe("Standalone price Actions", () => {
|
|
|
180
184
|
},
|
|
181
185
|
country: "DE",
|
|
182
186
|
createdAt: expect.anything(),
|
|
187
|
+
createdBy: expect.anything(),
|
|
183
188
|
id: id,
|
|
184
189
|
lastModifiedAt: expect.anything(),
|
|
190
|
+
lastModifiedBy: expect.anything(),
|
|
185
191
|
sku: "foo",
|
|
186
192
|
value: {
|
|
187
193
|
centAmount: 100,
|
|
@@ -194,9 +200,10 @@ describe("Standalone price Actions", () => {
|
|
|
194
200
|
});
|
|
195
201
|
|
|
196
202
|
test("setDiscounted", async () => {
|
|
197
|
-
const response = await
|
|
198
|
-
|
|
199
|
-
|
|
203
|
+
const response = await ctMock.app.inject({
|
|
204
|
+
method: "POST",
|
|
205
|
+
url: `/dummy/standalone-prices/${id}`,
|
|
206
|
+
payload: {
|
|
200
207
|
version: 1,
|
|
201
208
|
actions: [
|
|
202
209
|
{
|
|
@@ -213,11 +220,12 @@ describe("Standalone price Actions", () => {
|
|
|
213
220
|
},
|
|
214
221
|
},
|
|
215
222
|
],
|
|
216
|
-
}
|
|
223
|
+
},
|
|
224
|
+
});
|
|
217
225
|
|
|
218
|
-
expect(response.
|
|
226
|
+
expect(response.statusCode).toBe(200);
|
|
219
227
|
|
|
220
|
-
expect(response.
|
|
228
|
+
expect(response.json()).toEqual({
|
|
221
229
|
active: true,
|
|
222
230
|
channel: {
|
|
223
231
|
id: "bar",
|
|
@@ -225,6 +233,7 @@ describe("Standalone price Actions", () => {
|
|
|
225
233
|
},
|
|
226
234
|
country: "DE",
|
|
227
235
|
createdAt: expect.anything(),
|
|
236
|
+
createdBy: expect.anything(),
|
|
228
237
|
discounted: {
|
|
229
238
|
discount: {
|
|
230
239
|
id: "baz",
|
|
@@ -239,6 +248,7 @@ describe("Standalone price Actions", () => {
|
|
|
239
248
|
},
|
|
240
249
|
id: id,
|
|
241
250
|
lastModifiedAt: expect.anything(),
|
|
251
|
+
lastModifiedBy: expect.anything(),
|
|
242
252
|
sku: "foo",
|
|
243
253
|
value: {
|
|
244
254
|
centAmount: 100,
|
|
@@ -249,9 +259,10 @@ describe("Standalone price Actions", () => {
|
|
|
249
259
|
version: 2,
|
|
250
260
|
});
|
|
251
261
|
|
|
252
|
-
const response2 = await
|
|
253
|
-
|
|
254
|
-
|
|
262
|
+
const response2 = await ctMock.app.inject({
|
|
263
|
+
method: "POST",
|
|
264
|
+
url: `/dummy/standalone-prices/${id}`,
|
|
265
|
+
payload: {
|
|
255
266
|
version: 2,
|
|
256
267
|
actions: [
|
|
257
268
|
{
|
|
@@ -259,11 +270,12 @@ describe("Standalone price Actions", () => {
|
|
|
259
270
|
discounted: null,
|
|
260
271
|
},
|
|
261
272
|
],
|
|
262
|
-
}
|
|
273
|
+
},
|
|
274
|
+
});
|
|
263
275
|
|
|
264
|
-
expect(response2.
|
|
276
|
+
expect(response2.statusCode).toBe(200);
|
|
265
277
|
|
|
266
|
-
expect(response2.
|
|
278
|
+
expect(response2.json()).toEqual({
|
|
267
279
|
active: true,
|
|
268
280
|
channel: {
|
|
269
281
|
id: "bar",
|
|
@@ -271,8 +283,10 @@ describe("Standalone price Actions", () => {
|
|
|
271
283
|
},
|
|
272
284
|
country: "DE",
|
|
273
285
|
createdAt: expect.anything(),
|
|
286
|
+
createdBy: expect.anything(),
|
|
274
287
|
id: id,
|
|
275
288
|
lastModifiedAt: expect.anything(),
|
|
289
|
+
lastModifiedBy: expect.anything(),
|
|
276
290
|
sku: "foo",
|
|
277
291
|
value: {
|
|
278
292
|
centAmount: 100,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { FastifyInstance } from "fastify";
|
|
2
2
|
import type { StandAlonePriceRepository } from "../repositories/standalone-price.ts";
|
|
3
3
|
import AbstractService from "./abstract.ts";
|
|
4
4
|
|
|
5
5
|
export class StandAlonePriceService extends AbstractService {
|
|
6
6
|
public repository: StandAlonePriceRepository;
|
|
7
7
|
|
|
8
|
-
constructor(parent:
|
|
8
|
+
constructor(parent: FastifyInstance, repository: StandAlonePriceRepository) {
|
|
9
9
|
super(parent);
|
|
10
10
|
this.repository = repository;
|
|
11
11
|
}
|
|
@@ -1,29 +1,31 @@
|
|
|
1
|
-
import type { StateDraft } from "@commercetools/platform-sdk";
|
|
2
|
-
import supertest from "supertest";
|
|
3
1
|
import { describe, expect, test } from "vitest";
|
|
2
|
+
import { stateDraftFactory } from "#src/testing/index.ts";
|
|
4
3
|
import { CommercetoolsMock } from "../index.ts";
|
|
5
4
|
|
|
6
5
|
const ctMock = new CommercetoolsMock();
|
|
7
6
|
|
|
8
7
|
describe("State", () => {
|
|
8
|
+
const stateDraft = stateDraftFactory(ctMock);
|
|
9
|
+
|
|
9
10
|
test("Create state", async () => {
|
|
10
|
-
const draft:
|
|
11
|
-
key: "foo",
|
|
12
|
-
type: "PaymentState",
|
|
13
|
-
};
|
|
14
|
-
const response = await supertest(ctMock.app)
|
|
15
|
-
.post("/dummy/states")
|
|
16
|
-
.send(draft);
|
|
11
|
+
const draft = stateDraft.build({ key: "foo", type: "PaymentState" });
|
|
17
12
|
|
|
18
|
-
|
|
13
|
+
const response = await ctMock.app.inject({
|
|
14
|
+
method: "POST",
|
|
15
|
+
url: "/dummy/states",
|
|
16
|
+
payload: draft,
|
|
17
|
+
});
|
|
19
18
|
|
|
20
|
-
expect(response.
|
|
19
|
+
expect(response.statusCode).toBe(201);
|
|
20
|
+
expect(response.json()).toEqual({
|
|
21
21
|
builtIn: false,
|
|
22
22
|
createdAt: expect.anything(),
|
|
23
|
+
createdBy: expect.anything(),
|
|
23
24
|
id: expect.anything(),
|
|
24
25
|
initial: false,
|
|
25
26
|
key: "foo",
|
|
26
27
|
lastModifiedAt: expect.anything(),
|
|
28
|
+
lastModifiedBy: expect.anything(),
|
|
27
29
|
transitions: [],
|
|
28
30
|
type: "PaymentState",
|
|
29
31
|
version: 1,
|
|
@@ -31,21 +33,14 @@ describe("State", () => {
|
|
|
31
33
|
});
|
|
32
34
|
|
|
33
35
|
test("Get state", async () => {
|
|
34
|
-
const
|
|
35
|
-
key: "foo",
|
|
36
|
-
type: "PaymentState",
|
|
37
|
-
};
|
|
38
|
-
const createResponse = await supertest(ctMock.app)
|
|
39
|
-
.post("/dummy/states")
|
|
40
|
-
.send(draft);
|
|
36
|
+
const state = await stateDraft.create({ key: "foo", type: "PaymentState" });
|
|
41
37
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
);
|
|
38
|
+
const response = await ctMock.app.inject({
|
|
39
|
+
method: "GET",
|
|
40
|
+
url: `/dummy/states/${state.id}`,
|
|
41
|
+
});
|
|
47
42
|
|
|
48
|
-
expect(response.
|
|
49
|
-
expect(response.
|
|
43
|
+
expect(response.statusCode).toBe(200);
|
|
44
|
+
expect(response.json()).toEqual(state);
|
|
50
45
|
});
|
|
51
46
|
});
|
package/src/services/state.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { FastifyInstance } from "fastify";
|
|
2
2
|
import type { StateRepository } from "../repositories/state.ts";
|
|
3
3
|
import AbstractService from "./abstract.ts";
|
|
4
4
|
|
|
5
5
|
export class StateService extends AbstractService {
|
|
6
6
|
public repository: StateRepository;
|
|
7
7
|
|
|
8
|
-
constructor(parent:
|
|
8
|
+
constructor(parent: FastifyInstance, repository: StateRepository) {
|
|
9
9
|
super(parent);
|
|
10
10
|
this.repository = repository;
|
|
11
11
|
}
|
|
@@ -1,62 +1,43 @@
|
|
|
1
|
-
import type { Store } from "@commercetools/platform-sdk";
|
|
2
|
-
import supertest from "supertest";
|
|
3
1
|
import { describe, expect, test } from "vitest";
|
|
2
|
+
import { storeDraftFactory } from "#src/testing/index.ts";
|
|
4
3
|
import { CommercetoolsMock } from "../index.ts";
|
|
5
4
|
|
|
6
5
|
const ctMock = new CommercetoolsMock();
|
|
7
6
|
|
|
8
7
|
describe("Store", () => {
|
|
8
|
+
const factory = storeDraftFactory(ctMock);
|
|
9
|
+
|
|
9
10
|
test("Get store by key", async () => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
key: "STOREKEY",
|
|
16
|
-
countries: [],
|
|
17
|
-
languages: [],
|
|
18
|
-
distributionChannels: [],
|
|
19
|
-
supplyChannels: [],
|
|
20
|
-
productSelections: [],
|
|
11
|
+
const store = await factory.create({ key: "STOREKEY" });
|
|
12
|
+
|
|
13
|
+
const response = await ctMock.app.inject({
|
|
14
|
+
method: "GET",
|
|
15
|
+
url: "/dummy/stores/key=STOREKEY",
|
|
21
16
|
});
|
|
22
17
|
|
|
23
|
-
|
|
24
|
-
|
|
18
|
+
expect(response.statusCode).toBe(200);
|
|
19
|
+
expect(response.json()).toEqual(
|
|
20
|
+
expect.objectContaining({
|
|
21
|
+
key: "STOREKEY",
|
|
22
|
+
id: store.id,
|
|
23
|
+
version: store.version,
|
|
24
|
+
countries: [],
|
|
25
|
+
languages: [],
|
|
26
|
+
distributionChannels: [],
|
|
27
|
+
supplyChannels: [],
|
|
28
|
+
productSelections: [],
|
|
29
|
+
}),
|
|
25
30
|
);
|
|
26
|
-
|
|
27
|
-
expect(response.status).toBe(200);
|
|
28
|
-
expect(response.body).toEqual({
|
|
29
|
-
version: 1,
|
|
30
|
-
createdAt: "",
|
|
31
|
-
id: "fake-store",
|
|
32
|
-
key: "STOREKEY",
|
|
33
|
-
lastModifiedAt: "",
|
|
34
|
-
countries: [],
|
|
35
|
-
languages: [],
|
|
36
|
-
distributionChannels: [],
|
|
37
|
-
supplyChannels: [],
|
|
38
|
-
productSelections: [],
|
|
39
|
-
} as Store);
|
|
40
31
|
});
|
|
41
32
|
|
|
42
33
|
test("Get store by 404 when not found by key", async () => {
|
|
43
|
-
|
|
44
|
-
id: "fake-store",
|
|
45
|
-
version: 1,
|
|
46
|
-
createdAt: "",
|
|
47
|
-
lastModifiedAt: "",
|
|
48
|
-
key: "STOREKEY",
|
|
49
|
-
countries: [],
|
|
50
|
-
languages: [],
|
|
51
|
-
distributionChannels: [],
|
|
52
|
-
supplyChannels: [],
|
|
53
|
-
productSelections: [],
|
|
54
|
-
});
|
|
34
|
+
await factory.create({ key: "STOREKEY" });
|
|
55
35
|
|
|
56
|
-
const response = await
|
|
57
|
-
"
|
|
58
|
-
|
|
36
|
+
const response = await ctMock.app.inject({
|
|
37
|
+
method: "GET",
|
|
38
|
+
url: "/dummy/stores/key=DOESNOTEXIST",
|
|
39
|
+
});
|
|
59
40
|
|
|
60
|
-
expect(response.
|
|
41
|
+
expect(response.statusCode).toBe(404);
|
|
61
42
|
});
|
|
62
43
|
});
|
package/src/services/store.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { FastifyInstance } from "fastify";
|
|
2
2
|
import type { StoreRepository } from "../repositories/store.ts";
|
|
3
3
|
import AbstractService from "./abstract.ts";
|
|
4
4
|
|
|
5
5
|
export class StoreService extends AbstractService {
|
|
6
6
|
public repository: StoreRepository;
|
|
7
7
|
|
|
8
|
-
constructor(parent:
|
|
8
|
+
constructor(parent: FastifyInstance, repository: StoreRepository) {
|
|
9
9
|
super(parent);
|
|
10
10
|
this.repository = repository;
|
|
11
11
|
}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import type { SubscriptionDraft } from "@commercetools/platform-sdk";
|
|
2
|
-
import supertest from "supertest";
|
|
3
1
|
import { describe, expect, test } from "vitest";
|
|
2
|
+
import { subscriptionDraftFactory } from "#src/testing/index.ts";
|
|
4
3
|
import { CommercetoolsMock } from "../index.ts";
|
|
5
4
|
|
|
6
5
|
const ctMock = new CommercetoolsMock();
|
|
7
6
|
|
|
8
7
|
describe("Subscription", () => {
|
|
8
|
+
const subscriptionDraft = subscriptionDraftFactory(ctMock);
|
|
9
|
+
|
|
9
10
|
test("Create subscription", async () => {
|
|
10
|
-
const draft
|
|
11
|
+
const draft = subscriptionDraft.build({
|
|
11
12
|
key: "order-notifications",
|
|
12
13
|
destination: {
|
|
13
14
|
type: "SQS",
|
|
@@ -22,16 +23,19 @@ describe("Subscription", () => {
|
|
|
22
23
|
types: ["OrderCreated", "OrderStateChanged"],
|
|
23
24
|
},
|
|
24
25
|
],
|
|
25
|
-
};
|
|
26
|
-
const response = await supertest(ctMock.app)
|
|
27
|
-
.post("/dummy/subscriptions")
|
|
28
|
-
.send(draft);
|
|
26
|
+
});
|
|
29
27
|
|
|
30
|
-
|
|
28
|
+
const response = await ctMock.app.inject({
|
|
29
|
+
method: "POST",
|
|
30
|
+
url: "/dummy/subscriptions",
|
|
31
|
+
payload: draft,
|
|
32
|
+
});
|
|
31
33
|
|
|
32
|
-
expect(response.
|
|
34
|
+
expect(response.statusCode).toBe(201);
|
|
35
|
+
expect(response.json()).toEqual({
|
|
33
36
|
changes: [],
|
|
34
37
|
createdAt: expect.anything(),
|
|
38
|
+
createdBy: expect.anything(),
|
|
35
39
|
destination: {
|
|
36
40
|
accessKey: "AKIAIOSFODNN7EXAMPLE",
|
|
37
41
|
accessSecret: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
|
|
@@ -46,6 +50,7 @@ describe("Subscription", () => {
|
|
|
46
50
|
id: expect.anything(),
|
|
47
51
|
key: "order-notifications",
|
|
48
52
|
lastModifiedAt: expect.anything(),
|
|
53
|
+
lastModifiedBy: expect.anything(),
|
|
49
54
|
messages: [
|
|
50
55
|
{
|
|
51
56
|
resourceTypeId: "order",
|
|
@@ -58,7 +63,7 @@ describe("Subscription", () => {
|
|
|
58
63
|
});
|
|
59
64
|
|
|
60
65
|
test("Get subscription", async () => {
|
|
61
|
-
const
|
|
66
|
+
const subscription = await subscriptionDraft.create({
|
|
62
67
|
key: "test-subscription",
|
|
63
68
|
destination: {
|
|
64
69
|
type: "SQS",
|
|
@@ -73,23 +78,19 @@ describe("Subscription", () => {
|
|
|
73
78
|
types: ["CustomerCreated"],
|
|
74
79
|
},
|
|
75
80
|
],
|
|
76
|
-
};
|
|
77
|
-
const createResponse = await supertest(ctMock.app)
|
|
78
|
-
.post("/dummy/subscriptions")
|
|
79
|
-
.send(draft);
|
|
80
|
-
|
|
81
|
-
expect(createResponse.status).toBe(201);
|
|
81
|
+
});
|
|
82
82
|
|
|
83
|
-
const response = await
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
const response = await ctMock.app.inject({
|
|
84
|
+
method: "GET",
|
|
85
|
+
url: `/dummy/subscriptions/${subscription.id}`,
|
|
86
|
+
});
|
|
86
87
|
|
|
87
|
-
expect(response.
|
|
88
|
-
expect(response.
|
|
88
|
+
expect(response.statusCode).toBe(200);
|
|
89
|
+
expect(response.json()).toEqual(subscription);
|
|
89
90
|
});
|
|
90
91
|
|
|
91
92
|
test("Get subscription by key", async () => {
|
|
92
|
-
const
|
|
93
|
+
const subscription = await subscriptionDraft.create({
|
|
93
94
|
key: "key-subscription",
|
|
94
95
|
destination: {
|
|
95
96
|
type: "SQS",
|
|
@@ -104,23 +105,19 @@ describe("Subscription", () => {
|
|
|
104
105
|
types: ["ProductPublished"],
|
|
105
106
|
},
|
|
106
107
|
],
|
|
107
|
-
};
|
|
108
|
-
const createResponse = await supertest(ctMock.app)
|
|
109
|
-
.post("/dummy/subscriptions")
|
|
110
|
-
.send(draft);
|
|
111
|
-
|
|
112
|
-
expect(createResponse.status).toBe(201);
|
|
108
|
+
});
|
|
113
109
|
|
|
114
|
-
const response = await
|
|
115
|
-
"
|
|
116
|
-
|
|
110
|
+
const response = await ctMock.app.inject({
|
|
111
|
+
method: "GET",
|
|
112
|
+
url: "/dummy/subscriptions/key=key-subscription",
|
|
113
|
+
});
|
|
117
114
|
|
|
118
|
-
expect(response.
|
|
119
|
-
expect(response.
|
|
115
|
+
expect(response.statusCode).toBe(200);
|
|
116
|
+
expect(response.json()).toEqual(subscription);
|
|
120
117
|
});
|
|
121
118
|
|
|
122
119
|
test("Query subscriptions", async () => {
|
|
123
|
-
const
|
|
120
|
+
const subscription = await subscriptionDraft.create({
|
|
124
121
|
key: "query-subscription",
|
|
125
122
|
destination: {
|
|
126
123
|
type: "SQS",
|
|
@@ -135,17 +132,15 @@ describe("Subscription", () => {
|
|
|
135
132
|
types: ["CartCreated"],
|
|
136
133
|
},
|
|
137
134
|
],
|
|
138
|
-
};
|
|
139
|
-
const createResponse = await supertest(ctMock.app)
|
|
140
|
-
.post("/dummy/subscriptions")
|
|
141
|
-
.send(draft);
|
|
142
|
-
|
|
143
|
-
expect(createResponse.status).toBe(201);
|
|
135
|
+
});
|
|
144
136
|
|
|
145
|
-
const response = await
|
|
137
|
+
const response = await ctMock.app.inject({
|
|
138
|
+
method: "GET",
|
|
139
|
+
url: "/dummy/subscriptions",
|
|
140
|
+
});
|
|
146
141
|
|
|
147
|
-
expect(response.
|
|
148
|
-
expect(response.
|
|
149
|
-
expect(response.
|
|
142
|
+
expect(response.statusCode).toBe(200);
|
|
143
|
+
expect(response.json().count).toBeGreaterThan(0);
|
|
144
|
+
expect(response.json().results).toContainEqual(subscription);
|
|
150
145
|
});
|
|
151
146
|
});
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { FastifyInstance } from "fastify";
|
|
2
2
|
import type { SubscriptionRepository } from "../repositories/subscription.ts";
|
|
3
3
|
import AbstractService from "./abstract.ts";
|
|
4
4
|
|
|
5
5
|
export class SubscriptionService extends AbstractService {
|
|
6
6
|
public repository: SubscriptionRepository;
|
|
7
7
|
|
|
8
|
-
constructor(parent:
|
|
8
|
+
constructor(parent: FastifyInstance, repository: SubscriptionRepository) {
|
|
9
9
|
super(parent);
|
|
10
10
|
this.repository = repository;
|
|
11
11
|
}
|