Sha256: f0f93917934635c864aae084a20745d44741fa4c89080f84a560b372069bc25b
Contents?: true
Size: 1.89 KB
Versions: 1
Compression:
Stored size: 1.89 KB
Contents
# frozen_string_literal: true require_relative "helper" class RoutingTest < Minitest::Test def setup @app = Class.new(Tynn) end def test_raise_if_not_handler assert_raises { @app.call({}) } end def test_path_matching @app.define do on "hello" do res.write("hello") end end ts = Tynn::Test.new(@app) ts.get("/") assert_equal 404, ts.res.status ts.get("/hello") assert_equal 200, ts.res.status assert_equal "hello", ts.res.body end def test_http_methods methods = %i(get post put patch delete head options) methods.each do |method| @app.define do send(method) { res.write(method) } end ts = Tynn::Test.new(@app) ts.send(method, "/") assert_equal 200, ts.res.status assert_equal method.to_s, ts.res.body end end def test_capturing_path @app.define do on(:foo) do |foo| on(:bar) do |bar| res.write(sprintf("%s/%s", foo, bar)) end end end ts = Tynn::Test.new(@app) ts.get("/john/doe") assert_equal 200, ts.res.status assert_equal "john/doe", ts.res.body end def test_composition foo = Class.new(@app) @app.define do on("foo") do run(foo, foo: 42) end end foo.define do get do res.write(inbox[:foo]) end end ts = Tynn::Test.new(@app) ts.get("/foo") assert_equal 200, ts.res.status assert_equal "42", ts.res.body end def test_request_class @app.define do get do res.write(req.class.name) end end ts = Tynn::Test.new(@app) ts.get("/") assert_equal Tynn::Request.name, ts.res.body end def test_response_class @app.define do get do res.write(res.class.name) end end ts = Tynn::Test.new(@app) ts.get("/") assert_equal Tynn::Response.name, ts.res.body end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tynn-2.0.0.alpha | test/routing_test.rb |