spec/views/specs/specs.html.erb_spec.rb in konacha-0.9.1 vs spec/views/specs/specs.html.erb_spec.rb in konacha-0.10.0
- old
+ new
@@ -11,10 +11,23 @@
Konacha.should_receive(:mode).any_number_of_times { :runner }
render
rendered.should have_css("script[src='/assets/konacha/runner.js']")
end
+ def asset_double(asset_name, dependencies = [])
+ asset = double("asset called '#{asset_name}'")
+ asset.stub(:to_a).and_return([dependencies, asset].flatten)
+ asset.stub(:logical_path).and_return(asset_name)
+ view.asset_paths.stub(:asset_for).with(asset_name, "js").and_return(asset)
+ asset
+ end
+
+ def spec_double(asset_name, dependencies = [])
+ asset_double(asset_name, dependencies)
+ double("spec called '#{asset_name}'", :asset_name => asset_name)
+ end
+
let(:dependency) { asset_double("dependency") }
it "renders a script tag for each spec in @specs" do
assign(:specs, [spec_double("a_spec"),
spec_double("b_spec")])
@@ -39,7 +52,19 @@
spec_double("b_spec", [dependency])])
render
rendered.should have_selector("script[src='/assets/dependency.js?body=1']", :count => 1)
+ end
+
+ it "renders only one script tag for dependencies of dependencies" do
+ dependency_a = asset_double("dependency_a")
+ dependency_b = asset_double("dependency_b", [dependency_a])
+
+ assign(:specs, [spec_double("a_spec", [dependency_a, dependency_b])])
+
+ render
+
+ rendered.should have_selector("script[src='/assets/dependency_a.js?body=1']", :count => 1)
+ rendered.should have_selector("script[src='/assets/dependency_b.js?body=1']", :count => 1)
end
end