33 lines
892 B
Ruby
33 lines
892 B
Ruby
# frozen_string_literal: true
|
|
|
|
require "helper"
|
|
|
|
class TestLiquidExtensions < JekyllUnitTest
|
|
context "looking up a variable in a Liquid context" do
|
|
class SayHi < Liquid::Tag
|
|
include Jekyll::LiquidExtensions
|
|
|
|
def initialize(_tag_name, markup, _tokens)
|
|
@markup = markup.strip
|
|
end
|
|
|
|
def render(context)
|
|
"hi #{lookup_variable(context, @markup)}"
|
|
end
|
|
end
|
|
Liquid::Template.register_tag("say_hi", SayHi)
|
|
setup do
|
|
# Parses and compiles the template
|
|
@template = Liquid::Template.parse("{% say_hi page.name %}")
|
|
end
|
|
|
|
should "extract the var properly" do
|
|
assert_equal @template.render({ "page" => { "name" => "tobi" } }), "hi tobi"
|
|
end
|
|
|
|
should "return the variable name if the value isn't there" do
|
|
assert_equal @template.render({ "page" => { "title" => "tobi" } }), "hi page.name"
|
|
end
|
|
end
|
|
end
|