diff --git a/lib/tiny_admin/settings.rb b/lib/tiny_admin/settings.rb index 84b43ed..0f7d0ce 100644 --- a/lib/tiny_admin/settings.rb +++ b/lib/tiny_admin/settings.rb @@ -91,10 +91,9 @@ def load_settings end def reset! - saved_authorization_class = @options ? @options[:authorization_class] : nil @options = { - sections: [], - authorization_class: saved_authorization_class + components: {}, + sections: [] } @store = nil @loaded = false diff --git a/spec/dummy_rails/app/models/post.rb b/spec/dummy_rails/app/models/post.rb index 6f1b89f..f036761 100644 --- a/spec/dummy_rails/app/models/post.rb +++ b/spec/dummy_rails/app/models/post.rb @@ -24,6 +24,10 @@ class Post < ApplicationRecord # "<<<#{super}>>>" # end + def to_s + "#{title} - #{dt}" + end + def short_title(**args) title.truncate(args[:count] || 10) end diff --git a/spec/features/plugins/authorization_spec.rb b/spec/features/plugins/authorization_spec.rb index c532e44..1d159b0 100644 --- a/spec/features/plugins/authorization_spec.rb +++ b/spec/features/plugins/authorization_spec.rb @@ -6,16 +6,9 @@ RSpec.describe "Authorization plugin", type: :feature do let(:root_content) { "Latest authors\nLatest posts" } - around do |example| + before do TinyAdmin.settings.load_settings - prev_value = TinyAdmin.settings.authorization_class TinyAdmin.settings.authorization_class = some_class - example.run - ensure - TinyAdmin.settings.authorization_class = prev_value - end - - before do visit "/admin" log_in end diff --git a/spec/lib/tiny_admin/configure_spec.rb b/spec/lib/tiny_admin/configure_spec.rb index 0cd07f1..f54cb0d 100644 --- a/spec/lib/tiny_admin/configure_spec.rb +++ b/spec/lib/tiny_admin/configure_spec.rb @@ -6,17 +6,6 @@ RSpec.describe "TinyAdmin.configure" do # rubocop:disable RSpec/DescribeClass let(:settings) { TinyAdmin::Settings.instance } - around do |example| - saved = settings.instance_variable_get(:@options)&.deep_dup - saved_store = settings.instance_variable_get(:@store) - saved_loaded = settings.instance_variable_get(:@loaded) - example.run - ensure - settings.instance_variable_set(:@options, saved) - settings.instance_variable_set(:@store, saved_store) - settings.instance_variable_set(:@loaded, saved_loaded) - end - it "yields settings to the block" do yielded = nil TinyAdmin.configure { |s| yielded = s } diff --git a/spec/lib/tiny_admin/settings_spec.rb b/spec/lib/tiny_admin/settings_spec.rb index 1e4509a..78a4de6 100644 --- a/spec/lib/tiny_admin/settings_spec.rb +++ b/spec/lib/tiny_admin/settings_spec.rb @@ -6,18 +6,6 @@ RSpec.describe TinyAdmin::Settings do let(:settings) { described_class.instance } - # Save and restore the internal options state around each test - around do |example| - saved_options = settings.instance_variable_get(:@options)&.deep_dup - saved_store = settings.instance_variable_get(:@store) - saved_loaded = settings.instance_variable_get(:@loaded) - example.run - ensure - settings.instance_variable_set(:@options, saved_options) - settings.instance_variable_set(:@store, saved_store) - settings.instance_variable_set(:@loaded, saved_loaded) - end - describe "#reset!" do it "clears all options" do settings[:root_path] = "/custom" diff --git a/spec/lib/tiny_admin/utils_prepare_page_spec.rb b/spec/lib/tiny_admin/utils_prepare_page_spec.rb index 8b37ac7..c845620 100644 --- a/spec/lib/tiny_admin/utils_prepare_page_spec.rb +++ b/spec/lib/tiny_admin/utils_prepare_page_spec.rb @@ -7,16 +7,8 @@ let(:utils_instance) { Class.new { include TinyAdmin::Utils }.new } let(:settings) { TinyAdmin::Settings.instance } - around do |example| - saved = settings.instance_variable_get(:@options)&.deep_dup - saved_store = settings.instance_variable_get(:@store) - saved_loaded = settings.instance_variable_get(:@loaded) + before do settings.load_settings - example.run - ensure - settings.instance_variable_set(:@options, saved) - settings.instance_variable_set(:@store, saved_store) - settings.instance_variable_set(:@loaded, saved_loaded) end it "returns an instance of the given page class" do diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 85e21ef..dca3960 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -31,7 +31,6 @@ config.include_context "Capybara helpers" config.before(:each, type: :feature) do - TinyAdmin.settings.reset! TinyAdmin.configure_from_file(Rails.root.join("config/tiny_admin.yml")) end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index d99f68f..a5648b5 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -23,4 +23,8 @@ config.mock_with :rspec do |mocks| mocks.verify_partial_doubles = true end + + config.before do + TinyAdmin.settings.reset! + end end