From 005d5cafde7167a394c1713bfcd9c4165a12894f Mon Sep 17 00:00:00 2001 From: Mohamed ABDELLANI Date: Thu, 24 Nov 2022 10:27:38 +0100 Subject: [PATCH] test if the rendering options are stored for every reports seperately and if they persiste after logout --- .../reports/orders_and_fulfillment_spec.rb | 120 +++++++++++++++++- 1 file changed, 119 insertions(+), 1 deletion(-) diff --git a/spec/system/admin/reports/orders_and_fulfillment_spec.rb b/spec/system/admin/reports/orders_and_fulfillment_spec.rb index 5a295120b1..23969c5355 100644 --- a/spec/system/admin/reports/orders_and_fulfillment_spec.rb +++ b/spec/system/admin/reports/orders_and_fulfillment_spec.rb @@ -7,8 +7,10 @@ describe "Orders And Fulfillment" do include WebHelper describe "reports" do + let(:current_user) { create(:admin_user) } + before do - login_as_admin + login_to_admin_as(current_user) visit admin_reports_path end @@ -438,5 +440,121 @@ describe "Orders And Fulfillment" do end end end + + describe "Saving report rendering options" do + let(:report_title) { "Order Cycle Supplier Totals" } + + let(:second_report_title) { "Order Cycle Supplier Totals by Distributor" } + + let(:columns_dropdown_selector) { 'div[data-multiple-checked-select-target="button"]' } + + context "Switching between reports" do + context "Display options" do + it "should store display options for every report separately" do + # Step 1: Update report rendering options on two reports + click_link report_title + expect(page).to have_unchecked_field('Header Row') + expect(page).to have_checked_field('Summary Row') + check 'Header Row' + uncheck 'Summary Row' + + click_button 'Go' + + click_link "Report" + click_link second_report_title + expect(page).to have_unchecked_field('Header Row') + expect(page).to have_checked_field('Summary Row') + check 'Header Row' + click_button 'Go' + + # Step 2: check if report rendering options are saved properly + click_link "Report" + click_link report_title + expect(page).to have_checked_field('Header Row') + expect(page).to have_unchecked_field('Summary Row') + + click_link "Report" + click_link second_report_title + expect(page).to have_checked_field('Header Row') + expect(page).to have_checked_field('Summary Row') + end + end + context "Columns to show" do + it "should store columns to show for every report separately" do + # Step 1: Update report rendering options on two reports + click_link report_title + find(columns_dropdown_selector).click + expect(page).to have_checked_field('Producer') + expect(page).to have_checked_field('Product') + uncheck('Producer') + uncheck('Product') + click_button 'Go' + + click_link "Report" + click_link second_report_title + find(columns_dropdown_selector).click + expect(page).to have_checked_field('Producer') + expect(page).to have_checked_field('Product') + uncheck('Product') + click_button 'Go' + + # Step 2: check if report rendering options are saved properly + click_link "Report" + click_link report_title + find(columns_dropdown_selector).click + expect(page).to have_unchecked_field('Producer') + expect(page).to have_unchecked_field('Product') + + click_link "Report" + click_link second_report_title + find(columns_dropdown_selector).click + expect(page).to have_checked_field('Producer') + expect(page).to have_unchecked_field('Product') + end + end + end + context "Revisiting a report after logout" do + context "Display options" do + it "should store display options" do + click_link report_title + expect(page).to have_unchecked_field('Header Row') + expect(page).to have_checked_field('Summary Row') + check 'Header Row' + uncheck 'Summary Row' + click_button 'Go' + + logout + login_to_admin_as(current_user) + visit admin_reports_path + + click_link report_title + expect(page).to have_checked_field('Header Row') + expect(page).to have_unchecked_field('Summary Row') + end + end + + context "Columns to show" do + it "should store columns after logout" do + click_link report_title + find(columns_dropdown_selector).click + expect(page).to have_checked_field('Producer') + expect(page).to have_checked_field('Product') + uncheck('Producer') + uncheck('Product') + click_button 'Go' + + logout + login_to_admin_as(current_user) + visit admin_reports_path + + click_link "Report" + click_link report_title + find(columns_dropdown_selector).click + expect(page).to have_unchecked_field('Producer') + expect(page).to have_unchecked_field('Product') + end + end + end + end end end