1
0
Эх сурвалжийг харах

fix(core): Fix foreign key violation error when removing draft order line

Fixes #1855
Michael Bromley 3 жил өмнө
parent
commit
403ab2c03f

+ 17 - 1
packages/core/e2e/draft-order.e2e-spec.ts

@@ -113,7 +113,7 @@ describe('Draft Orders resolver', () => {
         draftOrder = addItemToDraftOrder;
     });
 
-    it('adjustDraftOrderLine', async () => {
+    it('adjustDraftOrderLine up', async () => {
         const { adjustDraftOrderLine } = await adminClient.query<
             Codegen.AdjustDraftOrderLineMutation,
             Codegen.AdjustDraftOrderLineMutationVariables
@@ -129,6 +129,22 @@ describe('Draft Orders resolver', () => {
         expect(adjustDraftOrderLine.lines[0].quantity).toBe(5);
     });
 
+    it('adjustDraftOrderLine down', async () => {
+        const { adjustDraftOrderLine } = await adminClient.query<
+            Codegen.AdjustDraftOrderLineMutation,
+            Codegen.AdjustDraftOrderLineMutationVariables
+        >(ADJUST_DRAFT_ORDER_LINE, {
+            orderId: draftOrder.id,
+            input: {
+                orderLineId: draftOrder.lines[0]!.id,
+                quantity: 2,
+            },
+        });
+
+        orderGuard.assertSuccess(adjustDraftOrderLine);
+        expect(adjustDraftOrderLine.lines[0].quantity).toBe(2);
+    });
+
     it('removeDraftOrderLine', async () => {
         const { removeDraftOrderLine } = await adminClient.query<
             Codegen.RemoveDraftOrderLineMutation,

+ 1 - 1
packages/core/src/service/helpers/order-modifier/order-modifier.ts

@@ -223,7 +223,7 @@ export class OrderModifier {
                 ]);
             }
         } else if (quantity < currentQuantity) {
-            if (order.active) {
+            if (order.active || order.state === 'Draft') {
                 // When an Order is still active, it is fine to just delete
                 // any OrderItems that are no longer needed
                 const keepItems = orderLine.items.slice(0, quantity);