From 20f3be1e9c19a5cec233e16a9579dd503d749e69 Mon Sep 17 00:00:00 2001 From: Jarek Radosz Date: Fri, 20 Mar 2020 16:18:34 +0100 Subject: [PATCH] DEV: Use the `type: :multisite` spec setting (#9245) Fixes recent spec flakiness. Also includes: DEV: Prevent accidental exit from specs --- spec/requests/uploads_controller_spec.rb | 5 +--- spec/services/inline_uploads_spec.rb | 36 ++++++++++-------------- spec/tasks/redis_spec.rb | 8 +----- spec/tasks/uploads_spec.rb | 2 +- 4 files changed, 18 insertions(+), 33 deletions(-) diff --git a/spec/requests/uploads_controller_spec.rb b/spec/requests/uploads_controller_spec.rb index 1577695f35f..e7d66b1ee74 100644 --- a/spec/requests/uploads_controller_spec.rb +++ b/spec/requests/uploads_controller_spec.rb @@ -401,10 +401,7 @@ describe UploadsController do expect(response.code).to eq("403") end - context "when running on a multisite connection" do - before do - Rails.configuration.multisite = true - end + context "when running on a multisite connection", type: :multisite do it "redirects to the signed_url_for_path with the multisite DB name in the url" do freeze_time get upload.short_path diff --git a/spec/services/inline_uploads_spec.rb b/spec/services/inline_uploads_spec.rb index a087024369a..b5bf7ded434 100644 --- a/spec/services/inline_uploads_spec.rb +++ b/spec/services/inline_uploads_spec.rb @@ -691,30 +691,24 @@ RSpec.describe InlineUploads do MD end - it "should correct image URLs in multisite" do - begin - Rails.configuration.multisite = true + it "should correct image URLs in multisite", type: :multisite do + md = <<~MD + https:#{upload2.url} https:#{upload2.url} + #{URI.join(SiteSetting.s3_cdn_url, URI.parse(upload2.url).path).to_s} - md = <<~MD - https:#{upload2.url} https:#{upload2.url} - #{URI.join(SiteSetting.s3_cdn_url, URI.parse(upload2.url).path).to_s} + some image + some image + + MD - some image - some image - - MD + expect(InlineUploads.process(md)).to eq(<<~MD) + #{Discourse.base_url}#{upload2.short_path} #{Discourse.base_url}#{upload2.short_path} + #{Discourse.base_url}#{upload2.short_path} - expect(InlineUploads.process(md)).to eq(<<~MD) - #{Discourse.base_url}#{upload2.short_path} #{Discourse.base_url}#{upload2.short_path} - #{Discourse.base_url}#{upload2.short_path} - - ![some image](#{upload.short_url}) - ![some image](#{upload2.short_url}) - ![](#{upload3.short_url}) - MD - ensure - Rails.configuration.multisite = false - end + ![some image](#{upload.short_url}) + ![some image](#{upload2.short_url}) + ![](#{upload3.short_url}) + MD end end end diff --git a/spec/tasks/redis_spec.rb b/spec/tasks/redis_spec.rb index dd9a20f65c3..4e22801ab22 100644 --- a/spec/tasks/redis_spec.rb +++ b/spec/tasks/redis_spec.rb @@ -2,19 +2,13 @@ require 'rails_helper' -RSpec.describe "Redis rake tasks" do +RSpec.describe "Redis rake tasks", type: :multisite do let(:redis) { Discourse.redis.without_namespace } before do - @multisite = Rails.configuration.multisite - Rails.configuration.multisite = true Discourse::Application.load_tasks end - after do - Rails.configuration.multisite = @multisite - end - describe 'clean up' do it 'should clean up orphan Redis keys' do active_keys = [ diff --git a/spec/tasks/uploads_spec.rb b/spec/tasks/uploads_spec.rb index 21c769a0925..15afad903cd 100644 --- a/spec/tasks/uploads_spec.rb +++ b/spec/tasks/uploads_spec.rb @@ -43,7 +43,7 @@ RSpec.describe "tasks/uploads" do context "when the store is internal" do it "does nothing; this is for external store only" do Upload.expects(:transaction).never - invoke_task + expect { invoke_task }.to raise_error(SystemExit) end end