From c57d5a2408dc9ca4c6f2742df7083f690b355d00 Mon Sep 17 00:00:00 2001 From: filipefurtad0 Date: Tue, 26 Jul 2022 12:49:08 +0100 Subject: [PATCH 1/4] Updates spec to smoke-test Pack by Product --- spec/system/admin/reports/packing_report_spec.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/spec/system/admin/reports/packing_report_spec.rb b/spec/system/admin/reports/packing_report_spec.rb index 0d3e6d9489..6a9ca50b10 100644 --- a/spec/system/admin/reports/packing_report_spec.rb +++ b/spec/system/admin/reports/packing_report_spec.rb @@ -126,14 +126,16 @@ describe "Packing Reports" do login_as_admin end - describe "viewing a report" do + describe "viewing the Pack by Product report" do context "when an associated variant has been soft-deleted" do - it "shows line items" do + + before do li1.variant.delete - visit admin_reports_path + click_link "Pack By Product" + end - click_on I18n.t("admin.reports.packing.name") + it "shows line items" do select oc.name, from: "q_order_cycle_id_in" find('#q_order_completed_at_gt').click From 023ebe1909888fe8abce14006b895196938eb6eb Mon Sep 17 00:00:00 2001 From: filipefurtad0 Date: Tue, 26 Jul 2022 14:35:27 +0100 Subject: [PATCH 2/4] Asserts on pre-filling of dates; removes manual date selection --- .../admin/reports/packing_report_spec.rb | 47 ++++++++++--------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/spec/system/admin/reports/packing_report_spec.rb b/spec/system/admin/reports/packing_report_spec.rb index 6a9ca50b10..489df66e78 100644 --- a/spec/system/admin/reports/packing_report_spec.rb +++ b/spec/system/admin/reports/packing_report_spec.rb @@ -32,9 +32,12 @@ describe "Packing Reports" do let(:variant2) { create(:variant, product: product1, unit_description: "Small") } let(:product2) { create(:simple_product, name: "Product 2", supplier: supplier) } + let(:open_datetime) { (Time.zone.now - 1.month).strftime("%Y-%m-%d 00:00") } + let(:close_datetime) { Time.zone.now.strftime("%Y-%m-%d 00:00") } + before do - Timecop.travel(Time.zone.local(2022, 4, 25, 14, 0, 0)) { order1.finalize! } - Timecop.travel(Time.zone.local(2022, 4, 25, 15, 0, 0)) { order2.finalize! } + order1.finalize! + order2.finalize! create(:line_item_with_shipment, variant: variant1, quantity: 1, order: order1) create(:line_item_with_shipment, variant: variant2, quantity: 3, order: order1) @@ -45,11 +48,8 @@ describe "Packing Reports" do it "displays the report" do click_link "Pack By Customer" - find('#q_order_completed_at_gt').click - select_date_from_datepicker Time.zone.at(order1.completed_at - 1.day) - - find('#q_order_completed_at_lt').click - select_date_from_datepicker Time.zone.at(order1.completed_at + 1.day) + # pre-fills with dates + check_prefilled_dates click_button 'Go' @@ -65,11 +65,9 @@ describe "Packing Reports" do it "sorts alphabetically" do click_link "Pack By Customer" - find('#q_order_completed_at_gt').click - select_date_from_datepicker Time.zone.at(order1.completed_at - 1.day) + # pre-fills with dates + check_prefilled_dates - find('#q_order_completed_at_lt').click - select_date_from_datepicker Time.zone.at(order1.completed_at + 1.day) click_button 'Go' rows = find("table.report__table").all("tr") table = rows.map { |r| r.all("th,td").map { |c| c.text.strip }[3] } @@ -87,11 +85,9 @@ describe "Packing Reports" do describe "Pack By Supplier" do it "displays the report" do click_link "Pack By Supplier" - find('#q_order_completed_at_gt').click - select_date_from_datepicker Time.zone.at(order1.completed_at - 1.day) - find('#q_order_completed_at_lt').click - select_date_from_datepicker Time.zone.at(order1.completed_at + 1.day) + # pre-fills with dates + check_prefilled_dates find(:css, "#display_summary_row").set(false) # does not include summary rows @@ -119,16 +115,18 @@ describe "Packing Reports" do let(:li1) { build(:line_item_with_shipment) } let(:li2) { build(:line_item_with_shipment) } + let(:open_datetime) { (Time.zone.now - 1.month).strftime("%Y-%m-%d 00:00") } + let(:close_datetime) { Time.zone.now.strftime("%Y-%m-%d 00:00") } + before do order.line_items << li1 order.line_items << li2 - Timecop.travel(Time.zone.local(2022, 4, 25, 14, 0, 0)) { order.finalize! } + order.finalize! login_as_admin end describe "viewing the Pack by Product report" do context "when an associated variant has been soft-deleted" do - before do li1.variant.delete visit admin_reports_path @@ -138,14 +136,10 @@ describe "Packing Reports" do it "shows line items" do select oc.name, from: "q_order_cycle_id_in" - find('#q_order_completed_at_gt').click - select_date_from_datepicker Time.zone.at(order.completed_at - 1.day) - - find('#q_order_completed_at_lt').click - select_date_from_datepicker Time.zone.at(order.completed_at + 1.day) + # pre-fills with dates + check_prefilled_dates find("button[type='submit']").click - expect(page).to have_content li1.product.name expect(page).to have_content li2.product.name end @@ -153,3 +147,10 @@ describe "Packing Reports" do end end end + +private + +def check_prefilled_dates + expect(page).to have_input "q[order_completed_at_gt]", value: open_datetime, visible: false + expect(page).to have_input "q[order_completed_at_lt]", value: close_datetime, visible: false +end From 116f503cf67dab4f85acb6390ec9f9be17d97927 Mon Sep 17 00:00:00 2001 From: filipefurtad0 Date: Tue, 26 Jul 2022 14:57:28 +0100 Subject: [PATCH 3/4] Updates Payments reports spec --- .../admin/reports/payments_report_spec.rb | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/spec/system/admin/reports/payments_report_spec.rb b/spec/system/admin/reports/payments_report_spec.rb index 984b1bcbdd..2f55d63d1d 100644 --- a/spec/system/admin/reports/payments_report_spec.rb +++ b/spec/system/admin/reports/payments_report_spec.rb @@ -40,21 +40,21 @@ describe "Payments Reports" do find("[type='submit']").click expect(page.find("table.report__table thead tr").text).to have_content([ - I18n.t(:report_header_payment_state), - I18n.t(:report_header_distributor), - I18n.t(:report_header_product_total_price, currency: currency_symbol), - I18n.t(:report_header_shipping_total_price, currency: currency_symbol), - I18n.t(:report_header_outstanding_balance_price, currency: currency_symbol), - I18n.t(:report_header_total_price, currency: currency_symbol) + "Payment State", + "Distributor", + "Product Total ($)", + "Shipping Total ($)", + "Outstanding Balance ($)", + "Total ($)" ].join(" ").upcase) expect(page.find("table.report__table tbody tr").text).to have_content([ order.payment_state, order.distributor.name, - with_currency(order.item_total.to_f + other_order.item_total.to_f), - with_currency(order.ship_total.to_f + other_order.ship_total.to_f), - with_currency(order.outstanding_balance.to_f + other_order.outstanding_balance.to_f), - with_currency(order.total.to_f + other_order.total.to_f) + order.item_total.to_f + other_order.item_total.to_f, + order.ship_total.to_f + other_order.ship_total.to_f, + order.outstanding_balance.to_f + other_order.outstanding_balance.to_f, + order.total.to_f + other_order.total.to_f ].compact.join(" ")) end end @@ -75,14 +75,14 @@ describe "Payments Reports" do find("[type='submit']").click expect(page.find("table.report__table thead tr").text).to have_content([ - I18n.t(:report_header_payment_state), - I18n.t(:report_header_distributor), - I18n.t(:report_header_product_total_price, currency: currency_symbol), - I18n.t(:report_header_shipping_total_price, currency: currency_symbol), - I18n.t(:report_header_total_price, currency: currency_symbol), - I18n.t(:report_header_eft_price, currency: currency_symbol), - I18n.t(:report_header_paypal_price, currency: currency_symbol), - I18n.t(:report_header_outstanding_balance_price, currency: currency_symbol), + "Payment State", + "Distributor", + "Product Total ($)", + "Shipping Total ($)", + "Total ($)", + "EFT ($)", + "PayPal ($)", + "Outstanding Balance ($)" ].join(" ").upcase) expect(page.find("table.report__table tbody tr").text).to have_content([ From ce96094f4923a4b4caa2c4556d81312eacea1890 Mon Sep 17 00:00:00 2001 From: filipefurtad0 Date: Mon, 8 Aug 2022 12:23:11 +0100 Subject: [PATCH 4/4] Adds around block with time.freeze --- spec/system/admin/reports/packing_report_spec.rb | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/spec/system/admin/reports/packing_report_spec.rb b/spec/system/admin/reports/packing_report_spec.rb index 489df66e78..b5a1f4d1e5 100644 --- a/spec/system/admin/reports/packing_report_spec.rb +++ b/spec/system/admin/reports/packing_report_spec.rb @@ -6,6 +6,13 @@ describe "Packing Reports" do include AuthenticationHelper include WebHelper + around do |example| + Timecop.freeze(Time.zone.now.strftime("%Y-%m-%d 00:00")) { example.run } + end + + let!(:open_datetime) { (Time.zone.now - 1.month).strftime("%Y-%m-%d 00:00") } + let!(:close_datetime) { Time.zone.now.strftime("%Y-%m-%d 00:00") } + describe "Packing reports" do before do login_as_admin @@ -32,9 +39,6 @@ describe "Packing Reports" do let(:variant2) { create(:variant, product: product1, unit_description: "Small") } let(:product2) { create(:simple_product, name: "Product 2", supplier: supplier) } - let(:open_datetime) { (Time.zone.now - 1.month).strftime("%Y-%m-%d 00:00") } - let(:close_datetime) { Time.zone.now.strftime("%Y-%m-%d 00:00") } - before do order1.finalize! order2.finalize! @@ -115,9 +119,6 @@ describe "Packing Reports" do let(:li1) { build(:line_item_with_shipment) } let(:li2) { build(:line_item_with_shipment) } - let(:open_datetime) { (Time.zone.now - 1.month).strftime("%Y-%m-%d 00:00") } - let(:close_datetime) { Time.zone.now.strftime("%Y-%m-%d 00:00") } - before do order.line_items << li1 order.line_items << li2