Skip to content

Commit 7b3dc64

Browse files
committed
added support for testing using rails 3.0 and rails 3.1 env
1 parent 6a1600e commit 7b3dc64

File tree

8 files changed

+59
-49
lines changed

8 files changed

+59
-49
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@
44
Gemfile.lock
55
.bundle
66
log
7+
gemfiles

Appraisals

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
appraise "rails3" do
2+
gem "rails", "~> 3.0.0"
3+
end
4+
5+
appraise "rails3_1" do
6+
gem "rails", "~> 3.1.0.rc4"
7+
end

Gemfile

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
source "http://rubygems.org"
1+
source "http://rubygems.org/"
22
gemspec
3+
gem 'sqlite3'
34
gem 'simple_form'
45
gem 'formtastic'
6+
gem 'rake'
7+
gem 'appraisal'

Rakefile

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
require 'rubygems'
2+
require 'appraisal'
23
require 'rake'
34
require 'rspec/core/rake_task'
45

lib/nested_form/builder_mixin.rb

+1-5
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,7 @@ def fields_for_with_nested_attributes(association_name, *args, block)
5353
block ||= Proc.new { |fields| @template.render(:partial => "#{association_name.to_s.singularize}_fields", :locals => {:f => fields}) }
5454
@fields ||= {}
5555
@fields[association_name] = block
56-
if Rails::VERSION::MAJOR >= 3 && Rails::VERSION::MINOR >= 1
57-
super(association_name, args.first, args.last, block)
58-
else
59-
super(association_name, *args, block)
60-
end
56+
super(association_name, *args, block)
6157
end
6258

6359
def fields_for_nested_model(name, object, options, block)

nested_form.gemspec

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ Gem::Specification.new do |s|
1010
s.files = Dir["{lib,spec}/**/*", "[A-Z]*"] - ["Gemfile.lock"]
1111
s.require_path = "lib"
1212

13-
s.add_development_dependency "rspec-rails", "~> 2.1.0"
13+
s.add_development_dependency "rspec-rails", "~> 2.6.0"
1414
s.add_development_dependency "mocha"
15-
s.add_development_dependency "rails", "~> 3.0.0"
15+
# s.add_development_dependency "rails", "~> 3.1.0.rc"
1616

1717
s.rubyforge_project = s.name
1818
s.required_rubygems_version = ">= 1.3.4"

spec/nested_form/view_helper_spec.rb

+14-14
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,45 @@
11
require "spec_helper"
22

33
describe NestedForm::ViewHelper do
4+
include RSpec::Rails::HelperExampleGroup
5+
46
before(:each) do
5-
@template = ActionView::Base.new
6-
@template.output_buffer = ""
7-
@template.stubs(:url_for).returns("")
8-
@template.stubs(:projects_path).returns("")
9-
@template.stubs(:protect_against_forgery?).returns(false)
7+
_routes.draw do
8+
resources :projects
9+
end
1010
end
1111

1212
it "should pass nested form builder to form_for along with other options" do
1313
pending
14-
mock.proxy(@template).form_for(:first, :as => :second, :other => :arg, :builder => NestedForm::Builder) do |form_html|
14+
mock.proxy(_view).form_for(:first, :as => :second, :other => :arg, :builder => NestedForm::Builder) do |form_html|
1515
form_html
1616
end
17-
@template.nested_form_for(:first, :as => :second, :other => :arg) {"form"}
17+
_view.nested_form_for(:first, :as => :second, :other => :arg) {"form"}
1818
end
1919

2020
it "should pass instance of NestedForm::Builder to nested_form_for block" do
21-
@template.nested_form_for(Project.new) do |f|
21+
_view.nested_form_for(Project.new) do |f|
2222
f.should be_instance_of(NestedForm::Builder)
2323
end
2424
end
2525

2626
it "should pass instance of NestedForm::SimpleBuilder to simple_nested_form_for block" do
27-
@template.simple_nested_form_for(Project.new) do |f|
27+
_view.simple_nested_form_for(Project.new) do |f|
2828
f.should be_instance_of(NestedForm::SimpleBuilder)
2929
end
3030
end
3131

3232
it "should pass instance of NestedForm::FormtasticBuilder to semantic_nested_form_for block" do
33-
@template.semantic_nested_form_for(Project.new) do |f|
33+
_view.semantic_nested_form_for(Project.new) do |f|
3434
f.should be_instance_of(NestedForm::FormtasticBuilder)
3535
end
3636
end
3737

3838
it "should append content to end of nested form" do
39-
@template.after_nested_form(:tasks) { @template.concat("123") }
40-
@template.after_nested_form(:milestones) { @template.concat("456") }
41-
@template.nested_form_for(Project.new) {}
42-
@template.output_buffer.should include("123456")
39+
_view.after_nested_form(:tasks) { _view.concat("123") }
40+
_view.after_nested_form(:milestones) { _view.concat("456") }
41+
_view.nested_form_for(Project.new) {}
42+
_view.output_buffer.should include("123456")
4343
end
4444
end
4545

spec/spec_helper.rb

+29-27
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,58 @@
11
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
22
$LOAD_PATH.unshift(File.dirname(__FILE__))
33
require "bundler/setup"
4+
require "rails"
45
Bundler.require(:default)
6+
require 'action_controller/railtie'
7+
require 'active_record'
58

6-
require "rails"
7-
require "nested_form"
9+
ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => ':memory:')
10+
ActiveRecord::Migration.verbose = false
811

912
# a fake app for initializing the railtie
1013
app = Class.new(Rails::Application)
1114
app.config.secret_token = "token"
1215
app.config.session_store :cookie_store, :key => "_myapp_session"
1316
app.config.active_support.deprecation = :log
17+
app.config.action_controller.perform_caching = false
1418
app.initialize!
1519

16-
require 'action_controller'
17-
require 'active_record'
1820
require 'rspec/rails'
19-
2021
RSpec.configure do |config|
2122
config.mock_with :mocha
2223
end
2324

24-
class TablelessModel < ActiveRecord::Base
25-
def self.columns() @columns ||= []; end
26-
27-
def self.column(name, sql_type = nil, default = nil, null = true)
28-
columns << ActiveRecord::ConnectionAdapters::Column.new(name.to_s, default, sql_type.to_s, null)
29-
end
30-
31-
def self.quoted_table_name
32-
name.pluralize.underscore
33-
end
34-
35-
def quoted_id
36-
"0"
25+
ActiveRecord::Schema.define do
26+
create_table :projects, :force => true do |t|
27+
t.string :name
3728
end
3829
end
39-
40-
class Project < TablelessModel
41-
column :name, :string
30+
class Project < ActiveRecord::Base
31+
# column :name, :string
4232
has_many :tasks
4333
accepts_nested_attributes_for :tasks
4434
end
4535

46-
class Task < TablelessModel
47-
column :project_id, :integer
48-
column :name, :string
36+
ActiveRecord::Schema.define do
37+
create_table :tasks, :force => true do |t|
38+
t.integer :project_id
39+
t.string :name
40+
end
41+
end
42+
class Task < ActiveRecord::Base
43+
# column :project_id, :integer
44+
# column :name, :string
4945
belongs_to :project
5046
end
5147

52-
class Milestone < TablelessModel
53-
column :task_id, :integer
54-
column :name, :string
48+
ActiveRecord::Schema.define do
49+
create_table :milestones, :force => true do |t|
50+
t.integer :task_id
51+
t.string :name
52+
end
53+
end
54+
class Milestone < ActiveRecord::Base
55+
# column :task_id, :integer
56+
# column :name, :string
5557
belongs_to :task
5658
end

0 commit comments

Comments
 (0)