From 2c0928ca206bab6ee5e53a59b167f794f374be7e Mon Sep 17 00:00:00 2001 From: Rob Harrington Date: Thu, 2 Mar 2017 11:24:53 +1100 Subject: [PATCH] Automatically show 'Schedules' column on OC index when Standing Orders are enabled --- .../column_preference_defaults.rb | 2 +- spec/features/admin/schedules_spec.rb | 12 --------- spec/models/column_preference_spec.rb | 27 +++++++++++++++++++ 3 files changed, 28 insertions(+), 13 deletions(-) diff --git a/lib/open_food_network/column_preference_defaults.rb b/lib/open_food_network/column_preference_defaults.rb index 887c9c1ab2..edf554b761 100644 --- a/lib/open_food_network/column_preference_defaults.rb +++ b/lib/open_food_network/column_preference_defaults.rb @@ -87,7 +87,7 @@ module OpenFoodNetwork node = "admin.order_cycles.index" { name: { name: I18n.t("admin.name"), visible: true }, - schedules: { name: I18n.t("#{node}.schedules"), visible: false }, + schedules: { name: I18n.t("#{node}.schedules"), visible: true }, open: { name: I18n.t("open"), visible: true }, close: { name: I18n.t("close"), visible: true }, producers: { name: I18n.t("label_producers"), visible: false }, diff --git a/spec/features/admin/schedules_spec.rb b/spec/features/admin/schedules_spec.rb index 85bfb47910..b3f995bcea 100644 --- a/spec/features/admin/schedules_spec.rb +++ b/spec/features/admin/schedules_spec.rb @@ -41,10 +41,6 @@ feature 'Schedules', js: true do click_button "Create Schedule" end - find("div#columns-dropdown", :text => "COLUMNS").click - find("div#columns-dropdown div.menu div.menu_item", text: "Schedules").click - find("div#columns-dropdown", :text => "COLUMNS").click - within ".order-cycle-#{oc1.id} td.schedules" do expect(page).to have_selector "a", text: "Weekly" expect(page).to have_selector "a", text: "Fortnightly" @@ -68,10 +64,6 @@ feature 'Schedules', js: true do it "immediately shows updated schedule lists for order cycles" do click_link 'Order Cycles' - find("div#columns-dropdown", :text => "COLUMNS").click - find("div#columns-dropdown div.menu div.menu_item", text: "Schedules").click - find("div#columns-dropdown", :text => "COLUMNS").click - within ".order-cycle-#{oc1.id} td.schedules" do find('a', text: "Weekly").click end @@ -103,10 +95,6 @@ feature 'Schedules', js: true do it "immediately removes deleted schedules from order cycles" do click_link 'Order Cycles' - find("div#columns-dropdown", :text => "COLUMNS").click - find("div#columns-dropdown div.menu div.menu_item", text: "Schedules").click - find("div#columns-dropdown", :text => "COLUMNS").click - within ".order-cycle-#{oc1.id} td.schedules" do find('a', text: "Weekly").click end diff --git a/spec/models/column_preference_spec.rb b/spec/models/column_preference_spec.rb index 4937bf1d34..b565d827c8 100644 --- a/spec/models/column_preference_spec.rb +++ b/spec/models/column_preference_spec.rb @@ -56,4 +56,31 @@ describe ColumnPreference, type: :model do end end end + + describe "filtering default_preferences" do + let(:name_preference) { double(:name_preference) } + let(:schedules_preference) { double(:scheudles_preference) } + let(:default_preferences) { { name: name_preference, schedules: schedules_preference } } + context "when the action is order_cycles_index" do + let(:action_name) { "order_cycles_index" } + + context "and the user owns a standing-orders-enabled enterprise" do + let!(:enterprise) { create(:distributor_enterprise, enable_standing_orders: true) } + + it "removes the schedules column from the defaults" do + ColumnPreference.filter(default_preferences, enterprise.owner, action_name) + expect(default_preferences[:schedules]).to eq schedules_preference + end + end + + context "and the user does not own a standing-orders-enabled enterprise" do + let!(:enterprise) { create(:distributor_enterprise, enable_standing_orders: false) } + + it "removes the schedules column from the defaults" do + ColumnPreference.filter(default_preferences, enterprise.owner, action_name) + expect(default_preferences[:schedules]).to be nil + end + end + end + end end