spec/compiler/context_blocks_spec.rb in curly-templates-2.3.1 vs spec/compiler/context_blocks_spec.rb in curly-templates-2.3.2

- old
+ new

@@ -1,53 +1,51 @@ -require 'spec_helper' - describe Curly::Compiler do include CompilationSupport - let(:presenter_class) do - Class.new(Curly::Presenter) do + it "compiles context blocks" do + define_presenter do def form(&block) "<form>".html_safe + block.call("yo") + "</form>".html_safe end - - def invalid - "uh oh!" - end end - end - let(:context_presenter_class) do - Class.new(Curly::Presenter) do + define_presenter "FormPresenter" do presents :form def text_field(&block) block.call(@form) end end - end - let(:inner_context_presenter_class) do - Class.new(Curly::Presenter) do + define_presenter "TextFieldPresenter" do presents :text_field def field %(<input type="text" value="#{@text_field.upcase}">).html_safe end end + + render('{{@form}}{{@text_field}}{{field}}{{/text_field}}{{/form}}').should == '<form><input type="text" value="YO"></form>' end - let(:context) { double("context") } - let(:presenter) { presenter_class.new(context, {}) } + it "fails if the component is not a context block" do + define_presenter do + def form + end + end - before do - stub_const("FormPresenter", context_presenter_class) - stub_const("TextFieldPresenter", inner_context_presenter_class) + expect { + render('{{@form}}{{/form}}') + }.to raise_exception(Curly::Error) end - it "compiles context blocks" do - evaluate('{{@form}}{{@text_field}}{{field}}{{/text_field}}{{/form}}').should == '<form><input type="text" value="YO"></form>' - end + it "fails if the component doesn't match a presenter class" do + define_presenter do + def dust(&block) + end + end - it "fails if the component is not a context block" do - expect { evaluate('{{@invalid}}yo{{/invalid}}') }.to raise_exception(Curly::Error) + expect { + render('{{@dust}}{{/dust}}') + }.to raise_exception(Curly::Error) end end