From 303d2227cc680b543c8f9383246cd05d1cd4e7f9 Mon Sep 17 00:00:00 2001 From: Jarek Radosz Date: Mon, 15 Mar 2021 05:36:10 +0100 Subject: [PATCH] DEV: Fix `FakeLogger` spec issues (#12397) * DEV: Add `#level` and `#level=` to `FakeLogger` * DEV: Fix a leaky test --- spec/models/theme_spec.rb | 28 +++++++++++++++++----------- spec/support/fake_logger.rb | 1 + 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/spec/models/theme_spec.rb b/spec/models/theme_spec.rb index a37f2f2bba1..ef359c139a3 100644 --- a/spec/models/theme_spec.rb +++ b/spec/models/theme_spec.rb @@ -657,20 +657,26 @@ HTML end it 'warns when the theme has modified the setting type but data cannot be converted' do - Rails.logger = FakeLogger.new - theme.set_field(target: :settings, name: :yaml, value: "valid_json_schema_setting:\n default: \"\"\n type: \"list\"") - theme.save! + begin + @orig_logger = Rails.logger + Rails.logger = FakeLogger.new - setting = theme.settings.find { |s| s.name == :valid_json_schema_setting } - setting.value = "red,globe" - theme.save! + theme.set_field(target: :settings, name: :yaml, value: "valid_json_schema_setting:\n default: \"\"\n type: \"list\"") + theme.save! - theme.set_field(target: :settings, name: :yaml, value: "valid_json_schema_setting:\n default: \"\"\n type: \"string\"") - theme.save! + setting = theme.settings.find { |s| s.name == :valid_json_schema_setting } + setting.value = "red,globe" + theme.save! - theme.convert_settings - expect(setting.value).to eq("red,globe") - expect(Rails.logger.warnings[0]).to include("Theme setting type has changed but cannot be converted.") + theme.set_field(target: :settings, name: :yaml, value: "valid_json_schema_setting:\n default: \"\"\n type: \"string\"") + theme.save! + + theme.convert_settings + expect(setting.value).to eq("red,globe") + expect(Rails.logger.warnings[0]).to include("Theme setting type has changed but cannot be converted.") + ensure + Rails.logger = @orig_logger + end end end diff --git a/spec/support/fake_logger.rb b/spec/support/fake_logger.rb index 1e30bb2400b..c8fe4717552 100644 --- a/spec/support/fake_logger.rb +++ b/spec/support/fake_logger.rb @@ -2,6 +2,7 @@ class FakeLogger attr_reader :warnings, :errors, :infos, :fatals + attr_accessor :level def initialize @warnings = []