Skip to content

Commit f0259f0

Browse files
authored
Merge pull request #67 from blocknotes/fix-reset-settings-2
fix: Properly reset settings
2 parents d1770fc + 752682c commit f0259f0

File tree

8 files changed

+12
-44
lines changed

8 files changed

+12
-44
lines changed

lib/tiny_admin/settings.rb

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,9 @@ def load_settings
9191
end
9292

9393
def reset!
94-
saved_authorization_class = @options ? @options[:authorization_class] : nil
9594
@options = {
96-
sections: [],
97-
authorization_class: saved_authorization_class
95+
components: {},
96+
sections: []
9897
}
9998
@store = nil
10099
@loaded = false

spec/dummy_rails/app/models/post.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ class Post < ApplicationRecord
2424
# "<<<#{super}>>>"
2525
# end
2626

27+
def to_s
28+
"#{title} - #{dt}"
29+
end
30+
2731
def short_title(**args)
2832
title.truncate(args[:count] || 10)
2933
end

spec/features/plugins/authorization_spec.rb

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,9 @@
66
RSpec.describe "Authorization plugin", type: :feature do
77
let(:root_content) { "Latest authors\nLatest posts" }
88

9-
around do |example|
9+
before do
1010
TinyAdmin.settings.load_settings
11-
prev_value = TinyAdmin.settings.authorization_class
1211
TinyAdmin.settings.authorization_class = some_class
13-
example.run
14-
ensure
15-
TinyAdmin.settings.authorization_class = prev_value
16-
end
17-
18-
before do
1912
visit "/admin"
2013
log_in
2114
end

spec/lib/tiny_admin/configure_spec.rb

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,6 @@
66
RSpec.describe "TinyAdmin.configure" do # rubocop:disable RSpec/DescribeClass
77
let(:settings) { TinyAdmin::Settings.instance }
88

9-
around do |example|
10-
saved = settings.instance_variable_get(:@options)&.deep_dup
11-
saved_store = settings.instance_variable_get(:@store)
12-
saved_loaded = settings.instance_variable_get(:@loaded)
13-
example.run
14-
ensure
15-
settings.instance_variable_set(:@options, saved)
16-
settings.instance_variable_set(:@store, saved_store)
17-
settings.instance_variable_set(:@loaded, saved_loaded)
18-
end
19-
209
it "yields settings to the block" do
2110
yielded = nil
2211
TinyAdmin.configure { |s| yielded = s }

spec/lib/tiny_admin/settings_spec.rb

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,6 @@
66
RSpec.describe TinyAdmin::Settings do
77
let(:settings) { described_class.instance }
88

9-
# Save and restore the internal options state around each test
10-
around do |example|
11-
saved_options = settings.instance_variable_get(:@options)&.deep_dup
12-
saved_store = settings.instance_variable_get(:@store)
13-
saved_loaded = settings.instance_variable_get(:@loaded)
14-
example.run
15-
ensure
16-
settings.instance_variable_set(:@options, saved_options)
17-
settings.instance_variable_set(:@store, saved_store)
18-
settings.instance_variable_set(:@loaded, saved_loaded)
19-
end
20-
219
describe "#reset!" do
2210
it "clears all options" do
2311
settings[:root_path] = "/custom"

spec/lib/tiny_admin/utils_prepare_page_spec.rb

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,8 @@
77
let(:utils_instance) { Class.new { include TinyAdmin::Utils }.new }
88
let(:settings) { TinyAdmin::Settings.instance }
99

10-
around do |example|
11-
saved = settings.instance_variable_get(:@options)&.deep_dup
12-
saved_store = settings.instance_variable_get(:@store)
13-
saved_loaded = settings.instance_variable_get(:@loaded)
10+
before do
1411
settings.load_settings
15-
example.run
16-
ensure
17-
settings.instance_variable_set(:@options, saved)
18-
settings.instance_variable_set(:@store, saved_store)
19-
settings.instance_variable_set(:@loaded, saved_loaded)
2012
end
2113

2214
it "returns an instance of the given page class" do

spec/rails_helper.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
config.include_context "Capybara helpers"
3232

3333
config.before(:each, type: :feature) do
34-
TinyAdmin.settings.reset!
3534
TinyAdmin.configure_from_file(Rails.root.join("config/tiny_admin.yml"))
3635
end
3736
end

spec/spec_helper.rb

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,8 @@
2323
config.mock_with :rspec do |mocks|
2424
mocks.verify_partial_doubles = true
2525
end
26+
27+
config.before do
28+
TinyAdmin.settings.reset!
29+
end
2630
end

0 commit comments

Comments
 (0)