fork of spec-kemal for https://gitdab.com/luna/kemal
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Luna 8042202628 Merge remote-tracking branch 'upstream/master' 2 weeks ago
spec update kemal version 4 years ago
src Bump to 1.0.0 6 months ago
.gitignore Follow crystal 1.0.0 (#20) 7 months ago
.travis.yml First commit 6 years ago
LICENSE First commit 6 years ago
README.md added section about Kemal.config.always_rescue (#22) 2 weeks ago
shard.yml Merge remote-tracking branch 'upstream/master' 5 months ago

README.md

spec-kemal

Kemal helpers to Crystal's spec for easy testing.

Installation

Add it to your shard.yml.

name: your-kemal-app
version: 0.1.0

dependencies:
  spec-kemal:
    github: kemalcr/spec-kemal
    branch: master
  kemal:
    github: kemalcr/kemal
    branch: master

Usage

Just require it before your files in your spec/spec_helper.cr

require "spec-kemal"
require "../src/your-kemal-app"

Your Kemal application

# src/your-kemal-app.cr

require "kemal"

get "/" do
  "Hello World!"
end

Kemal.run

Now you can easily test your Kemal application in your specs.

KEMAL_ENV=test crystal spec
# spec/your-kemal-app-spec.cr

describe "Your::Kemal::App" do

  # You can use get,post,put,patch,delete to call the corresponding route.
  it "renders /" do
    get "/"
    response.body.should eq "Hello World!"
  end

end

Rescue errors

Errors gets rescued by default which results in the Kemal's exception page is rendered.
This may not always be the desired behaviour, e.g. when a JSON parsing error occurs one might expect "[]" and not Kemal's exception page.

Set Kemal.config.always_rescue = false to prevent this behaviour and raise errors instead.

Contributing

  1. Fork it ( https://github.com/kemalcr/spec-kemal/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors