From ca09a519411c4590b35b674f0107e6d3520c3bc2 Mon Sep 17 00:00:00 2001 From: Peter Bhat Harkins Date: Wed, 17 Apr 2024 10:19:53 -0500 Subject: [PATCH] fix for deleting flagged comments --- app/controllers/comments_controller.rb | 2 +- spec/requests/comments_spec.rb | 29 +++++++++++++++++++++++--- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/app/controllers/comments_controller.rb b/app/controllers/comments_controller.rb index 23363c964..5a093bb4d 100644 --- a/app/controllers/comments_controller.rb +++ b/app/controllers/comments_controller.rb @@ -394,7 +394,7 @@ def find_comment if @user && comment comment.current_vote = Vote.where(user_id: @user.id, story_id: comment.story_id, comment_id: comment.id).first - comment.vote_summary = Vote.comment_vote_summaries([comment.id]) + comment.vote_summary = Vote.comment_vote_summaries([comment.id])[comment.id] end comment diff --git a/spec/requests/comments_spec.rb b/spec/requests/comments_spec.rb index 224790fa9..c6b2e8bd3 100644 --- a/spec/requests/comments_spec.rb +++ b/spec/requests/comments_spec.rb @@ -3,12 +3,13 @@ require "rails_helper" describe "comments", type: :request do + let(:author) { create(:user) } + let(:comment) { create(:comment, user: author) } let(:user) { create(:user) } - let(:comment) { create(:comment) } - - before { sign_in user } describe "upvoting" do + before { sign_in user } + it "works" do expect(comment.score).to eq(1) expect(comment.reload.score).to eq(1) @@ -29,4 +30,26 @@ expect(Vote.where(user: user).count).to eq(0) end end + + describe "deleting" do + before { sign_in author } + + it "works" do + expect(comment.is_deletable_by_user?(author)).to be true + post "/comments/#{comment.short_id}/delete" + comment.reload + expect(comment.is_deleted).to be true + end + + it "works even if the comment is flagged" do + Vote.vote_thusly_on_story_or_comment_for_user_because( + -1, comment.story_id, comment.id, user.id, "T" + ) + expect(comment.is_deletable_by_user?(author)).to be true + puts comment.vote_summary, comment.vote_summary.class + post "/comments/#{comment.short_id}/delete" + comment.reload + expect(comment.is_deleted).to be true + end + end end