diff --git a/app/controllers/schemes_controller.rb b/app/controllers/schemes_controller.rb index 2e21421f7..cfc6fe8a0 100644 --- a/app/controllers/schemes_controller.rb +++ b/app/controllers/schemes_controller.rb @@ -13,7 +13,7 @@ class SchemesController < ApplicationController def index redirect_to schemes_organisation_path(current_user.organisation) unless current_user.support? - all_visible_schemes = Scheme.all.visible + all_visible_schemes = Scheme.visible @pagy, @schemes = pagy(filter_manager.filtered_schemes(all_visible_schemes, search_term, session_filters)) @searched = search_term.presence diff --git a/spec/models/scheme_spec.rb b/spec/models/scheme_spec.rb index 2f1036c1a..9b663595c 100644 --- a/spec/models/scheme_spec.rb +++ b/spec/models/scheme_spec.rb @@ -304,6 +304,14 @@ RSpec.describe Scheme, type: :model do expect(scheme.status).to eq(:activating_soon) end end + + context "when scheme has discarded_at value" do + let(:scheme) { FactoryBot.create(:scheme, discarded_at: Time.zone.now) } + + it "returns deleted" do + expect(scheme.status).to eq(:deleted) + end + end end describe "status_at" do diff --git a/spec/requests/organisations_controller_spec.rb b/spec/requests/organisations_controller_spec.rb index 68de93c51..22d74470c 100644 --- a/spec/requests/organisations_controller_spec.rb +++ b/spec/requests/organisations_controller_spec.rb @@ -44,6 +44,7 @@ RSpec.describe OrganisationsController, type: :request do let(:user) { create(:user, :support) } let!(:schemes) { create_list(:scheme, 5) } let!(:same_org_scheme) { create(:scheme, owning_organisation: user.organisation) } + let!(:deleted_scheme) { create(:scheme, owning_organisation: user.organisation, discarded_at: Time.zone.yesterday) } before do allow(user).to receive(:need_two_factor_authentication?).and_return(false) @@ -131,6 +132,10 @@ RSpec.describe OrganisationsController, type: :request do end end + it "does not show deleted schemes" do + expect(page).not_to have_content(deleted_scheme.id_to_display) + end + context "when searching" do let!(:searched_scheme) { create(:scheme, owning_organisation: user.organisation) } let(:search_param) { searched_scheme.id } diff --git a/spec/requests/schemes_controller_spec.rb b/spec/requests/schemes_controller_spec.rb index 4c8df1e75..c33397983 100644 --- a/spec/requests/schemes_controller_spec.rb +++ b/spec/requests/schemes_controller_spec.rb @@ -56,6 +56,19 @@ RSpec.describe SchemesController, type: :request do end end + context "when there are deleted schemes" do + let!(:deleted_scheme) { create(:scheme, service_name: "deleted", discarded_at: Time.zone.yesterday, owning_organisation: user.organisation) } + + before do + get "/schemes" + end + + it "does not show deleted schemes" do + follow_redirect! + expect(page).not_to have_content(deleted_scheme.id_to_display) + end + end + context "when parent organisation has schemes" do let(:parent_organisation) { create(:organisation) } let!(:parent_schemes) { create_list(:scheme, 5, owning_organisation: parent_organisation) } @@ -191,6 +204,18 @@ RSpec.describe SchemesController, type: :request do expect(page).to have_content("Schemes") end + context "when there are deleted schemes" do + let!(:deleted_scheme) { create(:scheme, service_name: "deleted", discarded_at: Time.zone.yesterday, owning_organisation: user.organisation) } + + before do + get "/schemes" + end + + it "does not show deleted schemes" do + expect(page).not_to have_content(deleted_scheme.id_to_display) + end + end + describe "scheme and location csv downloads" do let!(:same_org_scheme) { create(:scheme, owning_organisation: user.organisation) } let!(:specific_organisation) { create(:organisation) }