diff --git a/app/controllers/budgets/groups_controller.rb b/app/controllers/budgets/groups_controller.rb index 5ad4a4392..b0aebafad 100644 --- a/app/controllers/budgets/groups_controller.rb +++ b/app/controllers/budgets/groups_controller.rb @@ -1,6 +1,8 @@ module Budgets class GroupsController < ApplicationController include InvestmentFilters + include FeatureFlags + feature_flag :budgets before_action :load_budget before_action :load_group diff --git a/app/controllers/budgets/stats_controller.rb b/app/controllers/budgets/stats_controller.rb index 0bbd86e5f..33480238d 100644 --- a/app/controllers/budgets/stats_controller.rb +++ b/app/controllers/budgets/stats_controller.rb @@ -1,5 +1,8 @@ module Budgets class StatsController < ApplicationController + include FeatureFlags + feature_flag :budgets + before_action :load_budget authorize_resource :budget diff --git a/app/controllers/management/budgets/investments_controller.rb b/app/controllers/management/budgets/investments_controller.rb index 1108c1997..b15bc3071 100644 --- a/app/controllers/management/budgets/investments_controller.rb +++ b/app/controllers/management/budgets/investments_controller.rb @@ -1,5 +1,8 @@ class Management::Budgets::InvestmentsController < Management::BaseController include Translatable + include FeatureFlags + feature_flag :budgets + before_action :load_budget load_resource :budget diff --git a/spec/controllers/budgets/groups_controller_spec.rb b/spec/controllers/budgets/groups_controller_spec.rb index 9d2187511..dce9bc2f1 100644 --- a/spec/controllers/budgets/groups_controller_spec.rb +++ b/spec/controllers/budgets/groups_controller_spec.rb @@ -4,6 +4,14 @@ describe Budgets::GroupsController do describe "GET show" do let(:group) { create(:budget_group) } + it "raises an exception when the feature is disabled" do + Setting["process.budgets"] = false + + expect do + get :show, params: { budget_id: group.budget.id, id: group.id } + end.to raise_exception(FeatureFlags::FeatureDisabled) + end + it "raises an error if budget slug is not found" do expect do get :show, params: { budget_id: "wrong_budget", id: group.id } diff --git a/spec/controllers/budgets/stats_controller_spec.rb b/spec/controllers/budgets/stats_controller_spec.rb index 9927a0cfb..4b9019909 100644 --- a/spec/controllers/budgets/stats_controller_spec.rb +++ b/spec/controllers/budgets/stats_controller_spec.rb @@ -2,6 +2,14 @@ require "rails_helper" describe Budgets::StatsController do describe "GET show" do + it "raises an exception when the feature is disabled" do + Setting["process.budgets"] = false + + expect do + get :show, params: { budget_id: create(:budget).id } + end.to raise_exception(FeatureFlags::FeatureDisabled) + end + it "raises an error if budget slug is not found" do expect do get :show, params: { budget_id: "wrong_budget" } diff --git a/spec/controllers/management/budgets/investments_controller_spec.rb b/spec/controllers/management/budgets/investments_controller_spec.rb index d310681e1..c262ee16d 100644 --- a/spec/controllers/management/budgets/investments_controller_spec.rb +++ b/spec/controllers/management/budgets/investments_controller_spec.rb @@ -8,6 +8,16 @@ describe Management::Budgets::InvestmentsController do login_managed_user(create(:user, :level_two)) end + describe "GET index" do + it "raises an exception when the feature is disabled" do + Setting["process.budgets"] = false + + expect do + get :index, params: { budget_id: create(:budget).id } + end.to raise_exception(FeatureFlags::FeatureDisabled) + end + end + describe "GET show" do let(:investment) { create(:budget_investment) }