Merge pull request #10606 from thejwuscript/10116-improve-bom-sorting

Sort orders by last name
This commit is contained in:
Konrad
2023-04-12 16:36:45 +02:00
committed by GitHub
6 changed files with 333 additions and 296 deletions

View File

@@ -11,5 +11,6 @@ angular.module("admin.indexUtils").factory 'SortOptions', ->
sortingExpr
toggle: (predicate) ->
@reverse = (@predicate == predicate) && !@reverse
# predicate is a string or an array of strings
@reverse = (JSON.stringify(@predicate) == JSON.stringify(predicate)) && !@reverse
@predicate = predicate

View File

@@ -4,4 +4,8 @@ module AddressDisplay
def full_name_reverse
[lastname, firstname].reject(&:blank?).join(" ")
end
def full_name_for_sorting
[last_name, first_name].reject(&:blank?).join(", ")
end
end

View File

@@ -3,8 +3,10 @@
module Api
module Admin
class OrderSerializer < ActiveModel::Serializer
attributes :id, :number, :user_id, :full_name, :email, :phone, :completed_at,
:completed_at_utc_iso8601, :display_total,
include AddressDisplay
attributes :id, :number, :user_id, :full_name, :full_name_for_sorting, :email, :phone,
:completed_at, :completed_at_utc_iso8601, :display_total,
:edit_path, :state, :payment_state, :shipment_state,
:payments_path, :ready_to_ship, :ready_to_capture, :created_at,
:distributor_name, :special_instructions, :display_outstanding_balance,
@@ -17,6 +19,14 @@ module Api
object.billing_address.nil? ? "" : ( object.billing_address.full_name || "" )
end
def first_name
object.billing_address&.first_name || ""
end
def last_name
object.billing_address&.last_name || ""
end
def distributor_name
object.distributor&.name
end

View File

@@ -133,7 +133,7 @@
%a{ :href => '', 'ng-click' => "sorting.toggle('order.number')" }
= t("admin.orders.bulk_management.order_no")
%th.full_name{ 'ng-show' => 'columns.full_name.visible' }
%a{ :href => '', 'ng-click' => "sorting.toggle('order.full_name')" }
%a{ :href => '', 'ng-click' => "sorting.toggle('order.full_name_for_sorting')" }
= t("admin.name")
%th.email{ 'ng-show' => 'columns.email.visible' }
%a{ :href => '', 'ng-click' => "sorting.toggle('order.email')" }
@@ -170,7 +170,7 @@
%td.bulk
%input{ :type => "checkbox", :name => 'bulk', 'ng-model' => 'line_item.checked', 'ignore-dirty' => true }
%td.order_no{ 'ng-show' => 'columns.order_no.visible' } {{ line_item.order.number }}
%td.full_name{ 'ng-show' => 'columns.full_name.visible' } {{ line_item.order.full_name }}
%td.full_name{ 'ng-show' => 'columns.full_name.visible' } {{ line_item.order.full_name_for_sorting }}
%td.email{ 'ng-show' => 'columns.email.visible' } {{ line_item.order.email }}
%td.phone{ 'ng-show' => 'columns.phone.visible' } {{ line_item.order.phone }}
%td.date{ 'ng-show' => 'columns.order_date.visible' } {{ line_item.order.completed_at }}

View File

