Skip to content

Instantly share code, notes, and snippets.

@mbhnyc
Created October 16, 2012 01:08
Show Gist options
  • Save mbhnyc/3896719 to your computer and use it in GitHub Desktop.
Save mbhnyc/3896719 to your computer and use it in GitHub Desktop.
Sample test suite for an API
ENV["RAILS_ENV"] = "test"
require File.expand_path('../../config/environment', __FILE__)
require "minitest/autorun"
require "minitest/rails"
require "minitest/rails/capybara"
require "database_cleaner"
require "factory_girl"
require "carrierwave/test/matchers"
class MiniTest::Rails::ActiveSupport::TestCase
include FactoryGirl::Syntax::Methods
include CarrierWave::Test::Matchers
end
class MiniTest::Rails::ActionController::TestCase
include ActiveSupport::Testing::SetupAndTeardown
include Rails.application.routes.url_helpers
include Capybara::DSL
include Capybara::RSpecMatchers
end
MiniTest::Rails.override_testunit!
DatabaseCleaner.strategy = :truncation
require "minitest_helper"
describe SessionsController do
# default_version 1
before(:all) do
@users = create_list(:user, 2)
@session = create(:session, user: @users[0])
@users.each { |u| u.generate_token }
@role = create(:role)
@project = create(:project, user: @users[0])
end
it "should get index" do
get :index, {version: 1, token: @users[0].access_token }
assert_response :success
end
it "should get show" do
get :show, {version: 1, id: @session.id, token: @users[0].access_token }
assert_response :success
end
it "should get connections" do
@users[0].connect
@session.add_member(@users[0], @role)
get :connections, {version: 1, id: @session.id, token: @users[0].access_token }
assert_response :success
@users[0].disconnect
end
it "should be able to create" do
post :create, { version: 1, token: @users[0].access_token, session: { name: "test", project_id: @project.id, proposed_start_time: Time.now} }
assert_response :success
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment