diff options
Diffstat (limited to 'spec/parser_spec.rb')
-rw-r--r-- | spec/parser_spec.rb | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/spec/parser_spec.rb b/spec/parser_spec.rb index 941887d..ead3315 100644 --- a/spec/parser_spec.rb +++ b/spec/parser_spec.rb @@ -96,6 +96,10 @@ describe "Parser" do "INTEGER{#{string}}" end + def boolean(string) + "BOOLEAN{#{string}}" + end + def hash(*pairs) "HASH{" + pairs.map {|k,v| "#{k}=#{v}" }.join(", ") + "}" end @@ -138,6 +142,14 @@ describe "Parser" do mustache id("foo"), [], hash(["bar", integer("1")]) end + ast_for("{{foo bar=true}}").should == program do + mustache id("foo"), [], hash(["bar", boolean("true")]) + end + + ast_for("{{foo bar=false}}").should == program do + mustache id("foo"), [], hash(["bar", boolean("false")]) + end + ast_for("{{foo bar=baz bat=bam}}").should == program do mustache id("foo"), [], hash(["bar", "ID:baz"], ["bat", "ID:bam"]) end @@ -153,6 +165,14 @@ describe "Parser" do ast_for("{{foo omg bar=baz bat=\"bam\" baz=1}}").should == program do mustache id("foo"), [id("omg")], hash(["bar", id("baz")], ["bat", string("bam")], ["baz", integer("1")]) end + + ast_for("{{foo omg bar=baz bat=\"bam\" baz=true}}").should == program do + mustache id("foo"), [id("omg")], hash(["bar", id("baz")], ["bat", string("bam")], ["baz", boolean("true")]) + end + + ast_for("{{foo omg bar=baz bat=\"bam\" baz=false}}").should == program do + mustache id("foo"), [id("omg")], hash(["bar", id("baz")], ["bat", string("bam")], ["baz", boolean("false")]) + end end it "parses mustaches with string parameters" do @@ -163,6 +183,11 @@ describe "Parser" do ast_for("{{foo 1}}").should == program { mustache id("foo"), [integer("1")] } end + it "parses mustaches with BOOLEAN parameters" do + ast_for("{{foo true}}").should == program { mustache id("foo"), [boolean("true")] } + ast_for("{{foo false}}").should == program { mustache id("foo"), [boolean("false")] } + end + it "parses contents followed by a mustache" do ast_for("foo bar {{baz}}").should == program do content "foo bar " |