@@ -228,7 +228,7 @@ describe '
it "displays a column for user's full name" do
expect(page).to have_selector "th.full_name", text: "NAME"
expect(page).to have_selector "td.full_name", text: o1.bill_address.full_name
expect(page).to have_selector "td.full_name", text: "#{o1.bill_address.last_name}, #{o1.bill_address.first_name}"
expect(page).to have_selector "td.full_name", text: ""
end
@@ -266,46 +266,69 @@ describe '
end
describe "sorting of line items" do
let!(:o1) {
create(:order_with_distributor, state: 'complete', shipment_state: 'ready',
completed_at: Time.zone.now)
}
let!(:o2) {
create(:order_with_distributor, state: 'complete', shipment_state: 'ready',
completed_at: Time.zone.now)
}
let!(:o1) do
create(
:order_with_distributor,
bill_address: create(:address, first_name: 'Bob', last_name: 'Taylor'),
state: 'complete',
shipment_state: 'ready',
completed_at: Time.zone.now
)
end
let!(:o2) do
create(
:order_with_distributor,
bill_address: create(:address, first_name: 'Mary', last_name: 'Smith'),
state: 'complete',
shipment_state: 'ready',
completed_at: Time.zone.now
)
end
let!(:o3) do
create(
:order_with_distributor,
bill_address: create(:address, first_name: 'Bill', last_name: 'Taylor'),
state: 'complete',
shipment_state: 'ready',
completed_at: Time.zone.now
)
end
let!(:li1) { create(:line_item_with_shipment, order: o1) }
let!(:li2) { create(:line_item_with_shipment, order: o2) }
let!(:li3) { create(:line_item_with_shipment, order: o3) }
before :each do
visit_bulk_order_management
end
it "sorts by customer name when the customer name header is clicked" do
customer_names = [o1.name, o2.name].sort
it "sorts by customer last name when the customer name header is clicked" do
within "#listing_orders thead" do
click_on "Name"
end
expect(page).to have_selector("#listing_orders .line_item:nth-child(1) .full_name",
text: customer_names[0])
text: "Smith, Mary")
expect(page).to have_selector("#listing_orders .line_item:nth-child(2) .full_name",
text: customer_names[1])
text: "Taylor, Bill")
expect(page).to have_selector("#listing_orders .line_item:nth-child(3) .full_name",
text: "Taylor, Bob")
end
it "sorts by customer name in reverse when the customer name header is clicked twice" do
customer_names = [o1.name, o2.name].sort.reverse
it "sorts by customer last name in reverse when the customer name header is clicked twice" do
within "#listing_orders thead" do
click_on "Name"
click_on "Name"
end
expect(page).to have_selector("#listing_orders .line_item:nth-child(1) .full_name",
text: customer_names[1])
text: "Taylor, Bob")
expect(page).to have_selector("#listing_orders .line_item:nth-child(2) .full_name",
text: customer_names[0])
text: "Taylor, Bill")
expect(page).to have_selector("#listing_orders .line_item:nth-child(3) .full_name",
text: "Smith, Mary")
end
end
end

View File

