1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
|
# frozen_string_literal: true
# Released under the MIT License.
# Copyright, 2022-2023, by Samuel Williams.
require_relative 'helper'
require "rackup/lobster"
require 'rack/lint'
require 'rack/mock_request'
module LobsterHelpers
def lobster
Rack::MockRequest.new Rack::Lint.new(Rackup::Lobster.new)
end
def lambda_lobster
Rack::MockRequest.new Rack::Lint.new(Rackup::Lobster::LambdaLobster)
end
end
describe Rackup::Lobster::LambdaLobster do
include LobsterHelpers
it "be a single lambda" do
Rackup::Lobster::LambdaLobster.must_be_kind_of Proc
end
it "look like a lobster" do
res = lambda_lobster.get("/")
res.must_be :ok?
res.body.must_include "(,(,,(,,,("
res.body.must_include "?flip"
end
it "be flippable" do
res = lambda_lobster.get("/?flip")
res.must_be :ok?
res.body.must_include "(,,,(,,(,("
end
end
describe Rackup::Lobster do
include LobsterHelpers
it "look like a lobster" do
res = lobster.get("/")
res.must_be :ok?
res.body.must_include "(,(,,(,,,("
res.body.must_include "?flip"
res.body.must_include "crash"
end
it "be flippable" do
res = lobster.get("/?flip=left")
res.must_be :ok?
res.body.must_include "),,,),,),)"
end
it "provide crashing for testing purposes" do
lambda {
lobster.get("/?flip=crash")
}.must_raise RuntimeError
end
end
|