Sha256: 97c7db5119f00d60382f105738fb578eb3a2977190d603a053cc9cc65c457f9c

Contents?: true

Size: 1.32 KB

Versions: 1

Compression:

Stored size: 1.32 KB

Contents

require "minitest/autorun"
require_relative '../../lib/simple/liquid'

class TestSimpleLiquid < Minitest::Test
  extend MiniTest::Spec::DSL

  @@counter = 0

  def self.it(&block)
    @@counter += 1

    define_method("test_#{@@counter}", &block)
  end

  def assert_raises_message(message, &block)
    error = nil

    begin
      block.call
    rescue => e
      error = e
    end

    assert_includes(error&.message.to_s, message)
  end

  before do
    @template = '{{ a }} {{ b }} {{ c }}'
    @object = { a: 1, b: 2, c: 3 }
  end

  it { assert_equal("1 2 3", Simple::Liquid.render(@template, @object)) }
  it { assert_equal("a", Simple::Liquid.render("a", @object)) }

  it do
    assert_raises_message("undefined variable d") do
      Simple::Liquid.render("{{ d }}", @object)
    end
  end

  it do
    assert_raises_message("undefined variable d, undefined variable e") do
      Simple::Liquid.render("{{ d }} {{ e }}", @object)
    end
  end

  it do
    assert_raises(Simple::Liquid::Error) do
      Simple::Liquid.render("{{ d | oops }}", @object)
    end
  end

  it do
    module MyPlusFilter
      def my_plus(original, value)
        original.to_i + value.to_i
      end
    end

    assert_equal(
      "2",
      Simple::Liquid.render(
        "{{ a | my_plus: 1 }}",
        { a: 1 },
        [MyPlusFilter]
      )
    )
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
simple-liquid-1.1.0 test/simple/liquid_test.rb