From b3b69d711740e54ecc11e79d870ca2872029046c Mon Sep 17 00:00:00 2001 From: Adrien de Peretti Date: Sun, 7 Aug 2022 11:50:12 +0200 Subject: [PATCH] fix(integration-tests): Use asymmetric matcher for arrays in tests (#1992) --- .changeset/honest-garlics-help.md | 5 + .../api/__tests__/admin/discount.js | 68 +-- .../api/__tests__/admin/order.js | 322 ++++++++------ .../api/__tests__/admin/price-list.js | 130 +++--- .../api/__tests__/admin/product.js | 112 +++-- .../api/__tests__/admin/region.js | 44 +- .../api/__tests__/admin/return-reason.js | 44 +- .../api/__tests__/admin/sales-channels.js | 12 +- .../api/__tests__/returns/index.js | 85 ++-- integration-tests/api/__tests__/store/cart.js | 410 ++++++++++-------- .../api/__tests__/store/products.js | 263 +++++------ .../api/__tests__/store/return-reason.js | 35 +- .../api/__tests__/store/returns.js | 15 +- .../api/__tests__/taxes/orders.js | 52 ++- .../api/__tests__/taxes/shipping-options.js | 34 +- .../api/__tests__/totals/orders.js | 34 +- 16 files changed, 935 insertions(+), 730 deletions(-) create mode 100644 .changeset/honest-garlics-help.md diff --git a/.changeset/honest-garlics-help.md b/.changeset/honest-garlics-help.md new file mode 100644 index 0000000000..79df0a1707 --- /dev/null +++ b/.changeset/honest-garlics-help.md @@ -0,0 +1,5 @@ +--- + +--- + +Use asymetric matcher for arrays diff --git a/integration-tests/api/__tests__/admin/discount.js b/integration-tests/api/__tests__/admin/discount.js index 5a56698f7d..6135a7b687 100644 --- a/integration-tests/api/__tests__/admin/discount.js +++ b/integration-tests/api/__tests__/admin/discount.js @@ -331,12 +331,15 @@ describe("/admin/discounts", () => { }) expect(response.status).toEqual(200) expect(response.data.count).toEqual(1) - expect(response.data.discounts).toEqual([ - expect.objectContaining({ - id: "fixed-discount", - code: "fixed100", - }), - ]) + expect(response.data.discounts).toHaveLength(1) + expect(response.data.discounts).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: "fixed-discount", + code: "fixed100", + }), + ]) + ) }) it("fails when listing invalid discount types", async () => { @@ -394,12 +397,15 @@ describe("/admin/discounts", () => { }) expect(response.status).toEqual(200) expect(response.data.count).toEqual(1) - expect(response.data.discounts).toEqual([ - expect.objectContaining({ - id: "dynamic-discount", - code: "Dyn100", - }), - ]) + expect(response.data.discounts).toHaveLength(1) + expect(response.data.discounts).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: "dynamic-discount", + code: "Dyn100", + }) + ]) + ) }) it("lists disabled discounts ", async () => { @@ -416,12 +422,15 @@ describe("/admin/discounts", () => { }) expect(response.status).toEqual(200) expect(response.data.count).toEqual(1) - expect(response.data.discounts).toEqual([ - expect.objectContaining({ - id: "disabled-discount", - code: "Dis100", - }), - ]) + expect(response.data.discounts).toHaveLength(1) + expect(response.data.discounts).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: "disabled-discount", + code: "Dis100", + }), + ]) + ) }) }) @@ -614,16 +623,19 @@ describe("/admin/discounts", () => { }) expect(response.status).toEqual(200) - expect(response.data.discount.rule.conditions).toEqual([ - expect.objectContaining({ - type: "products", - operator: "in", - }), - expect.objectContaining({ - type: "product_types", - operator: "not_in", - }), - ]) + expect(response.data.discount.rule.conditions).toHaveLength(2) + expect(response.data.discount.rule.conditions).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + type: "products", + operator: "in", + }), + expect.objectContaining({ + type: "product_types", + operator: "not_in", + }), + ]) + ) const createdRule = response.data.discount.rule const condsToUpdate = createdRule.conditions[0] diff --git a/integration-tests/api/__tests__/admin/order.js b/integration-tests/api/__tests__/admin/order.js index a90b607546..3b11e54614 100644 --- a/integration-tests/api/__tests__/admin/order.js +++ b/integration-tests/api/__tests__/admin/order.js @@ -673,11 +673,14 @@ describe("/admin/orders", () => { ) expect(status).toEqual(200) - expect(updateData.order.claims[0].shipping_methods).toEqual([ - expect.objectContaining({ - id: "test-method", - }), - ]) + expect(updateData.order.claims[0].shipping_methods).toHaveLength(1) + expect(updateData.order.claims[0].shipping_methods).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: "test-method", + }), + ]) + ) }) it("updates claim items", async () => { @@ -827,19 +830,21 @@ describe("/admin/orders", () => { claim = updateData.order.claims[0] expect(claim.claim_items.length).toEqual(1) - expect(claim.claim_items).toEqual([ - expect.objectContaining({ - id: claim.claim_items[0].id, - reason: "production_failure", - note: "Something new", - images: [], - // tags: expect.arrayContaining([ - // expect.objectContaining({ value: "completely" }), - // expect.objectContaining({ value: "new" }), - // expect.objectContaining({ value: "tags" }), - // ]), - }), - ]) + expect(claim.claim_items).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: claim.claim_items[0].id, + reason: "production_failure", + note: "Something new", + images: [], + // tags: expect.arrayContaining([ + // expect.objectContaining({ value: "completely" }), + // expect.objectContaining({ value: "new" }), + // expect.objectContaining({ value: "tags" }), + // ]), + }), + ]) + ) }) it("fulfills a claim", async () => { @@ -892,27 +897,34 @@ describe("/admin/orders", () => { } ) expect(fulRes.status).toEqual(200) - expect(fulRes.data.order.claims).toEqual([ - expect.objectContaining({ - id: cid, - order_id: "test-order", - fulfillment_status: "fulfilled", - }), - ]) + expect(fulRes.data.order.claims).toHaveLength(1) + expect(fulRes.data.order.claims).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: cid, + order_id: "test-order", + fulfillment_status: "fulfilled", + }), + ]) + ) const fid = fulRes.data.order.claims[0].fulfillments[0].id const iid = fulRes.data.order.claims[0].additional_items[0].id - expect(fulRes.data.order.claims[0].fulfillments).toEqual([ - expect.objectContaining({ - items: [ - { - fulfillment_id: fid, - item_id: iid, - quantity: 1, - }, - ], - }), - ]) + + expect(fulRes.data.order.claims[0].fulfillments).toHaveLength(1) + expect(fulRes.data.order.claims[0].fulfillments).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + items: [ + { + fulfillment_id: fid, + item_id: iid, + quantity: 1, + }, + ], + }), + ]) + ) }) it("creates a claim on a claim additional item", async () => { @@ -1318,14 +1330,17 @@ describe("/admin/orders", () => { expect(response.status).toEqual(200) expect(response.data.order.returns[0].refund_amount).toEqual(7200) - expect(response.data.order.returns[0].items).toEqual([ - expect.objectContaining({ - item_id: "test-item", - quantity: 1, - reason_id: rrId, - note: "TOO SMALL", - }), - ]) + expect(response.data.order.returns[0].items).toHaveLength(1) + expect(response.data.order.returns[0].items).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + item_id: "test-item", + quantity: 1, + reason_id: rrId, + note: "TOO SMALL", + }), + ]) + ) }) it("increases inventory_quantity when return is received", async () => { @@ -1420,28 +1435,31 @@ describe("/admin/orders", () => { }) expect(response.status).toEqual(200) - expect(response.data.orders).toEqual([ - expect.objectContaining({ - id: "test-order", - }), + expect(response.data.orders).toHaveLength(6) + expect(response.data.orders).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: "test-order", + }), - expect.objectContaining({ - id: "test-order-w-c", - }), + expect.objectContaining({ + id: "test-order-w-c", + }), - expect.objectContaining({ - id: "test-order-w-s", - }), - expect.objectContaining({ - id: "test-order-w-f", - }), - expect.objectContaining({ - id: "test-order-w-r", - }), - expect.objectContaining({ - id: "discount-order", - }), - ]) + expect.objectContaining({ + id: "test-order-w-s", + }), + expect.objectContaining({ + id: "test-order-w-f", + }), + expect.objectContaining({ + id: "test-order-w-r", + }), + expect.objectContaining({ + id: "discount-order", + }), + ]) + ) }) it("lists all orders with a fulfillment status = fulfilled and payment status = captured", async () => { @@ -1459,14 +1477,17 @@ describe("/admin/orders", () => { .catch((err) => console.log(err)) expect(response.status).toEqual(200) - expect(response.data.orders).toEqual([ - expect.objectContaining({ - id: "test-order", - }), - expect.objectContaining({ - id: "discount-order", - }), - ]) + expect(response.data.orders).toHaveLength(2) + expect(response.data.orders).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: "test-order", + }), + expect.objectContaining({ + id: "discount-order", + }), + ]) + ) }) it("fails to lists all orders with an invalid status", async () => { @@ -1502,12 +1523,15 @@ describe("/admin/orders", () => { expect(response.status).toEqual(200) expect(response.data.count).toEqual(1) - expect(response.data.orders).toEqual([ - expect.objectContaining({ - id: "test-order", - email: "test@email.com", - }), - ]) + expect(response.data.orders).toHaveLength(1) + expect(response.data.orders).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: "test-order", + email: "test@email.com", + }), + ]) + ) }) it("list all orders with matching shipping_address first name", async () => { @@ -1546,27 +1570,30 @@ describe("/admin/orders", () => { ) expect(response.status).toEqual(200) - expect(response.data.orders).toEqual([ - expect.objectContaining({ - id: "test-order", - }), - expect.objectContaining({ - id: "test-order-w-c", - }), + expect(response.data.orders).toHaveLength(6) + expect(response.data.orders).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: "test-order", + }), + expect.objectContaining({ + id: "test-order-w-c", + }), - expect.objectContaining({ - id: "test-order-w-s", - }), - expect.objectContaining({ - id: "test-order-w-f", - }), - expect.objectContaining({ - id: "test-order-w-r", - }), - expect.objectContaining({ - id: "discount-order", - }), - ]) + expect.objectContaining({ + id: "test-order-w-s", + }), + expect.objectContaining({ + id: "test-order-w-f", + }), + expect.objectContaining({ + id: "test-order-w-r", + }), + expect.objectContaining({ + id: "discount-order", + }), + ]) + ) }) it("successfully lists no orders with greater than", async () => { @@ -1598,27 +1625,30 @@ describe("/admin/orders", () => { ) expect(response.status).toEqual(200) - expect(response.data.orders).toEqual([ - expect.objectContaining({ - id: "test-order", - }), - expect.objectContaining({ - id: "test-order-w-c", - }), + expect(response.data.orders).toHaveLength(6) + expect(response.data.orders).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: "test-order", + }), + expect.objectContaining({ + id: "test-order-w-c", + }), - expect.objectContaining({ - id: "test-order-w-s", - }), - expect.objectContaining({ - id: "test-order-w-f", - }), - expect.objectContaining({ - id: "test-order-w-r", - }), - expect.objectContaining({ - id: "discount-order", - }), - ]) + expect.objectContaining({ + id: "test-order-w-s", + }), + expect.objectContaining({ + id: "test-order-w-f", + }), + expect.objectContaining({ + id: "test-order-w-r", + }), + expect.objectContaining({ + id: "discount-order", + }), + ]) + ) }) it("successfully lists no orders with less than", async () => { @@ -1650,27 +1680,30 @@ describe("/admin/orders", () => { ) expect(response.status).toEqual(200) - expect(response.data.orders).toEqual([ - expect.objectContaining({ - id: "test-order", - }), - expect.objectContaining({ - id: "test-order-w-c", - }), + expect(response.data.orders).toHaveLength(6) + expect(response.data.orders).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: "test-order", + }), + expect.objectContaining({ + id: "test-order-w-c", + }), - expect.objectContaining({ - id: "test-order-w-s", - }), - expect.objectContaining({ - id: "test-order-w-f", - }), - expect.objectContaining({ - id: "test-order-w-r", - }), - expect.objectContaining({ - id: "discount-order", - }), - ]) + expect.objectContaining({ + id: "test-order-w-s", + }), + expect.objectContaining({ + id: "test-order-w-f", + }), + expect.objectContaining({ + id: "test-order-w-r", + }), + expect.objectContaining({ + id: "discount-order", + }), + ]) + ) }) it.each([ @@ -1864,11 +1897,14 @@ describe("/admin/orders", () => { const cart = response.data.cart const items = cart.items const [returnItem] = items.filter((i) => i.is_return) - expect(returnItem.adjustments).toEqual([ - expect.objectContaining({ - amount: -800, - }), - ]) + expect(returnItem.adjustments).toHaveLength(1) + expect(returnItem.adjustments).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + amount: -800, + }), + ]) + ) expect(cart.total).toBe(7200) }) }) diff --git a/integration-tests/api/__tests__/admin/price-list.js b/integration-tests/api/__tests__/admin/price-list.js index c5520d7336..47c2acb3aa 100644 --- a/integration-tests/api/__tests__/admin/price-list.js +++ b/integration-tests/api/__tests__/admin/price-list.js @@ -363,10 +363,13 @@ describe("/admin/price-lists", () => { expect(response.status).toEqual(200) expect(response.data.price_lists.length).toEqual(2) - expect(response.data.price_lists).toEqual([ - expect.objectContaining({ id: "test-list-cgroup-1" }), - expect.objectContaining({ id: "test-list-cgroup-2" }), - ]) + expect(response.data.price_lists).toHaveLength(2) + expect(response.data.price_lists).toEqual( + expect.arrayContaining([ + expect.objectContaining({ id: "test-list-cgroup-1" }), + expect.objectContaining({ id: "test-list-cgroup-2" }), + ]) + ) }) }) @@ -1177,52 +1180,55 @@ describe("/admin/price-lists", () => { expect(response.status).toEqual(200) expect(response.data.count).toEqual(2) - expect(response.data.products).toEqual([ - expect.objectContaining({ - id: "test-prod-1", - variants: [ - expect.objectContaining({ - id: "test-variant-1", - prices: [ - expect.objectContaining({ currency_code: "usd", amount: 100 }), - expect.objectContaining({ - currency_code: "usd", - amount: 150, - price_list_id: "test-list", - }), - ], - }), - expect.objectContaining({ - id: "test-variant-2", - prices: [ - expect.objectContaining({ currency_code: "usd", amount: 100 }), - ], - }), - ], - }), - expect.objectContaining({ - id: "test-prod-2", - variants: [ - expect.objectContaining({ - id: "test-variant-3", - prices: [ - expect.objectContaining({ currency_code: "usd", amount: 100 }), - ], - }), - expect.objectContaining({ - id: "test-variant-4", - prices: [ - expect.objectContaining({ currency_code: "usd", amount: 100 }), - expect.objectContaining({ - currency_code: "usd", - amount: 150, - price_list_id: "test-list", - }), - ], - }), - ], - }), - ]) + expect(response.data.products).toHaveLength(2) + expect(response.data.products).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: "test-prod-1", + variants: [ + expect.objectContaining({ + id: "test-variant-1", + prices: [ + expect.objectContaining({ currency_code: "usd", amount: 100 }), + expect.objectContaining({ + currency_code: "usd", + amount: 150, + price_list_id: "test-list", + }), + ], + }), + expect.objectContaining({ + id: "test-variant-2", + prices: [ + expect.objectContaining({ currency_code: "usd", amount: 100 }), + ], + }), + ], + }), + expect.objectContaining({ + id: "test-prod-2", + variants: [ + expect.objectContaining({ + id: "test-variant-3", + prices: [ + expect.objectContaining({ currency_code: "usd", amount: 100 }), + ], + }), + expect.objectContaining({ + id: "test-variant-4", + prices: [ + expect.objectContaining({ currency_code: "usd", amount: 100 }), + expect.objectContaining({ + currency_code: "usd", + amount: 150, + price_list_id: "test-list", + }), + ], + }), + ], + }), + ]) + ) }) it("lists only product 2", async () => { @@ -1240,9 +1246,12 @@ describe("/admin/price-lists", () => { expect(response.status).toEqual(200) expect(response.data.count).toEqual(1) - expect(response.data.products).toEqual([ - expect.objectContaining({ id: "test-prod-2" }), - ]) + expect(response.data.products).toHaveLength(1) + expect(response.data.products).toEqual( + expect.arrayContaining([ + expect.objectContaining({ id: "test-prod-2" }), + ]) + ) }) it("lists products using free text search", async () => { @@ -1260,12 +1269,15 @@ describe("/admin/price-lists", () => { expect(response.status).toEqual(200) expect(response.data.count).toEqual(1) - expect(response.data.products).toEqual([ - expect.objectContaining({ - id: "test-prod-1", - title: "MedusaHeadphones", - }), - ]) + expect(response.data.products).toHaveLength(1) + expect(response.data.products).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: "test-prod-1", + title: "MedusaHeadphones", + }), + ]) + ) }) }) diff --git a/integration-tests/api/__tests__/admin/product.js b/integration-tests/api/__tests__/admin/product.js index 51e11878dd..ecee43a939 100644 --- a/integration-tests/api/__tests__/admin/product.js +++ b/integration-tests/api/__tests__/admin/product.js @@ -165,16 +165,19 @@ describe("/admin/products", () => { }) expect(response.status).toEqual(200) - expect(response.data.products).toEqual([ - expect.objectContaining({ - id: "test-product_filtering_1", - status: "proposed", - }), - expect.objectContaining({ - id: "test-product_filtering_2", - status: "published", - }), - ]) + expect(response.data.products).toHaveLength(2) + expect(response.data.products).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: "test-product_filtering_1", + status: "proposed", + }), + expect.objectContaining({ + id: "test-product_filtering_2", + status: "published", + }), + ]) + ) for (const notExpect of notExpected) { expect(response.data.products).toEqual( @@ -204,16 +207,19 @@ describe("/admin/products", () => { }) expect(response.status).toEqual(200) - expect(response.data.products).toEqual([ - expect.objectContaining({ - id: "test-product_filtering_1", - status: "proposed", - }), - expect.objectContaining({ - id: "test-product_filtering_2", - status: "published", - }), - ]) + expect(response.data.products).toHaveLength(2) + expect(response.data.products).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: "test-product_filtering_1", + status: "proposed", + }), + expect.objectContaining({ + id: "test-product_filtering_2", + status: "published", + }), + ]) + ) for (const notExpect of notExpected) { expect(response.data.products).toEqual( @@ -237,11 +243,14 @@ describe("/admin/products", () => { expect(response.status).toEqual(200) expect(response.data.count).toEqual(1) - expect(response.data.products).toEqual([ - expect.objectContaining({ - id: "test-product_filtering_4", - }), - ]) + expect(response.data.products).toHaveLength(1) + expect(response.data.products).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: "test-product_filtering_4", + }), + ]) + ) }) it("returns a list of products with free text query and limit", async () => { @@ -322,11 +331,14 @@ describe("/admin/products", () => { }) expect(response.status).toEqual(200) - expect(response.data.products).toEqual([ - expect.objectContaining({ - id: "test-product_filtering_4", - }), - ]) + expect(response.data.products).toHaveLength(1) + expect(response.data.products).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: "test-product_filtering_4", + }), + ]) + ) }) it("returns a list of products in collection", async () => { @@ -348,16 +360,19 @@ describe("/admin/products", () => { }) expect(response.status).toEqual(200) - expect(response.data.products).toEqual([ - expect.objectContaining({ - id: "test-product_filtering_1", - collection_id: "test-collection1", - }), - expect.objectContaining({ - id: "test-product_filtering_3", - collection_id: "test-collection1", - }), - ]) + expect(response.data.products).toHaveLength(2) + expect(response.data.products).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: "test-product_filtering_1", + collection_id: "test-collection1", + }), + expect.objectContaining({ + id: "test-product_filtering_3", + collection_id: "test-collection1", + }), + ]) + ) for (const notExpect of notExpected) { expect(response.data.products).toEqual( @@ -431,13 +446,16 @@ describe("/admin/products", () => { }) expect(response.status).toEqual(200) - expect(response.data.products).toEqual([ - expect.objectContaining({ - id: "test-product_filtering_3", - collection_id: "test-collection1", - tags: [expect.objectContaining({ id: "tag4" })], - }), - ]) + expect(response.data.products).toHaveLength(1) + expect(response.data.products).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: "test-product_filtering_3", + collection_id: "test-collection1", + tags: [expect.objectContaining({ id: "tag4" })], + }), + ]) + ) for (const notExpect of notExpectedCollections) { expect(response.data.products).toEqual( diff --git a/integration-tests/api/__tests__/admin/region.js b/integration-tests/api/__tests__/admin/region.js index fca514edb2..ada14ac77f 100644 --- a/integration-tests/api/__tests__/admin/region.js +++ b/integration-tests/api/__tests__/admin/region.js @@ -162,17 +162,20 @@ describe("/admin/regions", () => { console.log(err) }) - expect(response.data.regions).toEqual([ - expect.objectContaining({ - id: "test-region-updated-1", - }), - expect.objectContaining({ - id: "test-region", - }), - expect.objectContaining({ - id: "test-region-updated", - }), - ]) + expect(response.data.regions).toHaveLength(3) + expect(response.data.regions).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: "test-region-updated-1", + }), + expect.objectContaining({ + id: "test-region", + }), + expect.objectContaining({ + id: "test-region-updated", + }), + ]) + ) expect(response.status).toEqual(200) }) @@ -189,14 +192,17 @@ describe("/admin/regions", () => { console.log(err) }) - expect(response.data.regions).toEqual([ - expect.objectContaining({ - id: "test-region", - }), - expect.objectContaining({ - id: "test-region-updated", - }), - ]) + expect(response.data.regions).toHaveLength(2) + expect(response.data.regions).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: "test-region", + }), + expect.objectContaining({ + id: "test-region-updated", + }), + ]) + ) expect(response.status).toEqual(200) }) }) diff --git a/integration-tests/api/__tests__/admin/return-reason.js b/integration-tests/api/__tests__/admin/return-reason.js index 4e180e23b6..53679272d5 100644 --- a/integration-tests/api/__tests__/admin/return-reason.js +++ b/integration-tests/api/__tests__/admin/return-reason.js @@ -355,20 +355,23 @@ describe("/admin/return-reasons", () => { expect(nested_response.status).toEqual(200) - expect(nested_response.data.return_reasons).toEqual([ - expect.objectContaining({ - label: "Wrong size", - description: "Use this if the size was too big", - value: "wrong_size", - return_reason_children: expect.arrayContaining([ - expect.objectContaining({ - label: "Too Big", - description: "Use this if the size was too big", - value: "too_big", - }), - ]), - }), - ]) + expect(nested_response.data.return_reasons).toHaveLength(1) + expect(nested_response.data.return_reasons).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + label: "Wrong size", + description: "Use this if the size was too big", + value: "wrong_size", + return_reason_children: expect.arrayContaining([ + expect.objectContaining({ + label: "Too Big", + description: "Use this if the size was too big", + value: "too_big", + }), + ]), + }), + ]) + ) }) it("list return reasons", async () => { @@ -401,11 +404,14 @@ describe("/admin/return-reasons", () => { }) expect(response.status).toEqual(200) - expect(response.data.return_reasons).toEqual([ - expect.objectContaining({ - value: "too_big", - }), - ]) + expect(response.data.return_reasons).toHaveLength(1) + expect(response.data.return_reasons).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + value: "too_big", + }), + ]) + ) }) }) diff --git a/integration-tests/api/__tests__/admin/sales-channels.js b/integration-tests/api/__tests__/admin/sales-channels.js index 7ffebc6ace..46384da339 100644 --- a/integration-tests/api/__tests__/admin/sales-channels.js +++ b/integration-tests/api/__tests__/admin/sales-channels.js @@ -832,11 +832,13 @@ describe("sales channels", () => { expect(response.status).toEqual(200) expect(response.data.orders.length).toEqual(1) - expect(response.data.orders).toEqual([ - expect.objectContaining({ - id: order.id, - }), - ]) + expect(response.data.orders).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: order.id, + }), + ]) + ) }) }) }) diff --git a/integration-tests/api/__tests__/returns/index.js b/integration-tests/api/__tests__/returns/index.js index 5e7cfa3b83..e2bf989195 100644 --- a/integration-tests/api/__tests__/returns/index.js +++ b/integration-tests/api/__tests__/returns/index.js @@ -72,13 +72,16 @@ describe("/admin/orders", () => { * 1000 * 1.125 = 1125 */ expect(response.data.order.returns[0].refund_amount).toEqual(1125) - expect(response.data.order.returns[0].items).toEqual([ - expect.objectContaining({ - item_id: "test-item", - quantity: 1, - note: "TOO SMALL", - }), - ]) + expect(response.data.order.returns[0].items).toHaveLength(1) + expect(response.data.order.returns[0].items).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + item_id: "test-item", + quantity: 1, + note: "TOO SMALL", + }), + ]) + ) }) test("creates a return w. new tax system", async () => { @@ -113,13 +116,16 @@ describe("/admin/orders", () => { */ expect(response.data.order.returns[0].refund_amount).toEqual(1200) - expect(response.data.order.returns[0].items).toEqual([ - expect.objectContaining({ - item_id: "test-item", - quantity: 1, - note: "TOO SMALL", - }), - ]) + expect(response.data.order.returns[0].items).toHaveLength(1) + expect(response.data.order.returns[0].items).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + item_id: "test-item", + quantity: 1, + note: "TOO SMALL", + }), + ]) + ) }) test("creates a return w. new tax system + shipping", async () => { @@ -163,20 +169,26 @@ describe("/admin/orders", () => { * shipping method will have 12.5 rate 1000 * 1.125 = 1125 */ expect(response.data.order.returns[0].refund_amount).toEqual(75) - expect(response.data.order.returns[0].shipping_method.tax_lines).toEqual([ - expect.objectContaining({ - rate: 12.5, - name: "default", - code: "default", - }), - ]) - expect(response.data.order.returns[0].items).toEqual([ - expect.objectContaining({ - item_id: "test-item", - quantity: 1, - note: "TOO SMALL", - }), - ]) + expect(response.data.order.returns[0].shipping_method.tax_lines).toHaveLength(1) + expect(response.data.order.returns[0].shipping_method.tax_lines).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + rate: 12.5, + name: "default", + code: "default", + }), + ]) + ) + expect(response.data.order.returns[0].items).toHaveLength(1) + expect(response.data.order.returns[0].items).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + item_id: "test-item", + quantity: 1, + note: "TOO SMALL", + }), + ]) + ) }) test("creates a return w. discount", async () => { @@ -214,13 +226,16 @@ describe("/admin/orders", () => { */ expect(response.data.order.returns[0].refund_amount).toEqual(1080) - expect(response.data.order.returns[0].items).toEqual([ - expect.objectContaining({ - item_id: "test-item", - quantity: 1, - note: "TOO SMALL", - }), - ]) + expect(response.data.order.returns[0].items).toHaveLength(1) + expect(response.data.order.returns[0].items).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + item_id: "test-item", + quantity: 1, + note: "TOO SMALL", + }), + ]) + ) }) test("receives a return with a claimed line item", async () => { diff --git a/integration-tests/api/__tests__/store/cart.js b/integration-tests/api/__tests__/store/cart.js index a8353e2c4e..87ea99a0bf 100644 --- a/integration-tests/api/__tests__/store/cart.js +++ b/integration-tests/api/__tests__/store/cart.js @@ -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", + }), + ], + }), + ]) + ) }) }) diff --git a/integration-tests/api/__tests__/store/products.js b/integration-tests/api/__tests__/store/products.js index c5a80658fe..7450fe0a03 100644 --- a/integration-tests/api/__tests__/store/products.js +++ b/integration-tests/api/__tests__/store/products.js @@ -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", + }), + ]) + ) }) }) diff --git a/integration-tests/api/__tests__/store/return-reason.js b/integration-tests/api/__tests__/store/return-reason.js index 36daf1e302..1d601b3405 100644 --- a/integration-tests/api/__tests__/store/return-reason.js +++ b/integration-tests/api/__tests__/store/return-reason.js @@ -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", + }), + ]) + ) }) }) }) diff --git a/integration-tests/api/__tests__/store/returns.js b/integration-tests/api/__tests__/store/returns.js index 8cee9e0826..95171283ea 100644 --- a/integration-tests/api/__tests__/store/returns.js +++ b/integration-tests/api/__tests__/store/returns.js @@ -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 () => { diff --git a/integration-tests/api/__tests__/taxes/orders.js b/integration-tests/api/__tests__/taxes/orders.js index 2299fb20ff..3c9f434f43 100644 --- a/integration-tests/api/__tests__/taxes/orders.js +++ b/integration-tests/api/__tests__/taxes/orders.js @@ -290,16 +290,22 @@ describe("Order Taxes", () => { response.data.data.items.flatMap((li) => li.tax_lines).length ).toEqual(2) - expect(response.data.data.items[0].tax_lines).toEqual([ - expect.objectContaining({ - rate: 25, - }), - ]) - expect(response.data.data.items[1].tax_lines).toEqual([ - expect.objectContaining({ - rate: 20, - }), - ]) + expect(response.data.data.items[0].tax_lines).toHaveLength(1) + expect(response.data.data.items[0].tax_lines).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + rate: 25, + }), + ]) + ) + expect(response.data.data.items[1].tax_lines).toHaveLength(1) + expect(response.data.data.items[1].tax_lines).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + rate: 20, + }), + ]) + ) }) test("completing cart creates tax lines", async () => { @@ -381,15 +387,21 @@ describe("Order Taxes", () => { expect(response.data.data.tax_total).toEqual(35) expect(response.data.data.total).toEqual(185) - expect(response.data.data.items[0].tax_lines).toEqual([ - expect.objectContaining({ - rate: 25, - }), - ]) - expect(response.data.data.items[1].tax_lines).toEqual([ - expect.objectContaining({ - rate: 20, - }), - ]) + expect(response.data.data.items[0].tax_lines).toHaveLength(1) + expect(response.data.data.items[0].tax_lines).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + rate: 25, + }), + ]) + ) + expect(response.data.data.items[1].tax_lines).toHaveLength(1) + expect(response.data.data.items[1].tax_lines).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + rate: 20, + }), + ]) + ) }) }) diff --git a/integration-tests/api/__tests__/taxes/shipping-options.js b/integration-tests/api/__tests__/taxes/shipping-options.js index 7f91216db8..85d36d5113 100644 --- a/integration-tests/api/__tests__/taxes/shipping-options.js +++ b/integration-tests/api/__tests__/taxes/shipping-options.js @@ -69,13 +69,16 @@ describe("Shipping Options Totals Calculations", () => { }, }) - expect(res.data.shipping_options).toEqual([ - expect.objectContaining({ - id: so.id, - amount: 100, - price_incl_tax: 110, - }), - ]) + expect(res.data.shipping_options).toHaveLength(1) + expect(res.data.shipping_options).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: so.id, + amount: 100, + price_incl_tax: 110, + }), + ]) + ) }) it("gets correct shipping prices", async () => { @@ -98,12 +101,15 @@ describe("Shipping Options Totals Calculations", () => { const res = await api.get(`/store/shipping-options?region_id=${region.id}`) - expect(res.data.shipping_options).toEqual([ - expect.objectContaining({ - id: so.id, - amount: 100, - price_incl_tax: 110, - }), - ]) + expect(res.data.shipping_options).toHaveLength(1) + expect(res.data.shipping_options).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + id: so.id, + amount: 100, + price_incl_tax: 110, + }), + ]) + ) }) }) diff --git a/integration-tests/api/__tests__/totals/orders.js b/integration-tests/api/__tests__/totals/orders.js index 2cb3d2f2fe..cd642a30b7 100644 --- a/integration-tests/api/__tests__/totals/orders.js +++ b/integration-tests/api/__tests__/totals/orders.js @@ -93,13 +93,16 @@ describe("Order Totals", () => { headers: { Authorization: `Bearer test_token` }, }) - expect(data.order.gift_card_transactions).toEqual([ - expect.objectContaining({ - amount: 160000, - is_taxable: false, - tax_rate: null, - }), - ]) + expect(data.order.gift_card_transactions).toHaveLength(1) + expect(data.order.gift_card_transactions).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + amount: 160000, + is_taxable: false, + tax_rate: null, + }), + ]) + ) expect(data.order.gift_card_total).toEqual(160000) expect(data.order.gift_card_tax_total).toEqual(0) expect(data.order.total).toEqual(59000) @@ -155,13 +158,16 @@ describe("Order Totals", () => { headers: { Authorization: `Bearer test_token` }, }) - expect(data.order.gift_card_transactions).toEqual([ - expect.objectContaining({ - amount: 160000, - is_taxable: true, - tax_rate: 25, - }), - ]) + expect(data.order.gift_card_transactions).toHaveLength(1) + expect(data.order.gift_card_transactions).toEqual( + expect.arrayContaining([ + expect.objectContaining({ + amount: 160000, + is_taxable: true, + tax_rate: 25, + }), + ]) + ) expect(data.order.gift_card_total).toEqual(160000) expect(data.order.gift_card_tax_total).toEqual(40000) expect(data.order.tax_total).toEqual(3800)