Skip to content

Instantly share code, notes, and snippets.

@tomazy
Created March 18, 2015 16:05
Show Gist options
  • Save tomazy/c6b975e18c458ef0505c to your computer and use it in GitHub Desktop.
Save tomazy/c6b975e18c458ef0505c to your computer and use it in GitHub Desktop.
unless File.exist?('Gemfile')
File.write('Gemfile', <<-GEMFILE)
source 'https://rubygems.org'
gem 'rails', '4.1.6'
gem 'rack'
gem 'pg', '0.17.1'
GEMFILE
system 'bundle'
end
require 'bundler'
Bundler.setup(:default)
require 'rails'
require 'action_controller/railtie'
require 'yaml'
class TestApp < Rails::Application
config.root = File.dirname(__FILE__)
config.session_store :cookie_store, key: 'cookie_store_key'
config.secret_token = 'secret_token'
config.secret_key_base = 'secret_key_base'
config.logger = Logger.new($stdout)
Rails.logger = config.logger
routes.draw do
get '/' => 'test#test'
end
end
class TestController < ActionController::Base
include Rails.application.routes.url_helpers
def test
render text: 'hello!'
end
end
require 'minitest/autorun'
require 'rack/test'
class BugTest < Minitest::Test
include Rack::Test::Methods
POST_DATA = {
"proposal" => {
"title" => "foo",
# "cover_photo" => Rack::Test::UploadedFile.new(File.open(File.join(Rails.root, 'Gemfile'))),
"profile_sections" => [
{"title" => "d", "content" => "e"},
{"title" => "f", "content" => "g"}
]
}
}
JSON_DATA = '{"some_scalar_attribute":"foo","some_array_of_scalars":["b","c"],"some_array_of_hashes_containing_scalars":[{"scalar_one":"d","scalar_two":"e"},{"scalar_one":"f","scalar_two":"g"}]}'
def test_returns_success
post '/', POST_DATA
assert last_response.ok?
assert_equal JSON_DATA, last_response.body
end
private
def app
Rails.application
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment