@@ -226,6 +226,29 @@ class SubNestedPresenter < Curly::Presenter
226226 expect ( cache_key ) . to eq "Foo::BarPresenter/42/Foo::BumPresenter/1337"
227227 end
228228
229+ it "includes the cache keys of all presenters in the dependency list" do
230+ presenter = Class . new ( Curly ::Presenter ) do
231+ version 42
232+ depends_on 'foo/bum'
233+ depends_on 'foo/aum'
234+ end
235+
236+ dependency = Class . new ( Curly ::Presenter ) do
237+ version 1337
238+ end
239+
240+ dependency_2 = Class . new ( Curly ::Presenter ) do
241+ version 1338
242+ end
243+
244+ stub_const ( "Foo::BarPresenter" , presenter )
245+ stub_const ( "Foo::BumPresenter" , dependency )
246+ stub_const ( "Foo::AumPresenter" , dependency_2 )
247+
248+ cache_key = Foo ::BarPresenter . cache_key
249+ expect ( cache_key ) . to eq "Foo::BarPresenter/42/Foo::AumPresenter/1338/Foo::BumPresenter/1337"
250+ end
251+
229252 it "uses the view path of a dependency if there is no presenter for it" do
230253 presenter = Class . new ( Curly ::Presenter ) do
231254 version 42
@@ -249,7 +272,14 @@ class SubNestedPresenter < Curly::Presenter
249272 Curly ::Presenter . dependencies
250273 parent = Class . new ( Curly ::Presenter ) { depends_on 'foo' }
251274 presenter = Class . new ( parent ) { depends_on 'bar' }
252- expect ( presenter . dependencies . to_a ) . to match_array [ 'foo' , 'bar' ]
275+ expect ( presenter . dependencies ) . to eq [ 'bar' , 'foo' ]
276+ end
277+
278+ it "doesn’t include duplicates" do
279+ Curly ::Presenter . dependencies
280+ parent = Class . new ( Curly ::Presenter ) { depends_on 'foo' }
281+ presenter = Class . new ( parent ) { depends_on 'bar' ; depends_on 'foo' }
282+ expect ( presenter . dependencies ) . to eq [ 'bar' , 'foo' ]
253283 end
254284 end
255285end
0 commit comments