diff --git a/app/models/sdg/process_enabled.rb b/app/models/sdg/process_enabled.rb index 67a17902a..29b567bcf 100644 --- a/app/models/sdg/process_enabled.rb +++ b/app/models/sdg/process_enabled.rb @@ -7,7 +7,7 @@ class SDG::ProcessEnabled end def enabled? - feature?("sdg") && feature?(process_name) && setting["sdg.process.#{process_name}"] + feature?("sdg") && feature?(process_name) && setting["sdg.process.#{process_name}"] && relatable? end def name @@ -39,4 +39,10 @@ class SDG::ProcessEnabled def module_name name.split("::").first end + + def relatable? + return true if controller_path_name? + + (SDG::Related::RELATABLE_TYPES & [record_or_name.class.name, record_or_name]).any? + end end diff --git a/spec/models/sdg/process_enabled_spec.rb b/spec/models/sdg/process_enabled_spec.rb index 9463e9ba8..5094b1d42 100644 --- a/spec/models/sdg/process_enabled_spec.rb +++ b/spec/models/sdg/process_enabled_spec.rb @@ -31,6 +31,12 @@ describe SDG::ProcessEnabled do expect(process).to be_enabled end + + it "returns false when record or name are not a relatable type" do + expect(SDG::ProcessEnabled.new(build(:legislation_proposal))).not_to be_enabled + expect(SDG::ProcessEnabled.new("Legislation::Proposal")).not_to be_enabled + expect(SDG::ProcessEnabled.new("officing/booth")).not_to be_enabled + end end context "SDG feature is disabled" do diff --git a/spec/system/legislation/proposals_spec.rb b/spec/system/legislation/proposals_spec.rb index 22c83211d..50162f2ae 100644 --- a/spec/system/legislation/proposals_spec.rb +++ b/spec/system/legislation/proposals_spec.rb @@ -226,7 +226,10 @@ describe "Legislation Proposals" do expect(page).to have_content "Open concert" end - scenario "Show proposal tags on show", :js do + scenario "Show proposal tags on show when SDG is enabled", :js do + Setting["feature.sdg"] = true + Setting["sdg.process.legislation"] = true + proposal = create(:legislation_proposal, process: process, tag_list: "Culture") visit legislation_process_proposal_path(proposal.process, proposal)