Sha256: 2f6b2984c13c2b50545ba82e63c2b1d1eb7f53efef420bc1f70d1aaed3fdb2f2

Contents?: true

Size: 1.6 KB

Versions: 1

Compression:

Stored size: 1.6 KB

Contents

# frozen_string_literal: true

require_relative "helper"
require_relative "../lib/tynn/render"
require "tilt/erubis"

class RenderTest < Minitest::Test
  VIEWS_PATH = File.expand_path("views", __dir__)

  def setup
    @app = Class.new(Tynn)

    @app.plugin(Tynn::Render, views: VIEWS_PATH)
  end

  def test_partial
    @app.define do
      on("partial") do
        res.write(partial("partial", name: "alice"))
      end
    end

    ts = Tynn::Test.new(@app)
    ts.get("/partial")

    assert_equal "alice", ts.res.body.strip
  end

  def test_view
    @app.define do
      on("view") do
        res.write(view("view", title: "welcome", name: "alice"))
      end
    end

    ts = Tynn::Test.new(@app)
    ts.get("/view")

    assert_equal "welcome / alice", ts.res.body.strip
  end

  def test_render
    @app.define do
      on("render") do
        render("view", title: "welcome", name: "alice")
      end
    end

    ts = Tynn::Test.new(@app)
    ts.get("/render")

    assert_equal "text/html", ts.res.content_type
    assert_equal "welcome / alice", ts.res.body.strip
  end

  def test_escaping
    @app.define do
      on("escape") do
        res.write(partial("partial", name: "<a></a>"))
      end
    end

    ts = Tynn::Test.new(@app)
    ts.get("/escape")

    assert_equal "&lt;a&gt;&lt;/a&gt;", ts.res.body.strip
  end

  def test_custom_layout
    @app.set(:render, layout: "custom_layout")

    @app.define do
      get do
        render("view", title: "welcome", name: "alice")
      end
    end

    ts = Tynn::Test.new(@app)
    ts.get("/")

    assert_equal "custom / welcome / alice", ts.res.body.strip
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
tynn-2.0.0.alpha test/render_test.rb