fix(medusa): Add tax inclusive flag to return lines from line item (#2909)

This commit is contained in:
Oliver Windall Juhl
2022-12-29 19:32:04 +01:00
committed by GitHub
parent 90d774f563
commit eda26f6e81
4 changed files with 135 additions and 30 deletions

View File

@@ -11,10 +11,17 @@ const {
simpleRegionFactory,
simpleShippingOptionFactory,
simpleOrderFactory,
simpleProductFactory,
} = require("../../../factories")
jest.setTimeout(30000)
const adminReqConfig = {
headers: {
Authorization: "Bearer test_token",
},
}
describe("[MEDUSA_FF_TAX_INCLUSIVE_PRICING] /admin/orders", () => {
let medusaProcess
let dbConnection
@@ -83,11 +90,7 @@ describe("[MEDUSA_FF_TAX_INCLUSIVE_PRICING] /admin/orders", () => {
option_id: includesTaxShippingOption.id,
price: 10,
},
{
headers: {
Authorization: "Bearer test_token",
},
}
adminReqConfig
)
expect(orderWithShippingMethodRes.status).toEqual(200)
@@ -101,4 +104,106 @@ describe("[MEDUSA_FF_TAX_INCLUSIVE_PRICING] /admin/orders", () => {
)
})
})
describe("POST /admin/orders/:id/swaps", () => {
const prodId = "prod_1234"
const variant1 = "variant_1234"
const variant2 = "variant_5678"
const regionId = "test-region"
const lineItemId = "litem_1234"
const orderId = "order_1234"
beforeEach(async () => {
await adminSeeder(dbConnection)
await simpleRegionFactory(dbConnection, {
id: regionId,
includes_tax: true,
currency_code: "usd",
tax_rate: 10,
})
await simpleProductFactory(dbConnection, {
id: prodId,
variants: [
{
id: variant1,
prices: [{ currency: "usd", amount: 1000, region_id: regionId }],
},
{
id: variant2,
prices: [{ currency: "usd", amount: 1000, region_id: regionId }],
},
],
})
await simpleOrderFactory(dbConnection, {
id: orderId,
email: "test@testson.com",
fulfillment_status: "fulfilled",
payment_status: "captured",
region: regionId,
currency_code: "usd",
line_items: [
{
id: lineItemId,
variant_id: variant1,
tax_lines: [
{
rate: 10,
name: "VAT",
code: "vat",
},
],
unit_price: 1000,
includes_tax: true,
quantity: 1,
fulfilled_quantity: 1,
shipped_quantity: 1,
},
],
})
})
afterEach(async () => {
const db = useDb()
await db.teardown()
})
it("creates a swap with tax inclusive return lines", async () => {
const api = useApi()
const response = await api.post(
`/admin/orders/${orderId}/swaps`,
{
return_items: [
{
item_id: lineItemId,
quantity: 1,
},
],
additional_items: [{ variant_id: variant2, quantity: 1 }],
},
adminReqConfig
)
let swap = response.data.order.swaps[0]
const order = response.data.order
swap = await api.get(`/admin/swaps/${swap.id}`, adminReqConfig)
swap = swap.data.swap
let swapCart = await api.get(`/store/carts/${swap.cart_id}`)
swapCart = swapCart.data.cart
const returnedItemOnSwap = swapCart.items.find((itm) => itm.is_return)
const returnedItemOnOrder = order.items[0]
expect(returnedItemOnSwap.total).toEqual(-1000)
expect(returnedItemOnOrder.total).toEqual(1000)
expect(response.status).toEqual(200)
})
})
})