hotfix: Claim return shipping (#244)

This commit is contained in:
Oliver Windall Juhl
2021-04-29 15:46:56 +02:00
committed by GitHub
parent 7cd9fd487e
commit bf4e8d8ff8
4 changed files with 103 additions and 37 deletions
+68 -1
View File
@@ -100,11 +100,12 @@ describe("/admin/orders", () => {
await manager.query(`DELETE FROM "fulfillment_item"`); await manager.query(`DELETE FROM "fulfillment_item"`);
await manager.query(`DELETE FROM "fulfillment"`); await manager.query(`DELETE FROM "fulfillment"`);
await manager.query(`DELETE FROM "swap"`); await manager.query(`DELETE FROM "swap"`);
await manager.query(`DELETE FROM "return"`);
await manager.query(`DELETE FROM "claim_image"`); await manager.query(`DELETE FROM "claim_image"`);
await manager.query(`DELETE FROM "claim_tag"`); await manager.query(`DELETE FROM "claim_tag"`);
await manager.query(`DELETE FROM "claim_item"`); await manager.query(`DELETE FROM "claim_item"`);
await manager.query(`DELETE FROM "shipping_method"`); await manager.query(`DELETE FROM "shipping_method"`);
await manager.query(`DELETE FROM "return_item"`);
await manager.query(`DELETE FROM "return"`);
await manager.query(`DELETE FROM "line_item"`); await manager.query(`DELETE FROM "line_item"`);
await manager.query(`DELETE FROM "claim_order"`); await manager.query(`DELETE FROM "claim_order"`);
await manager.query(`DELETE FROM "money_amount"`); await manager.query(`DELETE FROM "money_amount"`);
@@ -178,6 +179,72 @@ describe("/admin/orders", () => {
); );
}); });
it("creates a claim with return shipping", async () => {
const api = useApi();
const response = await api.post(
"/admin/orders/test-order/claims",
{
type: "replace",
claim_items: [
{
item_id: "test-item",
quantity: 1,
reason: "production_failure",
tags: ["fluff"],
images: ["https://test.image.com"],
},
],
additional_items: [
{
variant_id: "test-variant",
quantity: 1,
},
],
return_shipping: { option_id: "test-return-option", price: 0 },
},
{
headers: {
authorization: "Bearer test_token",
},
}
);
expect(response.status).toEqual(200);
expect(response.data.order.claims[0].claim_items).toEqual(
expect.arrayContaining([
expect.objectContaining({
item_id: "test-item",
quantity: 1,
reason: "production_failure",
images: expect.arrayContaining([
expect.objectContaining({
url: "https://test.image.com",
}),
]),
}),
])
);
expect(response.data.order.claims[0].additional_items).toEqual(
expect.arrayContaining([
expect.objectContaining({
variant_id: "test-variant",
quantity: 1,
}),
])
);
expect(
response.data.order.claims[0].return_order.shipping_method
).toEqual(
expect.objectContaining({
price: 0,
shipping_option_id: "test-return-option",
})
);
});
it("updates a claim", async () => { it("updates a claim", async () => {
const api = useApi(); const api = useApi();
@@ -94,6 +94,18 @@ module.exports = async (connection, data = {}) => {
data: {}, data: {},
}); });
await manager.insert(ShippingOption, {
id: "test-return-option",
name: "Test ret",
profile_id: defaultProfile.id,
region_id: "test-region",
provider_id: "test-ful",
data: {},
price_type: "flat_rate",
amount: 1000,
is_return: true,
});
const order = manager.create(Order, { const order = manager.create(Order, {
id: "test-order", id: "test-order",
customer_id: "test-customer", customer_id: "test-customer",
+13 -24
View File
@@ -100,31 +100,20 @@ describe("ClaimService", () => {
expect(withTransactionMock).toHaveBeenCalledWith("return") expect(withTransactionMock).toHaveBeenCalledWith("return")
expect(returnService.create).toHaveBeenCalledTimes(1) expect(returnService.create).toHaveBeenCalledTimes(1)
expect(returnService.create).toHaveBeenCalledWith( expect(returnService.create).toHaveBeenCalledWith({
{ order_id: "1234",
claim_order_id: "claim_134", claim_order_id: "claim_134",
shipping_method: { shipping_method: {
option_id: "opt_13", option_id: "opt_13",
price: 0, price: 0,
},
items: [
{
item_id: "itm_1",
quantity: 1,
},
],
}, },
{ items: [
id: "1234", {
region_id: "order_region", item_id: "itm_1",
items: [ quantity: 1,
{ },
id: "itm_1", ],
unit_price: 8000, })
},
],
}
)
expect(withTransactionMock).toHaveBeenCalledWith("lineItem") expect(withTransactionMock).toHaveBeenCalledWith("lineItem")
expect(lineItemService.generate).toHaveBeenCalledTimes(1) expect(lineItemService.generate).toHaveBeenCalledTimes(1)
+10 -12
View File
@@ -252,18 +252,16 @@ class ClaimService extends BaseService {
} }
if (return_shipping) { if (return_shipping) {
await this.returnService_.withTransaction(manager).create( await this.returnService_.withTransaction(manager).create({
{ order_id: order.id,
claim_order_id: result.id, claim_order_id: result.id,
items: claim_items.map(ci => ({ items: claim_items.map(ci => ({
item_id: ci.item_id, item_id: ci.item_id,
quantity: ci.quantity, quantity: ci.quantity,
metadata: ci.metadata, metadata: ci.metadata,
})), })),
shipping_method: return_shipping, shipping_method: return_shipping,
}, })
order
)
} }
await this.eventBus_ await this.eventBus_