shard-kilt/spec/kilt/liquid_spec.cr
Davor Ocelic bfd630f35c Add liquid.cr support (#15)
* Add liquid.cr support

* Minor

* Add specs for passing custom context to Liquid

E.g.:

context = Liquid::Context.new
context.set "key", "value"
render( "/path/to/template.liquid", context)
2018-02-10 14:21:11 -05:00

31 lines
937 B
Crystal

require "../spec_helper"
require "../../src/liquid"
class LiquidView
@process = { "pid" => Process.pid }
Kilt.file "spec/fixtures/test.liquid"
end
class LiquidViewWithCustomContext
# Use of instance variable is not required in user code. It is used here to
# avoid name clash with 'context' variable existing within spec.
def initialize
@context = Liquid::Context.new
@context.set "process", { "pid" => Process.pid }
end
Kilt.file "spec/fixtures/test.liquid", "__kilt_io__", "@context"
end
it "renders liquid" do
ctx = Liquid::Context.new
ctx.set "process", { "pid" => Process.pid }
Kilt.render("spec/fixtures/test.liquid", ctx).should eq("<span>#{Process.pid}</span>\n")
end
it "works with classes" do
LiquidView.new.to_s.should eq("<span>#{Process.pid}</span>\n")
end
it "works with classes and custom context" do
LiquidViewWithCustomContext.new.to_s.should eq("<span>#{Process.pid}</span>\n")
end