From 994232f6d10ed64d2e39be1dcec1c2836cf8c318 Mon Sep 17 00:00:00 2001 From: filipefurtad0 Date: Sat, 28 Jan 2023 17:50:28 +0000 Subject: [PATCH 01/11] Adds pagination test on orders page --- spec/system/admin/orders_spec.rb | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/spec/system/admin/orders_spec.rb b/spec/system/admin/orders_spec.rb index 782cf20cc0..f0c640d80a 100644 --- a/spec/system/admin/orders_spec.rb +++ b/spec/system/admin/orders_spec.rb @@ -346,6 +346,25 @@ describe ' end end + context "pagination" do + before do + login_as_admin_and_visit spree.admin_orders_path + end + + it "displays pagination options" do + # displaying 4 orders (one order per table row) + within('tbody') do + expect(page).to have_css('tr.ng-scope', :count => 4) + end + # pagination options also refer 4 order + expect(page).to have_content "4 Results found. Viewing 1 to 4." + page.find(".per-page-select").click # toggling the pagination dropdown + expect(page).to have_content "15 per page" + expect(page).to have_content "50 per page" + expect(page).to have_content "100 per page" + end + end + context "with a capturable order" do before do order.finalize! # ensure order has a payment to capture From 0e878d8ce1e3ae02e3c2e12d38e34df51facb753 Mon Sep 17 00:00:00 2001 From: filipefurtad0 Date: Mon, 30 Jan 2023 17:08:03 +0000 Subject: [PATCH 02/11] Sets context for filters; Adds context for ordering --- spec/system/admin/orders_spec.rb | 268 +++++++++++++++++-------------- 1 file changed, 145 insertions(+), 123 deletions(-) diff --git a/spec/system/admin/orders_spec.rb b/spec/system/admin/orders_spec.rb index f0c640d80a..ec2a7b3cb8 100644 --- a/spec/system/admin/orders_spec.rb +++ b/spec/system/admin/orders_spec.rb @@ -83,132 +83,154 @@ describe ' login_as_admin_and_visit spree.admin_orders_path end - it "order cycles appear in descending order by close date on orders page" do - open_select2('#s2id_q_order_cycle_id_in') + 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') - 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 + 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 - 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 + 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 "Loading" + 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 "Loading" + expect(page).to have_content (/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m) + end + end end end From cff06011f1f654d37c82749833bd4885c20ffe83 Mon Sep 17 00:00:00 2001 From: filipefurtad0 Date: Mon, 30 Jan 2023 17:21:29 +0000 Subject: [PATCH 03/11] Fixes rubocop issues; Adds ordering by order number --- spec/system/admin/orders_spec.rb | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/spec/system/admin/orders_spec.rb b/spec/system/admin/orders_spec.rb index ec2a7b3cb8..5d22a5291f 100644 --- a/spec/system/admin/orders_spec.rb +++ b/spec/system/admin/orders_spec.rb @@ -83,7 +83,7 @@ describe ' login_as_admin_and_visit spree.admin_orders_path end - context "fiters" do + 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') @@ -223,12 +223,31 @@ describe ' 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 + find("a", text: 'COMPLETED AT').click # sets ascending ordering expect(page).to have_content "Loading" - 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(/#{order5.number}.*#{order4.number}.*#{order3.number}.*#{order2.number}/m) + find("a", text: 'COMPLETED AT').click # sets descending ordering expect(page).to have_content "Loading" - expect(page).to have_content (/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m) + expect(page).to have_content(/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m) + end + end + + context "orders by order number" 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 alphabetically by order number" do + find("a", text: 'NUMBER').click + expect(page).to have_content "Loading" + 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 "Loading" + expect(page).to have_content(/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m) end end end @@ -376,7 +395,7 @@ describe ' it "displays pagination options" do # displaying 4 orders (one order per table row) within('tbody') do - expect(page).to have_css('tr.ng-scope', :count => 4) + expect(page).to have_css('tr.ng-scope', count: 4) end # pagination options also refer 4 order expect(page).to have_content "4 Results found. Viewing 1 to 4." From 958a1bde9f943be861261bb75a60c0c43d42ee83 Mon Sep 17 00:00:00 2001 From: filipefurtad0 Date: Mon, 30 Jan 2023 17:35:23 +0000 Subject: [PATCH 04/11] Adds ordering by order state --- spec/system/admin/orders_spec.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/spec/system/admin/orders_spec.rb b/spec/system/admin/orders_spec.rb index 5d22a5291f..b98cabf2df 100644 --- a/spec/system/admin/orders_spec.rb +++ b/spec/system/admin/orders_spec.rb @@ -250,6 +250,27 @@ describe ' expect(page).to have_content(/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m) end end + + context "orders by order state" 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 alphabetically by order number" do + find("a", text: 'STATE').click + expect(page).to have_content "Loading" + 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 "Loading" + expect(page).to have_content(/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m) + end + end end end From f2c0a7764118dda02ea7e94f93ff01760ecfdd67 Mon Sep 17 00:00:00 2001 From: filipefurtad0 Date: Mon, 30 Jan 2023 18:39:51 +0000 Subject: [PATCH 05/11] Adds ordering by payment state --- spec/system/admin/orders_spec.rb | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/spec/system/admin/orders_spec.rb b/spec/system/admin/orders_spec.rb index b98cabf2df..3c64764c46 100644 --- a/spec/system/admin/orders_spec.rb +++ b/spec/system/admin/orders_spec.rb @@ -242,7 +242,7 @@ describe ' end it "orders alphabetically by order number" do - find("a", text: 'NUMBER').click + find("a", text: 'NUMBER').click # sets ascending ordering expect(page).to have_content "Loading" expect(page).to have_content(/#{order5.number}.*#{order4.number}.*#{order3.number}.*#{order2.number}/m) find("a", text: 'NUMBER').click # sets descending ordering @@ -263,7 +263,7 @@ describe ' end it "orders alphabetically by order number" do - find("a", text: 'STATE').click + find("a", text: 'STATE').click # sets ascending ordering expect(page).to have_content "Loading" expect(page).to have_content(/#{order5.number}.*#{order4.number}.*#{order3.number}.*#{order2.number}/m) find("a", text: 'STATE').click # sets descending ordering @@ -271,6 +271,25 @@ describe ' expect(page).to have_content(/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m) end end + + context "orders by payment state" do + before do + Spree::Payment.where(order_id: order2.id).update(amount: 50.0) + Spree::Payment.where(order_id: order3.id).update(amount: 100.0) + Spree::Payment.where(order_id: order4.id).update(amount: 10.0) + order5.update(state: "cart") # hides order 5 + login_as_admin_and_visit spree.admin_orders_path + end + + it "orders alphabetically by order number" do + find("a", text: 'PAYMENT STATE').click # sets ascending ordering + expect(page).to have_content "Loading" + 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 "Loading" + expect(page).to have_content(/#{order2.number}.*#{order3.number}.*#{order4.number}/m) + end + end end end From dcbf2ae96bbf2efcd1e05bd17d34d6abe4de633c Mon Sep 17 00:00:00 2001 From: filipefurtad0 Date: Mon, 30 Jan 2023 19:03:14 +0000 Subject: [PATCH 06/11] Removes assertions on the Loading element --- spec/system/admin/orders_spec.rb | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/spec/system/admin/orders_spec.rb b/spec/system/admin/orders_spec.rb index 3c64764c46..6e1dc2c9aa 100644 --- a/spec/system/admin/orders_spec.rb +++ b/spec/system/admin/orders_spec.rb @@ -224,15 +224,13 @@ describe ' end it "orders by completion date" do find("a", text: 'COMPLETED AT').click # sets ascending ordering - expect(page).to have_content "Loading" 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 "Loading" expect(page).to have_content(/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m) end end - context "orders by order number" do + context "orders with different order numbers" do before do order2.update(number: "R555555555") order3.update(number: "R444444444") @@ -241,17 +239,15 @@ describe ' login_as_admin_and_visit spree.admin_orders_path end - it "orders alphabetically by order number" do + it "orders by order number" do find("a", text: 'NUMBER').click # sets ascending ordering - expect(page).to have_content "Loading" 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 "Loading" expect(page).to have_content(/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m) end end - context "orders by order state" do + context "orders with different states" do before do order2.update(state: "payment") order3.update(state: "complete") @@ -262,31 +258,26 @@ describe ' page.find('.filter-actions .button.icon-search').click end - it "orders alphabetically by order number" do + it "orders by order state" do find("a", text: 'STATE').click # sets ascending ordering - expect(page).to have_content "Loading" 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 "Loading" expect(page).to have_content(/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m) end end - context "orders by payment state" do + context "orders with different payment states" do before do Spree::Payment.where(order_id: order2.id).update(amount: 50.0) Spree::Payment.where(order_id: order3.id).update(amount: 100.0) Spree::Payment.where(order_id: order4.id).update(amount: 10.0) - order5.update(state: "cart") # hides order 5 login_as_admin_and_visit spree.admin_orders_path end - it "orders alphabetically by order number" do + it "orders by payment state" do find("a", text: 'PAYMENT STATE').click # sets ascending ordering - expect(page).to have_content "Loading" 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 "Loading" expect(page).to have_content(/#{order2.number}.*#{order3.number}.*#{order4.number}/m) end end From 107bb3df66c7d30d5d98b81fde3355174ecb890a Mon Sep 17 00:00:00 2001 From: filipefurtad0 Date: Mon, 30 Jan 2023 19:26:50 +0000 Subject: [PATCH 07/11] Adds ordering by shipment state --- spec/system/admin/orders_spec.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/spec/system/admin/orders_spec.rb b/spec/system/admin/orders_spec.rb index 6e1dc2c9aa..06bb8b1cae 100644 --- a/spec/system/admin/orders_spec.rb +++ b/spec/system/admin/orders_spec.rb @@ -281,6 +281,23 @@ describe ' expect(page).to have_content(/#{order2.number}.*#{order3.number}.*#{order4.number}/m) end end + + context "orders with different shipment states" do + before do + Spree::Payment.where(order_id: order2.id).update(amount: 50.0) + Spree::Payment.where(order_id: order3.id).update(amount: 100.0) + Spree::Payment.where(order_id: order4.id).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 end end From 7f4e5d3f2e4125ad025a218a73bfcc52fa5bd94c Mon Sep 17 00:00:00 2001 From: filipefurtad0 Date: Mon, 30 Jan 2023 19:40:28 +0000 Subject: [PATCH 08/11] Adds ordering by customer name --- spec/system/admin/orders_spec.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/spec/system/admin/orders_spec.rb b/spec/system/admin/orders_spec.rb index 06bb8b1cae..a01652f3f9 100644 --- a/spec/system/admin/orders_spec.rb +++ b/spec/system/admin/orders_spec.rb @@ -298,6 +298,23 @@ describe ' expect(page).to have_content(/#{order2.number}.*#{order3.number}.*#{order4.number}/m) end 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 end end From 801ebe5819f27d0a86131b303996bbdddc0b31b0 Mon Sep 17 00:00:00 2001 From: filipefurtad0 Date: Mon, 30 Jan 2023 19:50:35 +0000 Subject: [PATCH 09/11] Adds ordering by billing address name --- spec/system/admin/orders_spec.rb | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/spec/system/admin/orders_spec.rb b/spec/system/admin/orders_spec.rb index a01652f3f9..93d9aa9246 100644 --- a/spec/system/admin/orders_spec.rb +++ b/spec/system/admin/orders_spec.rb @@ -73,7 +73,8 @@ describe ' } let!(:order5) { create(:order_ready_to_ship, user: customer5, distributor: distributor5, - order_cycle: order_cycle5,) + order_cycle: order_cycle5, + bill_address_id: billing_address5.id) } context "logging as superadmin and visiting the orders page" do @@ -315,6 +316,23 @@ describe ' expect(page).to have_content(/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m) end 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 end end From 444d689f14d6c12645c17c5c115acd153bda218b Mon Sep 17 00:00:00 2001 From: filipefurtad0 Date: Mon, 30 Jan 2023 20:06:53 +0000 Subject: [PATCH 10/11] Adds ordering by order total --- spec/system/admin/orders_spec.rb | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/spec/system/admin/orders_spec.rb b/spec/system/admin/orders_spec.rb index 93d9aa9246..bcdf70de0e 100644 --- a/spec/system/admin/orders_spec.rb +++ b/spec/system/admin/orders_spec.rb @@ -333,6 +333,27 @@ describe ' expect(page).to have_content(/#{order2.number}.*#{order3.number}.*#{order4.number}.*#{order5.number}/m) end end + + context "orders with different order totals" do + before do + Spree::LineItem.where(order_id: order2.id).update(quantity: 5) + Spree::LineItem.where(order_id: order3.id).update(quantity: 4) + Spree::LineItem.where(order_id: order4.id).update(quantity: 3) + Spree::LineItem.where(order_id: order5.id).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 + end end end From 5d4ab5c1f8f6e3483acdf8302363db6ed8729569 Mon Sep 17 00:00:00 2001 From: filipefurtad0 Date: Tue, 31 Jan 2023 12:20:26 +0000 Subject: [PATCH 11/11] Adds the bang! when updating DB entries --- spec/system/admin/orders_spec.rb | 58 ++++++++++++++++---------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/spec/system/admin/orders_spec.rb b/spec/system/admin/orders_spec.rb index bcdf70de0e..cb271921f2 100644 --- a/spec/system/admin/orders_spec.rb +++ b/spec/system/admin/orders_spec.rb @@ -217,10 +217,10 @@ describe ' 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) + 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 @@ -233,10 +233,10 @@ describe ' 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") + 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 @@ -250,9 +250,9 @@ describe ' context "orders with different states" do before do - order2.update(state: "payment") - order3.update(state: "complete") - order4.update(state: "cart") + 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' @@ -269,9 +269,9 @@ describe ' context "orders with different payment states" do before do - Spree::Payment.where(order_id: order2.id).update(amount: 50.0) - Spree::Payment.where(order_id: order3.id).update(amount: 100.0) - Spree::Payment.where(order_id: order4.id).update(amount: 10.0) + 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 @@ -285,9 +285,9 @@ describe ' context "orders with different shipment states" do before do - Spree::Payment.where(order_id: order2.id).update(amount: 50.0) - Spree::Payment.where(order_id: order3.id).update(amount: 100.0) - Spree::Payment.where(order_id: order4.id).update(amount: 10.0) + 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 @@ -302,10 +302,10 @@ describe ' 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") + 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 @@ -319,10 +319,10 @@ describe ' 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") + 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 @@ -336,10 +336,10 @@ describe ' context "orders with different order totals" do before do - Spree::LineItem.where(order_id: order2.id).update(quantity: 5) - Spree::LineItem.where(order_id: order3.id).update(quantity: 4) - Spree::LineItem.where(order_id: order4.id).update(quantity: 3) - Spree::LineItem.where(order_id: order5.id).update(quantity: 2) + 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