From 5ebeea7ed2f7cc1688c1e75552ae3a4303523b6e Mon Sep 17 00:00:00 2001 From: Isaac Hudson Date: Thu, 5 Oct 2023 21:15:25 -0700 Subject: [PATCH] issue 956 - unit test --- rails/spec/requests/home_request_spec.rb | 46 ++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/rails/spec/requests/home_request_spec.rb b/rails/spec/requests/home_request_spec.rb index ca88157be..71de1d578 100644 --- a/rails/spec/requests/home_request_spec.rb +++ b/rails/spec/requests/home_request_spec.rb @@ -20,5 +20,51 @@ expect(response).to redirect_to("/users/sign_in") end end + + context "orphaned stories" do + let(:community) { FactoryBot.create(:community, name: "Orphaned Community") } + let(:user) { FactoryBot.create(:user, community: community) } + let!(:place_1) { create(:place, community: community, region: "test place 1") } + let!(:place_2) { create(:place, community: community, region: "test place 2") } + let!(:speaker_1) { create(:speaker, community: community) } + let!(:speaker_2) { create(:speaker, community: community) } + let!(:story_1) do + create( + :story, + community: community, + places: [place_1], + speakers: [speaker_1], + desc: "This story should not be visible because it has no speaker", + permission_level: :anonymous + ) + end + let!(:story_2) do + create( + :story, + community: community, + places: [place_2], + speakers: [speaker_2], + desc: "This story should not be visible because it has no place", + permission_level: :anonymous + ) + end + + def json_response + JSON.parse(response.body) + end + + before do + login_as user + end + + it "excludes stories with no speaker and/or place" do + speaker_1.destroy + place_2.destroy + get "/home" + + expect(response.body).not_to include('This story should not be visible because it has no speaker') + expect(response.body).not_to include('This story should not be visible because it has no place') + end + end end end