Skip to content

Commit 1c81a1c

Browse files
committed
Add tests on ActiveRecord::Base.polymorphic_name method
1 parent a0a4356 commit 1c81a1c

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

.rubocop.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,5 +55,8 @@ RSpec/ExampleLength:
5555
RSpec/MultipleExpectations:
5656
Max: 5
5757

58+
RSpec/NestedGroups:
59+
Max: 4
60+
5861
RSpec/NotToNot:
5962
EnforcedStyle: to_not

spec/store_base_sti_class_spec.rb

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,33 @@
33
require 'spec_helper'
44

55
RSpec.describe StoreBaseSTIClass do
6+
describe 'methods' do
7+
describe 'ActiveRecord::Base.polymorphic_name' do
8+
context 'when store_base_sti_class is true (default for backward compatibility)' do
9+
it 'returns the parent class' do
10+
expect(ActiveRecord::Base.store_base_sti_class).to be true
11+
expect(SpecialPost.polymorphic_name).to eq 'Post'
12+
end
13+
end
14+
15+
context 'when store_base_sti_class is false' do
16+
before do
17+
@old_store_base_sti_class = ActiveRecord::Base.store_base_sti_class
18+
ActiveRecord::Base.store_base_sti_class = false
19+
end
20+
21+
after do
22+
ActiveRecord::Base.store_base_sti_class = @old_store_base_sti_class # rubocop:disable RSpec/InstanceVariable
23+
end
24+
25+
it 'returns the actual class' do
26+
expect(ActiveRecord::Base.store_base_sti_class).to be false
27+
expect(SpecialPost.polymorphic_name).to eq 'SpecialPost'
28+
end
29+
end
30+
end
31+
end
32+
633
describe 'behavior' do
734
before do
835
@old_store_base_sti_class = ActiveRecord::Base.store_base_sti_class

0 commit comments

Comments
 (0)