From cb6318583742a5f2f331146b640b08b051700cf1 Mon Sep 17 00:00:00 2001 From: taitus Date: Wed, 11 Nov 2020 19:46:06 +0100 Subject: [PATCH] Render SDG content sidebar when sdg feature setting is enabled --- .../sdg_management/base_controller.rb | 3 ++ app/views/shared/_admin_login_items.html.erb | 2 +- spec/system/sdg_management/goals_spec.rb | 2 ++ spec/system/sdg_management/sdg_spec.rb | 31 +++++++++++++++++++ 4 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 spec/system/sdg_management/sdg_spec.rb diff --git a/app/controllers/sdg_management/base_controller.rb b/app/controllers/sdg_management/base_controller.rb index a5028f7d0..4fcfb39be 100644 --- a/app/controllers/sdg_management/base_controller.rb +++ b/app/controllers/sdg_management/base_controller.rb @@ -1,4 +1,7 @@ class SDGManagement::BaseController < ApplicationController + include FeatureFlags + feature_flag :sdg + layout "admin" before_action :authenticate_user! diff --git a/app/views/shared/_admin_login_items.html.erb b/app/views/shared/_admin_login_items.html.erb index 32c70fe73..5c764ebf5 100644 --- a/app/views/shared/_admin_login_items.html.erb +++ b/app/views/shared/_admin_login_items.html.erb @@ -33,7 +33,7 @@ <% end %> - <% if current_user.administrator? %> + <% if feature?(:sdg) && current_user.administrator? %>
  • <%= link_to t("sdg_management.header.title"), sdg_management_root_path %>
  • diff --git a/spec/system/sdg_management/goals_spec.rb b/spec/system/sdg_management/goals_spec.rb index 6ceca8107..77d508853 100644 --- a/spec/system/sdg_management/goals_spec.rb +++ b/spec/system/sdg_management/goals_spec.rb @@ -5,6 +5,8 @@ describe "Goals", :js do describe "Index" do scenario "Visit the index" do + Setting["feature.sdg"] = true + visit sdg_management_root_path within("#side_menu") do diff --git a/spec/system/sdg_management/sdg_spec.rb b/spec/system/sdg_management/sdg_spec.rb new file mode 100644 index 000000000..6f5dd5d37 --- /dev/null +++ b/spec/system/sdg_management/sdg_spec.rb @@ -0,0 +1,31 @@ +require "rails_helper" + +describe "SDG Management" do + before { login_as(create(:administrator).user) } + + context "SDG feature flag is enabled", :js do + before { Setting["feature.sdg"] = true } + + scenario "shows the SDG content link" do + visit root_path + click_link "Menu" + + expect(page).to have_link "SDG content" + end + end + + context "SDG feature is disabled" do + before { Setting["feature.sdg"] = false } + + scenario "does not show the SDG Content link", :js do + visit root_path + click_link "Menu" + + expect(page).not_to have_link "SDG content" + end + + scenario "does not allow visits to the SDG content" do + expect { visit sdg_management_root_path }.to raise_exception(FeatureFlags::FeatureDisabled) + end + end +end