From 3a147fcb885700fe7c1fc4392a2672f80d8f1c2c Mon Sep 17 00:00:00 2001 From: Jarek Radosz Date: Sat, 23 Apr 2022 01:31:36 +0200 Subject: [PATCH] FIX: Broken reviewable filter (#318) --- plugin.rb | 2 +- spec/models/reviewable_spec.rb | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 spec/models/reviewable_spec.rb diff --git a/plugin.rb b/plugin.rb index c1bac32..6ae51e0 100644 --- a/plugin.rb +++ b/plugin.rb @@ -661,7 +661,7 @@ after_initialize do results.joins(<<~SQL INNER JOIN posts p ON p.id = target_id INNER JOIN topics t ON t.id = p.topic_id - INNER JOIN assignments a ON a.topic_id = t.id AND a.assigned_to_type == 'User' + INNER JOIN assignments a ON a.topic_id = t.id AND a.assigned_to_type = 'User' INNER JOIN users u ON u.id = a.assigned_to_id SQL ) diff --git a/spec/models/reviewable_spec.rb b/spec/models/reviewable_spec.rb new file mode 100644 index 0000000..7452c97 --- /dev/null +++ b/spec/models/reviewable_spec.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +describe Reviewable do + fab!(:user) { Fabricate(:user) } + fab!(:admin) { Fabricate(:admin) } + fab!(:post1) { Fabricate(:post) } + fab!(:post2) { Fabricate(:post) } + fab!(:reviewable1) { Fabricate(:reviewable_flagged_post, target: post1) } + fab!(:reviewable2) { Fabricate(:reviewable_flagged_post, target: post2) } + + before do + SiteSetting.assign_enabled = true + end + + it "can filter by assigned_to" do + Assignment.create!(target: post1, topic_id: post1.topic.id, assigned_by_user: user, assigned_to: user) + Assignment.create!(target: post2, topic_id: post2.topic.id, assigned_by_user: user, assigned_to: admin) + + expect(Reviewable.list_for(admin, additional_filters: { assigned_to: user.username })).to eq([reviewable1]) + end +end