fix(integration-tests): Use asymmetric matcher for arrays in tests (#1992)

This commit is contained in:
Adrien de Peretti authored and GitHub committed 2022-08-07 11:50:12 +02:00
1 parent 73383cc466
commit b3b69d7117
16 files changed
+935 -730

No files matched your search

+227 -183
View File
@@ -155,17 +155,20 @@ describe("/store/carts", () => {
response.data.cart.items.sort((a, b) => a.quantity - b.quantity)
expect(response.status).toEqual(200)
expect(response.data.cart.items).toEqual([
expect.objectContaining({
variant_id: "test-variant_1",
quantity: 1,
}),
expect.objectContaining({
variant_id: "test-variant-sale",
quantity: 2,
unit_price: 800,
}),
])
expect(response.data.cart.items).toHaveLength(2)
expect(response.data.cart.items).toEqual(
expect.arrayContaining([
expect.objectContaining({
variant_id: "test-variant_1",
quantity: 1,
}),
expect.objectContaining({
variant_id: "test-variant-sale",
quantity: 2,
unit_price: 800,
}),
])
)
const getRes = await api.post(`/store/carts/${response.data.cart.id}`)
expect(getRes.status).toEqual(200)
@@ -235,15 +238,18 @@ describe("/store/carts", () => {
)
.catch((err) => console.log(err))
expect(response.data.cart.items).toEqual([
expect.objectContaining({
cart_id: "test-cart",
unit_price: 1000,
variant_id: "test-variant-quantity",
quantity: 1,
adjustments: [],
}),
])
expect(response.data.cart.items).toHaveLength(1)
expect(response.data.cart.items).toEqual(
expect.arrayContaining([
expect.objectContaining({
cart_id: "test-cart",
unit_price: 1000,
variant_id: "test-variant-quantity",
quantity: 1,
adjustments: [],
}),
])
)
})
it("adds line item to cart containing a total fixed discount", async () => {
@@ -260,21 +266,24 @@ describe("/store/carts", () => {
)
.catch((err) => console.log(err))
expect(response.data.cart.items).toEqual([
expect.objectContaining({
cart_id: "test-cart-w-total-fixed-discount",
unit_price: 1000,
variant_id: "test-variant-quantity",
quantity: 2,
adjustments: [
expect.objectContaining({
amount: 100,
discount_id: "total-fixed-100",
description: "discount",
}),
],
}),
])
expect(response.data.cart.items).toHaveLength(1)
expect(response.data.cart.items).toEqual(
expect.arrayContaining([
expect.objectContaining({
cart_id: "test-cart-w-total-fixed-discount",
unit_price: 1000,
variant_id: "test-variant-quantity",
quantity: 2,
adjustments: [
expect.objectContaining({
amount: 100,
discount_id: "total-fixed-100",
description: "discount",
}),
],
}),
])
)
})
it("adds line item to cart containing a total percentage discount", async () => {
@@ -291,21 +300,24 @@ describe("/store/carts", () => {
)
.catch((err) => console.log(err))
expect(response.data.cart.items).toEqual([
expect.objectContaining({
cart_id: "test-cart-w-total-percentage-discount",
unit_price: 1000,
variant_id: "test-variant-quantity",
quantity: 2,
adjustments: [
expect.objectContaining({
amount: 200,
discount_id: "10Percent",
description: "discount",
}),
],
}),
])
expect(response.data.cart.items).toHaveLength(1)
expect(response.data.cart.items).toEqual(
expect.arrayContaining([
expect.objectContaining({
cart_id: "test-cart-w-total-percentage-discount",
unit_price: 1000,
variant_id: "test-variant-quantity",
quantity: 2,
adjustments: [
expect.objectContaining({
amount: 200,
discount_id: "10Percent",
description: "discount",
}),
],
}),
])
)
})
it("adds line item to cart containing an item fixed discount", async () => {
@@ -322,21 +334,24 @@ describe("/store/carts", () => {
)
.catch((err) => console.log(err))
expect(response.data.cart.items).toEqual([
expect.objectContaining({
cart_id: "test-cart-w-item-fixed-discount",
unit_price: 1000,
variant_id: "test-variant-quantity",
quantity: 2,
adjustments: [
expect.objectContaining({
amount: 400,
discount_id: "item-fixed-200",
description: "discount",
}),
],
}),
])
expect(response.data.cart.items).toHaveLength(1)
expect(response.data.cart.items).toEqual(
expect.arrayContaining([
expect.objectContaining({
cart_id: "test-cart-w-item-fixed-discount",
unit_price: 1000,
variant_id: "test-variant-quantity",
quantity: 2,
adjustments: [
expect.objectContaining({
amount: 400,
discount_id: "item-fixed-200",
description: "discount",
}),
],
}),
])
)
})
it("adds line item to cart containing an item percentage discount", async () => {
@@ -353,21 +368,24 @@ describe("/store/carts", () => {
)
.catch((err) => console.log(err))
expect(response.data.cart.items).toEqual([
expect.objectContaining({
cart_id: "test-cart-w-item-percentage-discount",
unit_price: 1000,
variant_id: "test-variant-quantity",
quantity: 2,
adjustments: [
expect.objectContaining({
amount: 300,
discount_id: "item-percentage-15",
description: "discount",
}),
],
}),
])
expect(response.data.cart.items).toHaveLength(1)
expect(response.data.cart.items).toEqual(
expect.arrayContaining([
expect.objectContaining({
cart_id: "test-cart-w-item-percentage-discount",
unit_price: 1000,
variant_id: "test-variant-quantity",
quantity: 2,
adjustments: [
expect.objectContaining({
amount: 300,
discount_id: "item-percentage-15",
description: "discount",
}),
],
}),
])
)
})
it("adds line item to cart time limited sale", async () => {
@@ -384,14 +402,17 @@ describe("/store/carts", () => {
)
.catch((err) => console.log(err))
expect(response.data.cart.items).toEqual([
expect.objectContaining({
cart_id: "test-cart",
unit_price: 800,
variant_id: "test-variant-sale",
quantity: 1,
}),
])
expect(response.data.cart.items).toHaveLength(1)
expect(response.data.cart.items).toEqual(
expect.arrayContaining([
expect.objectContaining({
cart_id: "test-cart",
unit_price: 800,
variant_id: "test-variant-sale",
quantity: 1,
}),
])
)
})
it("adds line item to cart time customer pricing", async () => {
@@ -422,14 +443,17 @@ describe("/store/carts", () => {
)
.catch((err) => console.log(err))
expect(response.data.cart.items).toEqual([
expect.objectContaining({
cart_id: "test-cart",
unit_price: 700,
variant_id: "test-variant-sale-customer",
quantity: 1,
}),
])
expect(response.data.cart.items).toHaveLength(1)
expect(response.data.cart.items).toEqual(
expect.arrayContaining([
expect.objectContaining({
cart_id: "test-cart",
unit_price: 700,
variant_id: "test-variant-sale-customer",
quantity: 1,
}),
])
)
})
it("adds line item with quantity to cart with quantity discount", async () => {
@@ -446,14 +470,17 @@ describe("/store/carts", () => {
)
.catch((err) => console.log(err))
expect(response.data.cart.items).toEqual([
expect.objectContaining({
cart_id: "test-cart",
unit_price: 800,
variant_id: "test-variant-quantity",
quantity: 90,
}),
])
expect(response.data.cart.items).toHaveLength(1)
expect(response.data.cart.items).toEqual(
expect.arrayContaining([
expect.objectContaining({
cart_id: "test-cart",
unit_price: 800,
variant_id: "test-variant-quantity",
quantity: 90,
}),
])
)
})
it("adds line item with quantity to cart with quantity discount no ceiling", async () => {
@@ -470,14 +497,17 @@ describe("/store/carts", () => {
)
.catch((err) => console.log(err))
expect(response.data.cart.items).toEqual([
expect.objectContaining({
cart_id: "test-cart",
unit_price: 700,
variant_id: "test-variant-quantity",
quantity: 900,
}),
])
expect(response.data.cart.items).toHaveLength(1)
expect(response.data.cart.items).toEqual(
expect.arrayContaining([
expect.objectContaining({
cart_id: "test-cart",
unit_price: 700,
variant_id: "test-variant-quantity",
quantity: 900,
}),
])
)
})
describe("ensures correct line item adjustment generation", () => {
@@ -682,17 +712,19 @@ describe("/store/carts", () => {
.catch((err) => console.log(err))
expect(response.data.cart.items.length).toEqual(1)
expect(response.data.cart.items).toEqual([
expect.objectContaining({
adjustments: [
expect.objectContaining({
item_id: "line-item-2",
amount: 185,
discount_id: "medusa-185",
}),
],
}),
])
expect(response.data.cart.items).toEqual(
expect.arrayContaining([
expect.objectContaining({
adjustments: [
expect.objectContaining({
item_id: "line-item-2",
amount: 185,
discount_id: "medusa-185",
}),
],
}),
])
)
})
})
})
@@ -761,21 +793,24 @@ describe("/store/carts", () => {
)
.catch((err) => console.log(err))
expect(response.data.cart.items).toEqual([
expect.objectContaining({
cart_id: "test-cart-w-total-fixed-discount",
unit_price: 1000,
variant_id: "test-variant-quantity",
quantity: 3,
adjustments: [
expect.objectContaining({
amount: 100,
discount_id: "total-fixed-100",
description: "discount",
}),
],
}),
])
expect(response.data.cart.items).toHaveLength(1)
expect(response.data.cart.items).toEqual(
expect.arrayContaining([
expect.objectContaining({
cart_id: "test-cart-w-total-fixed-discount",
unit_price: 1000,
variant_id: "test-variant-quantity",
quantity: 3,
adjustments: [
expect.objectContaining({
amount: 100,
discount_id: "total-fixed-100",
description: "discount",
}),
],
}),
])
)
})
it("updates line item of a cart containing a total percentage discount", async () => {
@@ -801,21 +836,24 @@ describe("/store/carts", () => {
)
.catch((err) => console.log(err))
expect(response.data.cart.items).toEqual([
expect.objectContaining({
cart_id: "test-cart-w-total-percentage-discount",
unit_price: 1000,
variant_id: "test-variant-quantity",
quantity: 10,
adjustments: [
expect.objectContaining({
amount: 1000,
discount_id: "10Percent",
description: "discount",
}),
],
}),
])
expect(response.data.cart.items).toHaveLength(1)
expect(response.data.cart.items).toEqual(
expect.arrayContaining([
expect.objectContaining({
cart_id: "test-cart-w-total-percentage-discount",
unit_price: 1000,
variant_id: "test-variant-quantity",
quantity: 10,
adjustments: [
expect.objectContaining({
amount: 1000,
discount_id: "10Percent",
description: "discount",
}),
],
}),
])
)
})
it("updates line item of a cart containing an item fixed discount", async () => {
@@ -841,21 +879,24 @@ describe("/store/carts", () => {
)
.catch((err) => console.log(err))
expect(response.data.cart.items).toEqual([
expect.objectContaining({
cart_id: "test-cart-w-item-fixed-discount",
unit_price: 1000,
variant_id: "test-variant-quantity",
quantity: 4,
adjustments: [
expect.objectContaining({
amount: 800,
discount_id: "item-fixed-200",
description: "discount",
}),
],
}),
])
expect(response.data.cart.items).toHaveLength(1)
expect(response.data.cart.items).toEqual(
expect.arrayContaining([
expect.objectContaining({
cart_id: "test-cart-w-item-fixed-discount",
unit_price: 1000,
variant_id: "test-variant-quantity",
quantity: 4,
adjustments: [
expect.objectContaining({
amount: 800,
discount_id: "item-fixed-200",
description: "discount",
}),
],
}),
])
)
})
it("updates line item of a cart containing an item percentage discount", async () => {
@@ -881,21 +922,24 @@ describe("/store/carts", () => {
)
.catch((err) => console.log(err))
expect(response.data.cart.items).toEqual([
expect.objectContaining({
cart_id: "test-cart-w-item-percentage-discount",
unit_price: 1000,
variant_id: "test-variant-quantity",
quantity: 3,
adjustments: [
expect.objectContaining({
amount: 450,
discount_id: "item-percentage-15",
description: "discount",
}),
],
}),
])
expect(response.data.cart.items).toHaveLength(1)
expect(response.data.cart.items).toEqual(
expect.arrayContaining([
expect.objectContaining({
cart_id: "test-cart-w-item-percentage-discount",
unit_price: 1000,
variant_id: "test-variant-quantity",
quantity: 3,
adjustments: [
expect.objectContaining({
amount: 450,
discount_id: "item-percentage-15",
description: "discount",
}),
],
}),
])
)
})
})
+141 -122
View File
@@ -55,12 +55,15 @@ describe("/store/products", () => {
})
expect(response.status).toEqual(200)
expect(response.data.products).toEqual([
expect.objectContaining({
id: "test-product_filtering_2",
collection_id: "test-collection2",
}),
])
expect(response.data.products).toHaveLength(1)
expect(response.data.products).toEqual(
expect.arrayContaining([
expect.objectContaining({
id: "test-product_filtering_2",
collection_id: "test-collection2",
}),
])
)
for (const notExpect of notExpected) {
expect(response.data.products).toEqual(
@@ -81,12 +84,15 @@ describe("/store/products", () => {
})
expect(response.status).toEqual(200)
expect(response.data.products).toEqual([
expect.objectContaining({
id: "test-product_filtering_1",
collection_id: "test-collection1",
}),
])
expect(response.data.products).toHaveLength(1)
expect(response.data.products).toEqual(
expect.arrayContaining([
expect.objectContaining({
id: "test-product_filtering_1",
collection_id: "test-collection1",
}),
])
)
for (const notExpect of notExpected) {
expect(response.data.products).toEqual(
@@ -106,12 +112,14 @@ describe("/store/products", () => {
expect(response.status).toEqual(200)
expect(response.data.products.length).toEqual(1)
expect(response.data.products).toEqual([
expect.objectContaining({
id: "giftcard",
is_giftcard: true,
}),
])
expect(response.data.products).toEqual(
expect.arrayContaining([
expect.objectContaining({
id: "giftcard",
is_giftcard: true,
}),
])
)
})
it("returns non gift card products", async () => {
@@ -144,12 +152,15 @@ describe("/store/products", () => {
})
expect(response.status).toEqual(200)
expect(response.data.products).toEqual([
expect.objectContaining({
id: "test-product_filtering_1",
collection_id: "test-collection1",
}),
])
expect(response.data.products).toHaveLength(1)
expect(response.data.products).toEqual(
expect.arrayContaining([
expect.objectContaining({
id: "test-product_filtering_1",
collection_id: "test-collection1",
}),
])
)
for (const notExpect of notExpected) {
expect(response.data.products).toEqual(
@@ -172,12 +183,15 @@ describe("/store/products", () => {
})
expect(response.status).toEqual(200)
expect(response.data.products).toEqual([
expect.objectContaining({
id: "test-product_filtering_2",
handle: "test-product_filtering_2",
}),
])
expect(response.data.products).toHaveLength(1)
expect(response.data.products).toEqual(
expect.arrayContaining([
expect.objectContaining({
id: "test-product_filtering_2",
handle: "test-product_filtering_2",
}),
])
)
for (const notExpect of notExpected) {
expect(response.data.products).toEqual(
@@ -201,27 +215,29 @@ describe("/store/products", () => {
expect(response.status).toEqual(200)
expect(response.data.products.length).toEqual(5)
expect(response.data.products).toEqual([
expect.objectContaining({
id: "test-product1",
collection_id: "test-collection",
}),
expect.objectContaining({
id: "test-product",
collection_id: "test-collection",
}),
expect.objectContaining({
id: "test-product_filtering_2",
collection_id: "test-collection2",
}),
expect.objectContaining({
id: "test-product_filtering_1",
collection_id: "test-collection1",
}),
expect.objectContaining({
id: "giftcard",
}),
])
expect(response.data.products).toEqual(
expect.arrayContaining([
expect.objectContaining({
id: "test-product1",
collection_id: "test-collection",
}),
expect.objectContaining({
id: "test-product",
collection_id: "test-collection",
}),
expect.objectContaining({
id: "test-product_filtering_2",
collection_id: "test-collection2",
}),
expect.objectContaining({
id: "test-product_filtering_1",
collection_id: "test-collection1",
}),
expect.objectContaining({
id: "giftcard",
}),
])
)
for (const notExpect of notExpected) {
expect(response.data.products).toEqual(
@@ -256,77 +272,80 @@ describe("/store/products", () => {
console.log(err)
})
expect(response.data.products).toEqual([
expect.objectContaining({
id: "test-product1",
collection_id: "test-collection",
}),
expect.objectContaining({
id: "test-product",
collection_id: "test-collection",
variants: [
expect.objectContaining({
original_price: 100,
calculated_price: 80,
prices: [
expect.objectContaining({
id: "test-price",
currency_code: "usd",
amount: 100,
}),
expect.objectContaining({
id: "test-price-discount",
currency_code: "usd",
amount: 80,
}),
],
}),
expect.objectContaining({
original_price: 100,
calculated_price: 80,
prices: [
expect.objectContaining({
id: "test-price2",
currency_code: "usd",
amount: 100,
}),
expect.objectContaining({
id: "test-price2-discount",
currency_code: "usd",
amount: 80,
}),
],
}),
expect.objectContaining({
original_price: 100,
calculated_price: 80,
prices: [
expect.objectContaining({
id: "test-price1",
currency_code: "usd",
amount: 100,
}),
expect.objectContaining({
id: "test-price1-discount",
currency_code: "usd",
amount: 80,
}),
],
}),
],
}),
expect.objectContaining({
id: "test-product_filtering_2",
collection_id: "test-collection2",
}),
expect.objectContaining({
id: "test-product_filtering_1",
collection_id: "test-collection1",
}),
expect.objectContaining({
id: "giftcard",
}),
])
expect(response.data.products).toHaveLength(5)
expect(response.data.products).toEqual(
expect.arrayContaining([
expect.objectContaining({
id: "test-product1",
collection_id: "test-collection",
}),
expect.objectContaining({
id: "test-product",
collection_id: "test-collection",
variants: [
expect.objectContaining({
original_price: 100,
calculated_price: 80,
prices: [
expect.objectContaining({
id: "test-price",
currency_code: "usd",
amount: 100,
}),
expect.objectContaining({
id: "test-price-discount",
currency_code: "usd",
amount: 80,
}),
],
}),
expect.objectContaining({
original_price: 100,
calculated_price: 80,
prices: [
expect.objectContaining({
id: "test-price2",
currency_code: "usd",
amount: 100,
}),
expect.objectContaining({
id: "test-price2-discount",
currency_code: "usd",
amount: 80,
}),
],
}),
expect.objectContaining({
original_price: 100,
calculated_price: 80,
prices: [
expect.objectContaining({
id: "test-price1",
currency_code: "usd",
amount: 100,
}),
expect.objectContaining({
id: "test-price1-discount",
currency_code: "usd",
amount: 80,
}),
],
}),
],
}),
expect.objectContaining({
id: "test-product_filtering_2",
collection_id: "test-collection2",
}),
expect.objectContaining({
id: "test-product_filtering_1",
collection_id: "test-collection1",
}),
expect.objectContaining({
id: "giftcard",
}),
])
)
})
})
@@ -118,22 +118,25 @@ describe("/store/return-reasons", () => {
expect(response.status).toEqual(200)
expect(response.data.return_reasons).toEqual([
expect.objectContaining({
id: rrId,
value: "wrong_size",
return_reason_children: [
expect.objectContaining({
id: rrId_1,
value: "too_big",
}),
],
}),
expect.objectContaining({
id: rrId_2,
value: "too_big_1",
}),
])
expect(response.data.return_reasons).toHaveLength(2)
expect(response.data.return_reasons).toEqual(
expect.arrayContaining([
expect.objectContaining({
id: rrId,
value: "wrong_size",
return_reason_children: [
expect.objectContaining({
id: rrId_1,
value: "too_big",
}),
],
}),
expect.objectContaining({
id: rrId_2,
value: "too_big_1",
}),
])
)
})
})
})
@@ -241,12 +241,15 @@ describe("/store/carts", () => {
})
expect(response.status).toEqual(200)
expect(response.data.return.items).toEqual([
expect.objectContaining({
reason_id: rrId_child,
note: "TOO small",
}),
])
expect(response.data.return.items).toHaveLength(1)
expect(response.data.return.items).toEqual(
expect.arrayContaining([
expect.objectContaining({
reason_id: rrId_child,
note: "TOO small",
}),
])
)
})
it("failes to create a return with an invalid quantity (less than 1)", async () => {