Project

seatbelt

0.01
Low commit activity in last 3 years
A long-lived project that still receives updates
Goal is to provide custom, high quality and high level assertions for Ruby and Ruby on Rails
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

 Project Readme

Seatbelt

Build Status Code Climate

Seatbelt provides a number of custom, high-level assertions for Ruby and Ruby on Rails. The assertions work well with Ruby 2.2.3.

Installation

Add this line to your application's Gemfile:

gem 'seatbelt'

And then execute:

$ bundle

Or install it yourself as:

$ gem install seatbelt

Usage

assert_json

Test your JSON strings

class MyActionTest < ActionController::TestCase
  include AssertJson

  def test_my_action
    get :my_action, :format => 'json'
    # => @response.body= '{"key":[{"inner_key1":"value1"},{"inner_key2":"value2"}]}'

    assert_json @response.body do
      has 'key' do
        has 'inner_key1', 'value1'
        has 'inner_key2', /lue2/
      end
      has_not 'key_not_included'
    end
  end

end

assert_mail

Test your Rails ActionMailer deliveries.

class MyTest < Test::Unit::TestCase

  def test_mail
    this_sends_an_email
    assert_mail :to => 'recipient@email.com', :subject => 'the subject'
  end

  def test_with_block
    assert_mail :to => 'recipient@email.com', :subject => 'the subject' do
      assert_mail :to => 'another@email.com', :subject => 'used as regular expression' do
        this_sends_two_emails
      end
    end
  end

  def test_the_mail_body
    assert_mail :to => 'recipient@email.com', :body => ['part 1', 'part 2'] do
      this_sends_an_email
    end
  end

  def test_the_full_mail
    assert_mail :from     => 'sender@email.com',
                :to       => 'recipient@email.com',
                :cc       => 'cc@email.com',
                :bcc      => 'bcc@email.com',
                :subject  => 'subject',
                :body     => ['part 1', 'part 2'] do
      this_sends_an_email
    end
  end

  def test_crosscheck
    refute_mail do
      this_should_not_send_an_email
    end
  end

  def test_other_crosscheck
    assert_no_mail :to => 'dontwantemails@email.com' do
      this_should_not_send_an_email
    end
  end

end

Changelog

Look at the CHANGELOG for details.

Authors

How to contribute

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request