spec/stache/asset_helper_spec.rb in stache-0.0.3 vs spec/stache/asset_helper_spec.rb in stache-0.1.0

- old
+ new

@@ -8,23 +8,42 @@ describe Stache::AssetHelper do def helper @helper ||= MyViewContext.new end - describe "template_include_tag" do + describe "#template_include_tag" do it "renders a script tag with the template contents" do + File.stub!(:file?).with(Rails.root.join("app/views/widgets/_oh_herro.html.mustache").to_s).and_return(true) File.stub!(:open).with(Rails.root.join("app/views/widgets/_oh_herro.html.mustache"), "rb"). and_return(StringIO.new("{{ awyeah }}")) helper.template_include_tag("widgets/oh_herro").should == "<script id=\"oh_herro_template\" type=\"text/html\">{{ awyeah }}</script>" end it "uses the template_base_path config setting to locate the template" do Stache.configure do |c| c.template_base_path = "/tmp/whee" end + File.stub!(:file?).with("/tmp/whee/_whooo.html.mustache").and_return(true) File.stub!(:open).with(Pathname.new("/tmp/whee/_whooo.html.mustache"), "rb"). and_return(StringIO.new("{{ awyeah }}")) helper.template_include_tag("whooo").should == "<script id=\"whooo_template\" type=\"text/html\">{{ awyeah }}</script>" + end + it "raises if it cannot find the template" do + -> { helper.template_include_tag("arrrgh") }.should raise_error(ActionView::MissingTemplate) + end + end + + describe "#locate_template_for" do + it "tries permutations of partial names and file extensions to find the requested file" do + File.should_receive(:file?).with("/tmp/whee/_whooo.html.mustache") + File.should_receive(:file?).with("/tmp/whee/_whooo.mustache") + File.should_receive(:file?).with("/tmp/whee/whooo.html.mustache") + File.should_receive(:file?).with("/tmp/whee/whooo.mustache").and_return(true) + + helper.locate_template_for(Pathname.new("/tmp/whee"), "whooo").should == Pathname.new("/tmp/whee/whooo.mustache") + end + it "returns nil if it cannot find anything" do + helper.locate_template_for(Pathname.new("/tmp/whee"), "whooo").should be_nil end end end \ No newline at end of file