diff --git a/app/controllers/moderation/reports_controller.rb b/app/controllers/moderation/reports_controller.rb index 7d29d1b2..78ee9f78 100644 --- a/app/controllers/moderation/reports_controller.rb +++ b/app/controllers/moderation/reports_controller.rb @@ -18,6 +18,10 @@ class Moderation::ReportsController < ApplicationController end end + def show + @report = Report.find(params[:id]) + end + private def filter_params diff --git a/app/views/moderation/reports/show.html.haml b/app/views/moderation/reports/show.html.haml new file mode 100644 index 00000000..2cc4df7d --- /dev/null +++ b/app/views/moderation/reports/show.html.haml @@ -0,0 +1,3 @@ += render "moderation/moderationbox", report: @report + +- parent_layout "moderation" \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 856d34af..1a3bfdcc 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -26,6 +26,7 @@ Rails.application.routes.draw do post "/moderation/unmask", to: "moderation#toggle_unmask", as: :moderation_toggle_unmask get "/moderation/blocks", to: "moderation/anonymous_block#index", as: :mod_anon_block_index get "/moderation/inbox/:user", to: "moderation/inbox#index", as: :mod_inbox_index + get "/moderation/report/:id", to: "moderation/reports#show", as: :moderation_report get "/moderation/reports(/:type)", to: "moderation/reports#index", as: :moderation_reports get "/moderation/questions/:author_identifier", to: "moderation/questions#show", as: :moderation_questions namespace :ajax do diff --git a/spec/controllers/moderation/reports_controller_spec.rb b/spec/controllers/moderation/reports_controller_spec.rb index daed0ab8..203bf92a 100644 --- a/spec/controllers/moderation/reports_controller_spec.rb +++ b/spec/controllers/moderation/reports_controller_spec.rb @@ -118,4 +118,43 @@ describe Moderation::ReportsController, type: :controller do end end end + + describe "#show" do + shared_examples_for "sets the expected ivars" do + let(:expected_assigns) { {} } + + it "sets the expected ivars" do + subject + + expected_assigns.each do |name, value| + expect(assigns[name]).to eq(value) + end + end + end + + context "template rendering" do + let(:other_user) { FactoryBot.create :user } + let(:report) { Report.create(user:, target_id: other_user.id, type: "Reports::User") } + + subject { get :show, params: { id: report.id } } + + before do + report + sign_in user + end + + it "renders the moderation/reports/show template" do + subject + expect(response).to render_template("moderation/reports/show") + end + + include_examples "sets the expected ivars" do + let(:expected_assigns) do + { + report: + } + end + end + end + end end