From 8123538c9495e80a5e208d89df3ec668a21e75b8 Mon Sep 17 00:00:00 2001 From: Martin Brennan Date: Mon, 2 Mar 2020 15:40:29 +1000 Subject: [PATCH] DEV: Minor review fixes and fix bookmark spec logging (#9045) As per: https://review.discourse.org/t/fix-never-allow-custom-emoji-to-be-marked-secure-8965/9072 https://review.discourse.org/t/feature-improving-bookmarks-part-2-topic-bookmarking-8954/9038 --- app/models/post.rb | 4 ++-- spec/tasks/bookmarks_spec.rb | 12 +++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/app/models/post.rb b/app/models/post.rb index c0d69eac993..7e56dfa66bc 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -918,8 +918,8 @@ class Post < ActiveRecord::Base if SiteSetting.secure_media? Upload.where( id: upload_ids, access_control_post_id: nil - ).where.not( - id: CustomEmoji.pluck(:upload_id) + ).where( + 'id NOT IN (SELECT upload_id FROM custom_emojis)' ).update_all( access_control_post_id: self.id ) diff --git a/spec/tasks/bookmarks_spec.rb b/spec/tasks/bookmarks_spec.rb index 16fea02f982..68f8588e0ba 100644 --- a/spec/tasks/bookmarks_spec.rb +++ b/spec/tasks/bookmarks_spec.rb @@ -17,8 +17,14 @@ RSpec.describe "bookmarks tasks" do create_post_actions_and_existing_bookmarks end + def invoke_task(args = nil) + capture_stdout do + Rake::Task['bookmarks:sync_to_table'].invoke(args) + end + end + it "migrates all PostActions" do - Rake::Task['bookmarks:sync_to_table'].invoke + invoke_task expect(Bookmark.all.count).to eq(3) end @@ -26,14 +32,14 @@ RSpec.describe "bookmarks tasks" do it "does not create bookmarks that already exist in the bookmarks table for a user" do Fabricate(:bookmark, user: user1, post: post1) - Rake::Task['bookmarks:sync_to_table'].invoke + invoke_task expect(Bookmark.all.count).to eq(3) expect(Bookmark.where(post: post1, user: user1).count).to eq(1) end it "respects the sync_limit if provided and stops creating bookmarks at the limit (so this can be run progrssively" do - Rake::Task['bookmarks:sync_to_table'].invoke(1) + invoke_task(1) expect(Bookmark.all.count).to eq(1) end