@@ -92,307 +92,306 @@ distributors: [distributor4, distributor5]) }
bill_address_id: billing_address5.id)
}
context "logging as superadmin and visiting the orders page" do
describe "filters" do
before do
order2.select_shipping_method(shipping_method.id)
order4.select_shipping_method(shipping_method2.id)
login_as_admin_and_visit spree.admin_orders_path
end
context "fiters" do
it "order cycles appear in descending order by close date on orders page" do
open_select2('#s2id_q_order_cycle_id_in')
it "order cycles appear in descending order by close date on orders page" do
open_select2('#s2id_q_order_cycle_id_in')
expect(find('#q_order_cycle_id_in',
visible: :all)[:innerHTML]).to have_content(/.*Four.*Three.*Two.*Five/m)
expect(find('#q_order_cycle_id_in',
visible: :all)[:innerHTML]).to have_content(/.*Four.*Three.*Two.*Five/m)
end
it "filter by multiple order cycles" do
select2_select 'Two', from: 'q_order_cycle_id_in'
select2_select 'Three', from: 'q_order_cycle_id_in'
page.find('.filter-actions .button.icon-search').click
# Order 2 and 3 should show, but not 4
expect(page).to have_content order2.number
expect(page).to have_content order3.number
expect(page).to_not have_content order4.number
end
it "filter by distributors" do
select2_select distributor2.name.to_s, from: 'q_distributor_id_in'
select2_select distributor4.name.to_s, from: 'q_distributor_id_in'
page.find('.filter-actions .button.icon-search').click
# Order 2 and 4 should show, but not 3
expect(page).to have_content order2.number
expect(page).to_not have_content order3.number
expect(page).to have_content order4.number
end
it "filter by complete date" do
find("input.datepicker").click
select_dates_from_daterangepicker(order3.completed_at.yesterday,
order4.completed_at.tomorrow)
page.find('.filter-actions .button.icon-search').click
# Order 3 and 4 should show, but not 2
expect(page).to_not have_content order2.number
expect(page).to have_content order3.number
expect(page).to have_content order4.number
end
it "filter by email" do
fill_in "Email", with: customer3.email
page.find('.filter-actions .button.icon-search').click
# Order 3 should show, but not 2 and 4
expect(page).to_not have_content order2.number
expect(page).to have_content order3.number
expect(page).to_not have_content order4.number
end
it "filter by customer first and last names" do
# NOTE: this field refers to the name given in billing addresses and not to customer name
# filtering by first name
fill_in "First name begins with", with: billing_address2.firstname
page.find('.filter-actions .button.icon-search').click
# Order 3 should show, but not 2 and 4
expect(page).to have_content order2.number
expect(page).to_not have_content order3.number
expect(page).to_not have_content order4.number
find("a#clear_filters_button").click
# filtering by last name
fill_in "Last name begins with", with: billing_address4.lastname
page.find('.filter-actions .button.icon-search').click
# Order 4 should show, but not 2 and 3
expect(page).to_not have_content order2.number
expect(page).to_not have_content order3.number
expect(page).to have_content order4.number
end
it "filter by shipping methods" do
order2.select_shipping_method(shipping_method.id)
order4.select_shipping_method(shipping_method2.id)
select2_select "Pick-up at the farm", from: 'q_shipping_method_id'
page.find('.filter-actions .button.icon-search').click
# Order 2 should show, but not 3 and 5
expect(page).to have_content order2.number
expect(page).to_not have_content order3.number
expect(page).to_not have_content order4.number
find("a#clear_filters_button").click
select2_select "Signed, sealed, delivered", from: 'q_shipping_method_id'
page.find('.filter-actions .button.icon-search').click
# Order 4 should show, but not 2 and 3
expect(page).to_not have_content order2.number
expect(page).to_not have_content order3.number
expect(page).to have_content order4.number
end
it "filter by invoice number" do
fill_in "Invoice number:", with: order2.number
page.find('.filter-actions .button.icon-search').click
# Order 2 should show, but not 3 and 4
expect(page).to have_content order2.number
expect(page).to_not have_content order3.number
expect(page).to_not have_content order4.number
end
it "filter by order state" do
order.update(state: "payment")
uncheck 'Only show complete orders'
page.find('.filter-actions .button.icon-search').click
expect(page).to have_content order.number
expect(page).to have_content order2.number
expect(page).to have_content order3.number
expect(page).to have_content order4.number
expect(page).to have_content order5.number
select2_select "payment", from: 'q_state_eq'
page.find('.filter-actions .button.icon-search').click
# Order 2 should show, but not 3 and 4
expect(page).to have_content order.number
expect(page).to_not have_content order2.number
expect(page).to_not have_content order3.number
expect(page).to_not have_content order4.number
expect(page).to_not have_content order5.number
end
end
describe "ordering" do
context "orders with different completion dates" do
before do
order2.update!(completed_at: Time.zone.now - 2.weeks)
order3.update!(completed_at: Time.zone.now - 3.weeks)
order4.update!(completed_at: Time.zone.now - 4.weeks)
order5.update!(completed_at: Time.zone.now - 5.weeks)
login_as_admin_and_visit spree.admin_orders_path
end
it "filter by multiple order cycles" do
select2_select 'Two', from: 'q_order_cycle_id_in'
select2_select 'Three', from: 'q_order_cycle_id_in'
page.find('.filter-actions .button.icon-search').click
# Order 2 and 3 should show, but not 4
expect(page).to have_content order2.number
expect(page).to have_content order3.number
expect(page).to_not have_content order4.number
end
it "filter by distributors" do
select2_select distributor2.name.to_s, from: 'q_distributor_id_in'
select2_select distributor4.name.to_s, from: 'q_distributor_id_in'
page.find('.filter-actions .button.icon-search').click
# Order 2 and 4 should show, but not 3
expect(page).to have_content order2.number
expect(page).to_not have_content order3.number
expect(page).to have_content order4.number
end
it "filter by complete date" do
find("input.datepicker").click
select_dates_from_daterangepicker(order3.completed_at.yesterday,
order4.completed_at.tomorrow)
page.find('.filter-actions .button.icon-search').click
# Order 3 and 4 should show, but not 2
expect(page).to_not have_content order2.number
expect(page).to have_content order3.number
expect(page).to have_content order4.number
end
it "filter by email" do
fill_in "Email", with: customer3.email
page.find('.filter-actions .button.icon-search').click
# Order 3 should show, but not 2 and 4
expect(page).to_not have_content order2.number
expect(page).to have_content order3.number
expect(page).to_not have_content order4.number
end
it "filter by customer first and last names" do
# NOTE: this field refers to the name given in billing addresses and not to customer name
# filtering by first name
fill_in "First name begins with", with: billing_address2.firstname
page.find('.filter-actions .button.icon-search').click
# Order 3 should show, but not 2 and 4
expect(page).to have_content order2.number
expect(page).to_not have_content order3.number
expect(page).to_not have_content order4.number
find("a#clear_filters_button").click
# filtering by last name
fill_in "Last name begins with", with: billing_address4.lastname
page.find('.filter-actions .button.icon-search').click
# Order 4 should show, but not 2 and 3
expect(page).to_not have_content order2.number
expect(page).to_not have_content order3.number
expect(page).to have_content order4.number
end
it "filter by shipping methods" do
select2_select "Pick-up at the farm", from: 'q_shipping_method_id'
page.find('.filter-actions .button.icon-search').click
# Order 2 should show, but not 3 and 5
expect(page).to have_content order2.number
expect(page).to_not have_content order3.number
expect(page).to_not have_content order4.number
find("a#clear_filters_button").click
select2_select "Signed, sealed, delivered", from: 'q_shipping_method_id'
page.find('.filter-actions .button.icon-search').click
# Order 4 should show, but not 2 and 3
expect(page).to_not have_content order2.number
expect(page).to_not have_content order3.number
expect(page).to have_content order4.number
end
it "filter by invoice number" do
fill_in "Invoice number:", with: order2.number
page.find('.filter-actions .button.icon-search').click
# Order 2 should show, but not 3 and 4
expect(page).to have_content order2.number
expect(page).to_not have_content order3.number
expect(page).to_not have_content order4.number
end
it "filter by order state" do
order.update(state: "payment")
uncheck 'Only show complete orders'
page.find('.filter-actions .button.icon-search').click
expect(page).to have_content order.number
expect(page).to have_content order2.number
expect(page).to have_content order3.number
expect(page).to have_content order4.number
expect(page).to have_content order5.number
select2_select "payment", from: 'q_state_eq'
page.find('.filter-actions .button.icon-search').click
# Order 2 should show, but not 3 and 4
expect(page).to have_content order.number
expect(page).to_not have_content order2.number
expect(page).to_not have_content order3.number
expect(page).to_not have_content order4.number
expect(page).to_not have_content order5.number
it "orders by completion date" do
find("a", text: 'COMPLETED AT').click # sets ascending ordering
expect(page).to have_content(
/#{order5.number}.*#{order4.number}.*#{order3.number}.*#{order2.number}/m
)
find("a", text: 'COMPLETED AT').click # sets descending ordering
expect(page).to have_content(
/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m
)
end
end
context "ordering" do
context "orders with different completion dates" do
before do
order2.update!(completed_at: Time.zone.now - 2.weeks)
order3.update!(completed_at: Time.zone.now - 3.weeks)
order4.update!(completed_at: Time.zone.now - 4.weeks)
order5.update!(completed_at: Time.zone.now - 5.weeks)
login_as_admin_and_visit spree.admin_orders_path
end
it "orders by completion date" do
find("a", text: 'COMPLETED AT').click # sets ascending ordering
expect(page).to have_content(
/#{order5.number}.*#{order4.number}.*#{order3.number}.*#{order2.number}/m
)
find("a", text: 'COMPLETED AT').click # sets descending ordering
expect(page).to have_content(
/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m
)
end
context "orders with different order numbers" do
before do
order2.update!(number: "R555555555")
order3.update!(number: "R444444444")
order4.update!(number: "R333333333")
order5.update!(number: "R222222222")
login_as_admin_and_visit spree.admin_orders_path
end
context "orders with different order numbers" do
before do
order2.update!(number: "R555555555")
order3.update!(number: "R444444444")
order4.update!(number: "R333333333")
order5.update!(number: "R222222222")
login_as_admin_and_visit spree.admin_orders_path
end
it "orders by order number" do
find("a", text: 'NUMBER').click # sets ascending ordering
expect(page).to have_content(
/#{order5.number}.*#{order4.number}.*#{order3.number}.*#{order2.number}/m
)
find("a", text: 'NUMBER').click # sets descending ordering
expect(page).to have_content(
/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m
)
end
end
it "orders by order number" do
find("a", text: 'NUMBER').click # sets ascending ordering
expect(page).to have_content(
/#{order5.number}.*#{order4.number}.*#{order3.number}.*#{order2.number}/m
)
find("a", text: 'NUMBER').click # sets descending ordering
expect(page).to have_content(
/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m
)
end
context "orders with different states" do
before do
order2.update!(state: "payment")
order3.update!(state: "complete")
order4.update!(state: "cart")
order5.cancel
login_as_admin_and_visit spree.admin_orders_path
uncheck 'Only show complete orders'
page.find('.filter-actions .button.icon-search').click
end
context "orders with different states" do
before do
order2.update!(state: "payment")
order3.update!(state: "complete")
order4.update!(state: "cart")
order5.cancel
login_as_admin_and_visit spree.admin_orders_path
uncheck 'Only show complete orders'
page.find('.filter-actions .button.icon-search').click
end
it "orders by order state" do
find("a", text: 'STATE').click # sets ascending ordering
expect(page).to have_content(
/#{order5.number}.*#{order4.number}.*#{order3.number}.*#{order2.number}/m
)
find("a", text: 'STATE').click # sets descending ordering
expect(page).to have_content(
/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m
)
end
end
it "orders by order state" do
find("a", text: 'STATE').click # sets ascending ordering
expect(page).to have_content(
/#{order5.number}.*#{order4.number}.*#{order3.number}.*#{order2.number}/m
)
find("a", text: 'STATE').click # sets descending ordering
expect(page).to have_content(
/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m
)
end
context "orders with different payment states" do
before do
Spree::Payment.where(order_id: order2.id).first.update!(amount: 50.0)
Spree::Payment.where(order_id: order3.id).first.update!(amount: 100.0)
Spree::Payment.where(order_id: order4.id).first.update!(amount: 10.0)
login_as_admin_and_visit spree.admin_orders_path
end
context "orders with different payment states" do
before do
Spree::Payment.where(order_id: order2.id).first.update!(amount: 50.0)
Spree::Payment.where(order_id: order3.id).first.update!(amount: 100.0)
Spree::Payment.where(order_id: order4.id).first.update!(amount: 10.0)
login_as_admin_and_visit spree.admin_orders_path
end
it "orders by payment state" do
find("a", text: 'PAYMENT STATE').click # sets ascending ordering
expect(page).to have_content(/#{order4.number}.*#{order3.number}.*#{order2.number}/m)
find("a", text: 'PAYMENT STATE').click # sets descending ordering
expect(page).to have_content(/#{order2.number}.*#{order3.number}.*#{order4.number}/m)
end
end
it "orders by payment state" do
find("a", text: 'PAYMENT STATE').click # sets ascending ordering
expect(page).to have_content(/#{order4.number}.*#{order3.number}.*#{order2.number}/m)
find("a", text: 'PAYMENT STATE').click # sets descending ordering
expect(page).to have_content(/#{order2.number}.*#{order3.number}.*#{order4.number}/m)
end
context "orders with different shipment states" do
before do
Spree::Payment.where(order_id: order2.id).first.update!(amount: 50.0)
Spree::Payment.where(order_id: order3.id).first.update!(amount: 100.0)
Spree::Payment.where(order_id: order4.id).first.update!(amount: 10.0)
order2.ship
login_as_admin_and_visit spree.admin_orders_path
end
context "orders with different shipment states" do
before do
Spree::Payment.where(order_id: order2.id).first.update!(amount: 50.0)
Spree::Payment.where(order_id: order3.id).first.update!(amount: 100.0)
Spree::Payment.where(order_id: order4.id).first.update!(amount: 10.0)
order2.ship
login_as_admin_and_visit spree.admin_orders_path
end
it "orders by shipment state" do
find("a", text: 'SHIPMENT STATE').click # sets ascending ordering
expect(page).to have_content(/#{order4.number}.*#{order3.number}.*#{order2.number}/m)
find("a", text: 'SHIPMENT STATE').click # sets descending ordering
expect(page).to have_content(/#{order2.number}.*#{order3.number}.*#{order4.number}/m)
end
end
it "orders by shipment state" do
find("a", text: 'SHIPMENT STATE').click # sets ascending ordering
expect(page).to have_content(/#{order4.number}.*#{order3.number}.*#{order2.number}/m)
find("a", text: 'SHIPMENT STATE').click # sets descending ordering
expect(page).to have_content(/#{order2.number}.*#{order3.number}.*#{order4.number}/m)
end
context "orders from different customers" do
before do
order2.update!(email: "jkl@jkl.com")
order3.update!(email: "ghi@ghi.com")
order4.update!(email: "def@def.com")
order5.update!(email: "abc@abc.com")
login_as_admin_and_visit spree.admin_orders_path
end
context "orders from different customers" do
before do
order2.update!(email: "jkl@jkl.com")
order3.update!(email: "ghi@ghi.com")
order4.update!(email: "def@def.com")
order5.update!(email: "abc@abc.com")
login_as_admin_and_visit spree.admin_orders_path
end
it "orders by customer email" do
find("a", text: 'EMAIL').click # sets ascending ordering
expect(page).to have_content(
/#{order5.number}.*#{order4.number}.*#{order3.number}.*#{order2.number}/m
)
find("a", text: 'EMAIL').click # sets descending ordering
expect(page).to have_content(
/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m
)
end
end
it "orders by customer email" do
find("a", text: 'EMAIL').click # sets ascending ordering
expect(page).to have_content(
/#{order5.number}.*#{order4.number}.*#{order3.number}.*#{order2.number}/m
)
find("a", text: 'EMAIL').click # sets descending ordering
expect(page).to have_content(
/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m
)
end
context "orders with different billing addresses" do
before do
billing_address2.update!(lastname: "Mad Hatter")
billing_address3.update!(lastname: "Duchess")
billing_address4.update!(lastname: "Cheshire Cat")
billing_address5.update!(lastname: "Alice")
login_as_admin_and_visit spree.admin_orders_path
end
context "orders with different billing addresses" do
before do
billing_address2.update!(lastname: "Mad Hatter")
billing_address3.update!(lastname: "Duchess")
billing_address4.update!(lastname: "Cheshire Cat")
billing_address5.update!(lastname: "Alice")
login_as_admin_and_visit spree.admin_orders_path
end
it "orders by last name" do
find("a", text: 'NAME').click # sets ascending ordering
expect(page).to have_content(
/#{order5.number}.*#{order4.number}.*#{order3.number}.*#{order2.number}/m
)
find("a", text: 'NAME').click # sets descending ordering
expect(page).to have_content(
/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m
)
end
end
it "orders by last name" do
find("a", text: 'NAME').click # sets ascending ordering
expect(page).to have_content(
/#{order5.number}.*#{order4.number}.*#{order3.number}.*#{order2.number}/m
)
find("a", text: 'NAME').click # sets descending ordering
expect(page).to have_content(
/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m
)
end
context "orders with different order totals" do
before do
Spree::LineItem.where(order_id: order2.id).first.update!(quantity: 5)
Spree::LineItem.where(order_id: order3.id).first.update!(quantity: 4)
Spree::LineItem.where(order_id: order4.id).first.update!(quantity: 3)
Spree::LineItem.where(order_id: order5.id).first.update!(quantity: 2)
order2.save
order3.save
order4.save
order5.save
login_as_admin_and_visit spree.admin_orders_path
end
context "orders with different order totals" do
before do
Spree::LineItem.where(order_id: order2.id).first.update!(quantity: 5)
Spree::LineItem.where(order_id: order3.id).first.update!(quantity: 4)
Spree::LineItem.where(order_id: order4.id).first.update!(quantity: 3)
Spree::LineItem.where(order_id: order5.id).first.update!(quantity: 2)
order2.save
order3.save
order4.save
order5.save
login_as_admin_and_visit spree.admin_orders_path
end
it "orders by order total" do
find("a", text: 'TOTAL').click # sets ascending ordering
expect(page).to have_content(
/#{order5.number}.*#{order4.number}.*#{order3.number}.*#{order2.number}/m
)
find("a", text: 'TOTAL').click # sets descending ordering
expect(page).to have_content(
/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m
)
end
it "orders by order total" do
find("a", text: 'TOTAL').click # sets ascending ordering
expect(page).to have_content(
/#{order5.number}.*#{order4.number}.*#{order3.number}.*#{order2.number}/m
)
find("a", text: 'TOTAL').click # sets descending ordering
expect(page).to have_content(
/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m
)
end
end
end