From be2e4cbbef53cff2254ae14030274f15e2393239 Mon Sep 17 00:00:00 2001 From: Pau Perez Date: Fri, 30 Oct 2020 18:41:49 +0100 Subject: [PATCH] Track who performed the unvote --- .../decidim/consultations/question_votes_controller.rb | 2 +- .../consultations/question_votes_controller_spec.rb | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/overrides/controllers/decidim/consultations/question_votes_controller.rb b/app/overrides/controllers/decidim/consultations/question_votes_controller.rb index 02054b0c..e1476542 100644 --- a/app/overrides/controllers/decidim/consultations/question_votes_controller.rb +++ b/app/overrides/controllers/decidim/consultations/question_votes_controller.rb @@ -6,7 +6,7 @@ def destroy user = delegation.blank? ? current_user : delegation.granter - PaperTrail.request(enabled: delegation.present?) do + PaperTrail.request(enabled: delegation.present?, whodunnit: current_user.id) do Decidim::Consultations::UnvoteQuestion.call(current_question, user) do on(:ok) do current_question.reload diff --git a/spec/controllers/decidim/consultations/question_votes_controller_spec.rb b/spec/controllers/decidim/consultations/question_votes_controller_spec.rb index 984023d9..488e3e20 100644 --- a/spec/controllers/decidim/consultations/question_votes_controller_spec.rb +++ b/spec/controllers/decidim/consultations/question_votes_controller_spec.rb @@ -23,7 +23,7 @@ module Consultations context "when a delegation is specified", versioning: true do let(:delegation) { create(:delegation, setting: setting, grantee: user) } - before { create(:vote, author: delegation.granter, question: question) } + let!(:vote) { create(:vote, author: delegation.granter, question: question) } it "destroys the vote" do delete :destroy, params: { question_slug: question.slug, decidim_consultations_delegation_id: delegation.id }, format: :js @@ -35,6 +35,12 @@ module Consultations delete :destroy, params: { question_slug: question.slug, decidim_consultations_delegation_id: delegation.id }, format: :js end.to change(PaperTrail::Version, :count) end + + it "tracks who performed the unvote" do + delete :destroy, params: { question_slug: question.slug, decidim_consultations_delegation_id: delegation.id }, format: :js + version = vote.versions.last + expect(version.whodunnit).to eq(user.id.to_s) + end end context "when no delegation is specified", versioning: true do