Skip to content

Commit 7250765

Browse files
authored
Merge pull request #29 from cacheventures/polymorphic-assoc-eager-loading-test-changes
Shortened and simplified tests
2 parents 777c36f + ab6d19b commit 7250765

File tree

1 file changed

+14
-31
lines changed

1 file changed

+14
-31
lines changed

spec/mongoid/includes/polymorphic_includes_spec.rb

Lines changed: 14 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -59,47 +59,34 @@
5959

6060
context 'eager loading polymorphic belongs_to associations with multiple concrete types' do
6161
before(:context) do
62-
class PolyRelated
62+
class Main
6363
include Mongoid::Document
64-
store_in collection: :poly_relateds
65-
end
66-
67-
class PolyMain
68-
include Mongoid::Document
69-
store_in collection: :poly_mains
70-
7164
belongs_to :related, polymorphic: true, optional: true
7265
end
7366

74-
class PolyTwo < PolyRelated
75-
has_one :parent, class_name: 'PolyMain', as: :related, inverse_of: :related
67+
class Related
68+
include Mongoid::Document
69+
has_one :parent, as: :related
7670
end
7771

78-
class PolyThree < PolyRelated
79-
has_one :parent, class_name: 'PolyMain', as: :related, inverse_of: :related
80-
end
72+
class Two < Related; end
73+
class Three < Related; end
8174
end
8275

8376
after(:context) do
84-
%i[PolyMain PolyTwo PolyThree PolyRelated].each do |const|
77+
%i[Main Related Two Three].each do |const|
8578
Object.send(:remove_const, const) if Object.const_defined?(const, false)
8679
end
8780
end
8881

8982
it 'loads the related documents for each concrete type without raising' do
90-
PolyMain.create!(related: PolyTwo.create!)
91-
PolyMain.create!(related: PolyThree.create!)
83+
Main.create!(related: Two.create!)
84+
Main.create!(related: Three.create!)
9285

9386
loaded = nil
94-
expect {
95-
loaded = PolyMain.includes(:related).entries
96-
}.not_to raise_error
97-
98-
expect(loaded.map { |doc| doc.related.class }).to match_array([PolyTwo, PolyThree])
99-
100-
expect {
101-
PolyMain.last.related.id
102-
}.not_to raise_error
87+
expect { loaded = Main.includes(:related).entries }.not_to raise_error
88+
expect(loaded.map { |doc| doc.related.class }).to match_array([Two, Three])
89+
expect { Main.last.related.id }.not_to raise_error
10390
end
10491
end
10592

@@ -131,15 +118,11 @@ class Main
131118
132119
class Related
133120
include Mongoid::Document
134-
end
135-
136-
class Two < Related
137121
has_one :parent, as: :related
138122
end
139123
140-
class Three < Related
141-
has_one :parent, as: :related
142-
end
124+
class Two < Related; end
125+
class Three < Related; end
143126
RUBY
144127

145128
init_script = base_script + <<~RUBY

0 commit comments

Comments
 (0)