Skip to content

Instantly share code, notes, and snippets.

@aandis
Created August 18, 2017 04:05
Show Gist options
  • Save aandis/db896da4cfb68fe17a056588f05b5f5f to your computer and use it in GitHub Desktop.
Save aandis/db896da4cfb68fe17a056588f05b5f5f to your computer and use it in GitHub Desktop.
A standalone rails script for reproducing bugs in rails
require 'action_controller/railtie'
require 'minitest/autorun'
require 'rack/test'
class TestApp < Rails::Application
config.root = File.dirname(__FILE__)
config.session_store :cookie_store, key: 'cookie_store_key'
secrets.secret_token = 'secret_token'
secrets.secret_key_base = 'secret_key_base'
config.logger = Logger.new($stdout)
Rails.logger = config.logger
routes.draw do
get '/form' => 'forms#form'
end
end
class FormsController < ActionController::Base
include Rails.application.routes.url_helpers
include ActionView::Helpers::FormHelper
include ActionView::Context
def form
@ticket = Ticket.new(priority: Ticket.priorities['High'])
render html: form_for(@ticket) { |f| f.hidden_field :priority }
end
def tickets_path
'/form_path'
end
end
require 'active_record'
require 'logger'
ActiveRecord::Base.establish_connection(adapter: 'sqlite3', database: ':memory:')
ActiveRecord::Base.logger = Logger.new(STDOUT)
ActiveRecord::Schema.define do
create_table :tickets, force: true do |t|
t.integer "priority"
end
end
class Ticket < ActiveRecord::Base
enum priority: { 'High': 0, 'Middle': 1, 'Low': 2 }
end
require 'rails/test_help'
class FormsControllerTest < ActionController::TestCase
# tests FormController
# include Rack::Test::Methods
def test_returns_success
get :form
assert_includes response.body, 'High'
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