From add6d15fc417787d384f303abeb68ea71334c62c Mon Sep 17 00:00:00 2001 From: Gaetan Craig-Riou Date: Tue, 21 May 2024 15:13:28 +1000 Subject: [PATCH] Fix bulk order management system spec --- .../line_items_controller.js.coffee | 14 +++---- .../api/admin/line_item_serializer.rb | 2 +- .../admin/bulk_order_management_spec.rb | 37 ++++++++++--------- 3 files changed, 27 insertions(+), 26 deletions(-) diff --git a/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee b/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee index e19c5c7b8b..88479620fa 100644 --- a/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee +++ b/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee @@ -27,7 +27,7 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout, "order_bill_address_full_name_reversed", "order_bill_address_full_name_with_comma", "order_bill_address_full_name_with_comma_reversed", - "variant_product_supplier_name", + "variant_supplier_name", "order_email", "order_number", "product_name"].join("_or_") + "_cont" @@ -81,7 +81,7 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout, "q[order_shipment_state_not_eq]": "shipped", "q[order_completed_at_not_null]": "true", "q[order_distributor_id_eq]": $scope.distributorFilter, - "q[variant_product_supplier_id_eq]": $scope.supplierFilter, + "q[variant_supplier_id_eq]": $scope.supplierFilter, "q[order_order_cycle_id_eq]": $scope.orderCycleFilter, "q[order_completed_at_gteq]": if formattedStartDate then formattedStartDate else undefined, "q[order_completed_at_lt]": if formattedEndDate then formattedEndDate else undefined, @@ -105,7 +105,7 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout, Dereferencer.dereferenceAttr $scope.line_items, "supplier", Enterprises.byID $scope.loadOrders() RequestMonitor.load $q.all([$scope.orders.$promise]).then -> - Dereferencer.dereferenceAttr $scope.line_items, "order", Orders.byID + Dereferencer.dereferenceAttr $scope.line_items, "order", Orders.byID Dereferencer.dereferenceAttr $scope.orders, "distributor", Enterprises.byID Dereferencer.dereferenceAttr $scope.orders, "order_cycle", OrderCycles.byID $scope.bulk_order_form.$setPristine() @@ -133,7 +133,7 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout, return $http( method: 'GET' url: "/admin/orders/#{order.number}/fire?e=cancel&send_cancellation_email=#{sendEmailCancellation}&restock_items=#{restock_items}") - + $scope.deleteLineItem = (lineItem) -> if lineItem.order.item_count == 1 ofnCancelOrderAlert((confirm, sendEmailCancellation, restock_items) -> @@ -167,7 +167,7 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout, $scope.cancelOrder(order, sendEmailCancellation, restock_items).then(-> $scope.refreshData()) else Promise.all(LineItems.delete(item) for item in items).then(-> $scope.refreshData()) - , "js.admin.deleting_item_will_cancel_order") + , "js.admin.deleting_item_will_cancel_order") else ofnDeleteLineItemsAlert(() -> Promise.all(LineItems.delete(item) for item in lineItemsToDelete).then(-> $scope.refreshData()) @@ -199,7 +199,7 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout, $scope.refreshData() $scope.getLineItemScale = (lineItem) -> - if lineItem.units_product && lineItem.units_variant && (lineItem.units_product.variant_unit == "weight" || lineItem.units_product.variant_unit == "volume") + if lineItem.units_product && lineItem.units_variant && (lineItem.units_product.variant_unit == "weight" || lineItem.units_product.variant_unit == "volume") lineItem.units_product.variant_unit_scale else 1 @@ -252,7 +252,7 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout, scale = $scope.getScale(unitsProduct, unitsVariant) if scale $scope.getFormattedValueWithUnitName(value, unitsProduct, unitsVariant, scale) - else + else '' $scope.fulfilled = (sumOfUnitValues) -> diff --git a/app/serializers/api/admin/line_item_serializer.rb b/app/serializers/api/admin/line_item_serializer.rb index b264e32056..acdb9053ff 100644 --- a/app/serializers/api/admin/line_item_serializer.rb +++ b/app/serializers/api/admin/line_item_serializer.rb @@ -9,7 +9,7 @@ module Api has_one :order, serializer: Api::Admin::IdSerializer def supplier - { id: object.product.supplier_id } + { id: object.supplier.id } end def units_product diff --git a/spec/system/admin/bulk_order_management_spec.rb b/spec/system/admin/bulk_order_management_spec.rb index 4b7eddffa7..e8af8337c9 100644 --- a/spec/system/admin/bulk_order_management_spec.rb +++ b/spec/system/admin/bulk_order_management_spec.rb @@ -174,13 +174,13 @@ RSpec.describe ' let!(:s1) { create(:supplier_enterprise) } let!(:s2) { create(:supplier_enterprise) } let!(:li1) { - create(:line_item_with_shipment, order: o1, product: create(:product, supplier: s1)) + create(:line_item_with_shipment, order: o1, variant: create(:variant, supplier: s1)) } let!(:li2) { - create(:line_item_with_shipment, order: o2, product: create(:product, supplier: s2)) + create(:line_item_with_shipment, order: o2, variant: create(:variant, supplier: s2)) } let!(:li3) { - create(:line_item_with_shipment, order: o2, product: create(:product, supplier: s2)) + create(:line_item_with_shipment, order: o2, variant: create(:variant, supplier: s2)) } before :each do @@ -195,7 +195,7 @@ RSpec.describe ' end it "by supplier name" do - fill_in "quick_filter", with: li1.product.supplier.name + fill_in "quick_filter", with: li1.variant.supplier.name page.find('.filter-actions .button.icon-search').click expect_line_items_results [li1], [li2, li3] @@ -327,8 +327,8 @@ RSpec.describe ' it "displays a column for producer" do expect(page).to have_selector "th.producer", text: "Producer" - expect(page).to have_selector "td.producer", text: li1.product.supplier.name - expect(page).to have_selector "td.producer", text: li2.product.supplier.name + expect(page).to have_selector "td.producer", text: li1.supplier.name + expect(page).to have_selector "td.producer", text: li2.supplier.name end it "displays a column for variant description, which shows only product name " \ @@ -586,10 +586,10 @@ RSpec.describe ' order_cycle: create(:simple_order_cycle) ) } let!(:li1) { - create(:line_item_with_shipment, order: o1, product: create(:product, supplier: s1) ) + create(:line_item_with_shipment, order: o1, variant: create(:variant, supplier: s1) ) } let!(:li2) { - create(:line_item_with_shipment, order: o1, product: create(:product, supplier: s2) ) + create(:line_item_with_shipment, order: o1, variant: create(:variant, supplier: s2) ) } before :each do @@ -743,8 +743,9 @@ RSpec.describe ' let!(:d2) { create(:distributor_enterprise) } let!(:oc1) { create(:simple_order_cycle, suppliers: [s1], distributors: [d1] ) } let!(:oc2) { create(:simple_order_cycle, suppliers: [s2], distributors: [d2] ) } - let!(:p1) { create(:product, supplier: s1) } - let!(:p2) { create(:product, supplier: s2) } + let!(:v1) { create(:variant, supplier: s1) } + let!(:v2) { create(:variant, supplier: s2) } + let!(:o1) { create(:order_with_distributor, state: 'complete', shipment_state: 'ready', completed_at: Time.zone.now, distributor: d1, @@ -755,8 +756,8 @@ RSpec.describe ' completed_at: Time.zone.now, distributor: d2, order_cycle: oc2 ) } - let!(:li1) { create(:line_item_with_shipment, order: o1, product: p1 ) } - let!(:li2) { create(:line_item_with_shipment, order: o2, product: p2 ) } + let!(:li1) { create(:line_item_with_shipment, order: o1, variant: v1 ) } + let!(:li2) { create(:line_item_with_shipment, order: o2, variant: v2 ) } before :each do visit_bulk_order_management @@ -1262,18 +1263,18 @@ RSpec.describe ' completed_at: Time.zone.now, distributor: d2 ) } let!(:line_item_distributed) { - create(:line_item_with_shipment, order: o1, product: create(:product, supplier: s1) ) + create(:line_item_with_shipment, order: o1, variant: create(:variant, supplier: s1) ) } let!(:line_item_not_distributed) { - create(:line_item_with_shipment, order: o2, product: create(:product, supplier: s1) ) + create(:line_item_with_shipment, order: o2, variant: create(:variant, supplier: s1) ) } before(:each) do - @enterprise_user = create(:user) - @enterprise_user.enterprise_roles.build(enterprise: s1).save - @enterprise_user.enterprise_roles.build(enterprise: d1).save + enterprise_user = create(:user) + enterprise_user.enterprise_roles.build(enterprise: s1).save + enterprise_user.enterprise_roles.build(enterprise: d1).save - login_as @enterprise_user + login_as enterprise_user end it "displays a Bulk Management Tab under the Orders item" do