rspec-rails 1.2.6 → 1.2.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.rdoc +27 -2
- data/Manifest.txt +3 -2
- data/Rakefile +5 -6
- data/TODO.txt +17 -0
- data/Upgrade.rdoc +11 -0
- data/generators/integration_spec/integration_spec_generator.rb +10 -0
- data/generators/integration_spec/templates/integration_spec.rb +4 -0
- data/generators/rspec/templates/rcov.opts +1 -1
- data/generators/rspec/templates/rspec.rake +27 -12
- data/generators/rspec/templates/spec_helper.rb +5 -1
- data/generators/rspec_controller/templates/helper_spec.rb +1 -1
- data/generators/rspec_controller/templates/view_spec.rb +1 -1
- data/generators/rspec_default_values.rb +11 -2
- data/generators/rspec_model/templates/model_spec.rb +1 -3
- data/generators/rspec_scaffold/rspec_scaffold_generator.rb +7 -3
- data/generators/rspec_scaffold/templates/controller_spec.rb +8 -8
- data/generators/rspec_scaffold/templates/edit_erb_spec.rb +2 -4
- data/generators/rspec_scaffold/templates/helper_spec.rb +2 -2
- data/generators/rspec_scaffold/templates/index_erb_spec.rb +1 -2
- data/generators/rspec_scaffold/templates/new_erb_spec.rb +2 -4
- data/generators/rspec_scaffold/templates/routing_spec.rb +16 -16
- data/generators/rspec_scaffold/templates/show_erb_spec.rb +0 -1
- data/lib/autotest/discover.rb +5 -1
- data/lib/spec/rails.rb +0 -2
- data/lib/spec/rails/example.rb +1 -0
- data/lib/spec/rails/example/controller_example_group.rb +22 -2
- data/lib/spec/rails/example/functional_example_group.rb +22 -0
- data/lib/spec/rails/example/integration_example_group.rb +16 -0
- data/lib/spec/rails/example/render_observer.rb +15 -2
- data/lib/spec/rails/extensions/spec/matchers/have.rb +4 -4
- data/lib/spec/rails/matchers/ar_be_valid.rb +33 -31
- data/lib/spec/rails/matchers/change.rb +9 -7
- data/lib/spec/rails/matchers/render_template.rb +10 -1
- data/lib/spec/rails/spec_server.rb +3 -0
- data/lib/spec/rails/version.rb +4 -3
- data/spec/resources/controllers/controller_spec_controller.rb +5 -2
- data/spec/spec/rails/example/controller_isolation_spec.rb +7 -1
- data/spec/spec/rails/extensions/action_view_base_spec.rb +42 -16
- data/spec/spec/rails/matchers/errors_on_spec.rb +14 -2
- data/spec/spec/rails/matchers/have_text_spec.rb +0 -1
- data/spec/spec/rails/matchers/render_template_spec.rb +11 -1
- data/spec/spec/rails/spec_server_spec.rb +2 -1
- metadata +12 -11
- data/features/step_definitions/people.rb +0 -6
- data/features/support/env.rb +0 -13
data/History.rdoc
CHANGED
@@ -1,3 +1,26 @@
|
|
1
|
+
=== Version 1.2.7 / 2009-06-22
|
2
|
+
|
3
|
+
* enhancements
|
4
|
+
* alias :stub!, :stub so rspec-rails extensions of rspec stubs can use the
|
5
|
+
same syntax as rspec (core)
|
6
|
+
* integration specs (Ben Mabey and David Chelimsky)
|
7
|
+
* added support for references and belongs_to generated model specs (José
|
8
|
+
Valim). Closes #792.
|
9
|
+
* add discovery for autotest-rails to keep compatible with ZenTest-4.0.0
|
10
|
+
(Ryan Davis). Closes #838.
|
11
|
+
* controller specs in isolation mode don't care whether the file exists
|
12
|
+
anymore!
|
13
|
+
|
14
|
+
* bug fixes
|
15
|
+
* allow rspec-rails to work without ActiveRecord. Closes #810.
|
16
|
+
* fix bug with have() matcher failure message (Dave Giunta). Closes #818.
|
17
|
+
* fix bug where render_template('new') would pass if 'newer' was rendered
|
18
|
+
(or anything that started with 'new')
|
19
|
+
|
20
|
+
* deprecations
|
21
|
+
* spec_server is now deprecated - use spork instead (gem install spork).
|
22
|
+
Closes #827.
|
23
|
+
|
1
24
|
=== Version 1.2.6 / 2009-04-30
|
2
25
|
|
3
26
|
* bug fixes
|
@@ -13,7 +36,8 @@
|
|
13
36
|
* Fixed a small typo that makes rake stats fail (José Valim). Closes #802.
|
14
37
|
* link_to and friends are available to ViewExampleGroup again
|
15
38
|
(J.B. Rainsberger). Closes #787.
|
16
|
-
* spec_server works correctly with rails 2.3 again (Neil Buckley). Closes
|
39
|
+
* spec_server works correctly with rails 2.3 again (Neil Buckley). Closes
|
40
|
+
#759.
|
17
41
|
|
18
42
|
=== Version 1.2.4 / 2009-03-13
|
19
43
|
|
@@ -40,7 +64,8 @@ See Upgrade.rdoc for information about upgrading to rspec-rails-1.2.1
|
|
40
64
|
* more cleanup of internals (reducing dependency on rspec-core)
|
41
65
|
* don't require config/environments more than once
|
42
66
|
* autotest includes spec/routing directory (Matt Peterson). Closes #739.
|
43
|
-
* display helpful messages when installing rspec-rails running
|
67
|
+
* display helpful messages when installing rspec-rails running
|
68
|
+
script/generate rspec
|
44
69
|
* thanks for Dr Nic for the pointers
|
45
70
|
* restored require 'rubygems' where needed
|
46
71
|
* export NO_RUBYGEMS=true if you don't use rubygems
|
data/Manifest.txt
CHANGED
@@ -6,8 +6,8 @@ README.rdoc
|
|
6
6
|
Rakefile
|
7
7
|
TODO.txt
|
8
8
|
Upgrade.rdoc
|
9
|
-
|
10
|
-
|
9
|
+
generators/integration_spec/integration_spec_generator.rb
|
10
|
+
generators/integration_spec/templates/integration_spec.rb
|
11
11
|
generators/rspec/CHANGES
|
12
12
|
generators/rspec/rspec_generator.rb
|
13
13
|
generators/rspec/templates/previous_failures.txt
|
@@ -45,6 +45,7 @@ lib/spec/rails/example/controller_example_group.rb
|
|
45
45
|
lib/spec/rails/example/cookies_proxy.rb
|
46
46
|
lib/spec/rails/example/functional_example_group.rb
|
47
47
|
lib/spec/rails/example/helper_example_group.rb
|
48
|
+
lib/spec/rails/example/integration_example_group.rb
|
48
49
|
lib/spec/rails/example/model_example_group.rb
|
49
50
|
lib/spec/rails/example/render_observer.rb
|
50
51
|
lib/spec/rails/example/routing_example_group.rb
|
data/Rakefile
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -*- ruby -*-
|
2
|
-
gem 'hoe', '>=
|
2
|
+
gem 'hoe', '>=2.0.0'
|
3
3
|
require 'hoe'
|
4
4
|
require './lib/spec/rails/version'
|
5
5
|
require 'cucumber/rake/task'
|
@@ -8,13 +8,14 @@ $:.unshift(File.join(File.dirname(__FILE__), "/../rspec/lib"))
|
|
8
8
|
|
9
9
|
require 'spec/rake/spectask'
|
10
10
|
|
11
|
-
Hoe.
|
11
|
+
Hoe.spec('rspec-rails') do |p|
|
12
|
+
p.version = Spec::Rails::VERSION::STRING
|
12
13
|
p.summary = Spec::Rails::VERSION::SUMMARY
|
13
14
|
p.description = "Behaviour Driven Development for Ruby on Rails."
|
14
15
|
p.rubyforge_name = 'rspec'
|
15
16
|
p.developer('RSpec Development Team', 'rspec-devel@rubyforge.org')
|
16
|
-
p.extra_deps = [["rspec","1.2.
|
17
|
-
p.extra_dev_deps = [["cucumber",">= 0.
|
17
|
+
p.extra_deps = [["rspec",">=1.2.7"],["rack",">=0.4.0"]]
|
18
|
+
p.extra_dev_deps = [["cucumber",">= 0.3.11"]]
|
18
19
|
p.remote_rdoc_dir = "rspec-rails/#{Spec::Rails::VERSION::STRING}"
|
19
20
|
p.history_file = 'History.rdoc'
|
20
21
|
p.readme_file = 'README.rdoc'
|
@@ -58,8 +59,6 @@ task :release => [:clean, :package] do |t|
|
|
58
59
|
end
|
59
60
|
end
|
60
61
|
|
61
|
-
Spec::Rake::SpecTask.new
|
62
|
-
|
63
62
|
Cucumber::Rake::Task.new
|
64
63
|
|
65
64
|
task :default => [:features]
|
data/TODO.txt
CHANGED
@@ -1 +1,18 @@
|
|
1
1
|
* delegate params_from to assert_recognizes
|
2
|
+
* wiki
|
3
|
+
* need a matrix of which rspec-rails versions support which rails versions
|
4
|
+
* CI
|
5
|
+
* need a robust CI setup that runs
|
6
|
+
* Multiple rubies
|
7
|
+
* MRI: 1.8.6
|
8
|
+
* MRI: 1.8.9
|
9
|
+
* MRI: 1.9.1
|
10
|
+
* JRuby
|
11
|
+
* IronRuby??? (perhaps using mono)
|
12
|
+
* Multiple rails-es
|
13
|
+
* 2.0.5
|
14
|
+
* 2.1.2
|
15
|
+
* 2.2.2
|
16
|
+
* 2.3.2
|
17
|
+
* 3.0 (once available)
|
18
|
+
* With and without ActiveRecord
|
data/Upgrade.rdoc
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
= Upgrade to 1.2.7
|
2
|
+
|
3
|
+
== What's changed
|
4
|
+
|
5
|
+
=== spec_server is deprecated
|
6
|
+
|
7
|
+
spec_server is deprecated in favor of Tim Harper's new spork library
|
8
|
+
(http://github.com/timcharper/spork). Get it. Use it. Love it.
|
9
|
+
|
10
|
+
gem install spork
|
11
|
+
|
1
12
|
= Upgrade to 1.2.0-1.2.6
|
2
13
|
|
3
14
|
== What's changed
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../rspec_default_values'
|
2
|
+
|
3
|
+
class IntegrationSpecGenerator < ModelGenerator
|
4
|
+
def manifest
|
5
|
+
record do |m|
|
6
|
+
m.class_collisions class_path, class_name
|
7
|
+
m.template 'integration_spec.rb', File.join('spec/integration', class_path, "#{class_name.tableize}_spec.rb")
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -1,2 +1,2 @@
|
|
1
|
-
--exclude "spec/*,gems/*"
|
1
|
+
--exclude "spec/*,gems/*"
|
2
2
|
--rails
|
@@ -1,6 +1,19 @@
|
|
1
1
|
gem 'test-unit', '1.2.3' if RUBY_VERSION.to_f >= 1.9
|
2
|
+
rspec_gem_dir = nil
|
3
|
+
Dir["#{RAILS_ROOT}/vendor/gems/*"].each do |subdir|
|
4
|
+
rspec_gem_dir = subdir if subdir.gsub("#{RAILS_ROOT}/vendor/gems/","") =~ /^(\w+-)?rspec-(\d+)/ && File.exist?("#{subdir}/lib/spec/rake/spectask.rb")
|
5
|
+
end
|
2
6
|
rspec_plugin_dir = File.expand_path(File.dirname(__FILE__) + '/../../vendor/plugins/rspec')
|
3
|
-
|
7
|
+
|
8
|
+
if rspec_gem_dir && (test ?d, rspec_plugin_dir)
|
9
|
+
raise "\n#{'*'*50}\nYou have rspec installed in both vendor/gems and vendor/plugins\nPlease pick one and dispose of the other.\n#{'*'*50}\n\n"
|
10
|
+
end
|
11
|
+
|
12
|
+
if rspec_gem_dir
|
13
|
+
$LOAD_PATH.unshift("#{rspec_gem_dir}/lib")
|
14
|
+
elsif File.exist?(rspec_plugin_dir)
|
15
|
+
$LOAD_PATH.unshift("#{rspec_plugin_dir}/lib")
|
16
|
+
end
|
4
17
|
|
5
18
|
# Don't load rspec if running "rake gems:*"
|
6
19
|
unless ARGV.any? {|a| a =~ /^gems/}
|
@@ -44,14 +57,14 @@ task :stats => "spec:statsetup"
|
|
44
57
|
desc "Run all specs in spec directory (excluding plugin specs)"
|
45
58
|
Spec::Rake::SpecTask.new(:spec => spec_prereq) do |t|
|
46
59
|
t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]
|
47
|
-
t.spec_files = FileList['spec
|
60
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
48
61
|
end
|
49
62
|
|
50
63
|
namespace :spec do
|
51
64
|
desc "Run all specs in spec directory with RCov (excluding plugin specs)"
|
52
65
|
Spec::Rake::SpecTask.new(:rcov) do |t|
|
53
66
|
t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]
|
54
|
-
t.spec_files = FileList['spec
|
67
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
55
68
|
t.rcov = true
|
56
69
|
t.rcov_opts = lambda do
|
57
70
|
IO.readlines("#{RAILS_ROOT}/spec/rcov.opts").map {|l| l.chomp.split " "}.flatten
|
@@ -61,16 +74,16 @@ namespace :spec do
|
|
61
74
|
desc "Print Specdoc for all specs (excluding plugin specs)"
|
62
75
|
Spec::Rake::SpecTask.new(:doc) do |t|
|
63
76
|
t.spec_opts = ["--format", "specdoc", "--dry-run"]
|
64
|
-
t.spec_files = FileList['spec
|
77
|
+
t.spec_files = FileList['spec/**/*_spec.rb']
|
65
78
|
end
|
66
79
|
|
67
80
|
desc "Print Specdoc for all plugin examples"
|
68
81
|
Spec::Rake::SpecTask.new(:plugin_doc) do |t|
|
69
82
|
t.spec_opts = ["--format", "specdoc", "--dry-run"]
|
70
|
-
t.spec_files = FileList['vendor/plugins/**/spec
|
83
|
+
t.spec_files = FileList['vendor/plugins/**/spec/**/*_spec.rb'].exclude('vendor/plugins/rspec/*')
|
71
84
|
end
|
72
85
|
|
73
|
-
[:models, :controllers, :views, :helpers, :lib].each do |sub|
|
86
|
+
[:models, :controllers, :views, :helpers, :lib, :integration].each do |sub|
|
74
87
|
desc "Run the code examples in spec/#{sub}"
|
75
88
|
Spec::Rake::SpecTask.new(sub => spec_prereq) do |t|
|
76
89
|
t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]
|
@@ -81,14 +94,14 @@ namespace :spec do
|
|
81
94
|
desc "Run the code examples in vendor/plugins (except RSpec's own)"
|
82
95
|
Spec::Rake::SpecTask.new(:plugins => spec_prereq) do |t|
|
83
96
|
t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]
|
84
|
-
t.spec_files = FileList['vendor/plugins/**/spec
|
97
|
+
t.spec_files = FileList['vendor/plugins/**/spec/**/*_spec.rb'].exclude('vendor/plugins/rspec/*').exclude("vendor/plugins/rspec-rails/*")
|
85
98
|
end
|
86
99
|
|
87
100
|
namespace :plugins do
|
88
101
|
desc "Runs the examples for rspec_on_rails"
|
89
102
|
Spec::Rake::SpecTask.new(:rspec_on_rails) do |t|
|
90
103
|
t.spec_opts = ['--options', "\"#{RAILS_ROOT}/spec/spec.opts\""]
|
91
|
-
t.spec_files = FileList['vendor/plugins/rspec-rails/spec
|
104
|
+
t.spec_files = FileList['vendor/plugins/rspec-rails/spec/**/*_spec.rb']
|
92
105
|
end
|
93
106
|
end
|
94
107
|
|
@@ -101,12 +114,14 @@ namespace :spec do
|
|
101
114
|
::STATS_DIRECTORIES << %w(Helper\ specs spec/helpers) if File.exist?('spec/helpers')
|
102
115
|
::STATS_DIRECTORIES << %w(Library\ specs spec/lib) if File.exist?('spec/lib')
|
103
116
|
::STATS_DIRECTORIES << %w(Routing\ specs spec/routing) if File.exist?('spec/routing')
|
117
|
+
::STATS_DIRECTORIES << %w(Integration\ specs spec/integration) if File.exist?('spec/integration')
|
104
118
|
::CodeStatistics::TEST_TYPES << "Model specs" if File.exist?('spec/models')
|
105
119
|
::CodeStatistics::TEST_TYPES << "View specs" if File.exist?('spec/views')
|
106
120
|
::CodeStatistics::TEST_TYPES << "Controller specs" if File.exist?('spec/controllers')
|
107
121
|
::CodeStatistics::TEST_TYPES << "Helper specs" if File.exist?('spec/helpers')
|
108
122
|
::CodeStatistics::TEST_TYPES << "Library specs" if File.exist?('spec/lib')
|
109
123
|
::CodeStatistics::TEST_TYPES << "Routing specs" if File.exist?('spec/routing')
|
124
|
+
::CodeStatistics::TEST_TYPES << "Integration specs" if File.exist?('spec/integration')
|
110
125
|
end
|
111
126
|
|
112
127
|
namespace :db do
|
@@ -116,7 +131,7 @@ namespace :spec do
|
|
116
131
|
ActiveRecord::Base.establish_connection(Rails.env)
|
117
132
|
base_dir = File.join(Rails.root, 'spec', 'fixtures')
|
118
133
|
fixtures_dir = ENV['FIXTURES_DIR'] ? File.join(base_dir, ENV['FIXTURES_DIR']) : base_dir
|
119
|
-
|
134
|
+
|
120
135
|
require 'active_record/fixtures'
|
121
136
|
(ENV['FIXTURES'] ? ENV['FIXTURES'].split(/,/).map {|f| File.join(fixtures_dir, f) } : Dir.glob(File.join(fixtures_dir, '*.{yml,csv}'))).each do |fixture_file|
|
122
137
|
Fixtures.create_fixtures(File.dirname(fixture_file), File.basename(fixture_file, '.*'))
|
@@ -127,7 +142,7 @@ namespace :spec do
|
|
127
142
|
|
128
143
|
namespace :server do
|
129
144
|
daemonized_server_pid = File.expand_path("#{RAILS_ROOT}/tmp/pids/spec_server.pid")
|
130
|
-
|
145
|
+
|
131
146
|
desc "start spec_server."
|
132
147
|
task :start do
|
133
148
|
if File.exist?(daemonized_server_pid)
|
@@ -145,14 +160,14 @@ namespace :spec do
|
|
145
160
|
$stderr.puts "No server running."
|
146
161
|
else
|
147
162
|
$stderr.puts "Shutting down spec_server ..."
|
148
|
-
system("kill", "-s", "TERM", File.read(daemonized_server_pid).strip) &&
|
163
|
+
system("kill", "-s", "TERM", File.read(daemonized_server_pid).strip) &&
|
149
164
|
File.delete(daemonized_server_pid)
|
150
165
|
end
|
151
166
|
end
|
152
167
|
|
153
168
|
desc "restart spec_server."
|
154
169
|
task :restart => [:stop, :start]
|
155
|
-
|
170
|
+
|
156
171
|
desc "check if spec server is running"
|
157
172
|
task :status do
|
158
173
|
if File.exist?(daemonized_server_pid)
|
@@ -5,6 +5,10 @@ require File.dirname(__FILE__) + "/../config/environment" unless defined?(RAILS_
|
|
5
5
|
require 'spec/autorun'
|
6
6
|
require 'spec/rails'
|
7
7
|
|
8
|
+
# Requires supporting files with custom matchers and macros, etc,
|
9
|
+
# in ./support/ and its subdirectories.
|
10
|
+
Dir["#{File.dirname(__FILE)}/support/**/*.rb"].each {|f| require f}
|
11
|
+
|
8
12
|
Spec::Runner.configure do |config|
|
9
13
|
# If you're not using ActiveRecord you should remove these
|
10
14
|
# lines, delete config/database.yml and disable :active_record
|
@@ -42,6 +46,6 @@ Spec::Runner.configure do |config|
|
|
42
46
|
# config.mock_with :rr
|
43
47
|
#
|
44
48
|
# == Notes
|
45
|
-
#
|
49
|
+
#
|
46
50
|
# For more information take a look at Spec::Runner::Configuration and Spec::Runner
|
47
51
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
require File.expand_path(File.dirname(__FILE__) + '<%= '/..' * class_nesting_depth %>/../spec_helper')
|
2
2
|
|
3
3
|
describe <%= class_name %>Helper do
|
4
|
-
|
4
|
+
|
5
5
|
#Delete this example and add some real ones or delete this file
|
6
6
|
it "should be included in the object returned by #helper" do
|
7
7
|
included_modules = (class << helper; self; end).send :included_modules
|
@@ -4,7 +4,7 @@ describe "/<%= class_name.underscore %>/<%= action %>" do
|
|
4
4
|
before(:each) do
|
5
5
|
render '<%= class_name.underscore %>/<%= action %>'
|
6
6
|
end
|
7
|
-
|
7
|
+
|
8
8
|
#Delete this example and add some real ones or delete this file
|
9
9
|
it "should tell you where to find the file" do
|
10
10
|
response.should have_tag('p', %r[Find me in app/views/<%= class_name.underscore %>/<%= action %>])
|
@@ -10,10 +10,19 @@ module Rails
|
|
10
10
|
when :date then "Date.today"
|
11
11
|
when :string, :text then "\"value for #{@name}\""
|
12
12
|
when :boolean then "false"
|
13
|
+
when :belongs_to, :references then "1"
|
13
14
|
else
|
14
15
|
""
|
15
|
-
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def name_or_reference
|
20
|
+
if ::Rails::VERSION::STRING >= '2.2'
|
21
|
+
reference? ? :"#{name}_id" : name
|
22
|
+
else
|
23
|
+
name
|
24
|
+
end
|
16
25
|
end
|
17
26
|
end
|
18
27
|
end
|
19
|
-
end
|
28
|
+
end
|
@@ -3,9 +3,7 @@ require File.expand_path(File.dirname(__FILE__) + '<%= '/..' * class_nesting_dep
|
|
3
3
|
describe <%= class_name %> do
|
4
4
|
before(:each) do
|
5
5
|
@valid_attributes = {
|
6
|
-
|
7
|
-
:<%= attribute.name %> => <%= attribute.default_value %><%= attribute_index == attributes.length - 1 ? '' : ','%>
|
8
|
-
<% end -%>
|
6
|
+
<%= attributes.map{|a| ":#{a.name_or_reference} => #{a.default_value}" }.join(",\n ") %>
|
9
7
|
}
|
10
8
|
end
|
11
9
|
|
@@ -54,6 +54,7 @@ class RspecScaffoldGenerator < Rails::Generator::NamedBase
|
|
54
54
|
m.directory(File.join('spec/helpers', class_path))
|
55
55
|
m.directory File.join('spec/fixtures', class_path)
|
56
56
|
m.directory File.join('spec/views', controller_class_path, controller_file_name)
|
57
|
+
m.directory File.join('spec/integration', class_path)
|
57
58
|
|
58
59
|
# Layout and stylesheet.
|
59
60
|
m.template("scaffold:layout.html.erb", File.join('app/views/layouts', controller_class_path, "#{controller_file_name}.html.erb"))
|
@@ -83,9 +84,9 @@ class RspecScaffoldGenerator < Rails::Generator::NamedBase
|
|
83
84
|
end
|
84
85
|
|
85
86
|
# Model class, unit test, and fixtures.
|
86
|
-
m.template 'model:model.rb',
|
87
|
-
m.template 'model:fixtures.yml',
|
88
|
-
m.template 'rspec_model:model_spec.rb',
|
87
|
+
m.template 'model:model.rb', File.join('app/models', class_path, "#{file_name}.rb")
|
88
|
+
m.template 'model:fixtures.yml', File.join('spec/fixtures', class_path, "#{table_name}.yml")
|
89
|
+
m.template 'rspec_model:model_spec.rb', File.join('spec/models', class_path, "#{file_name}_spec.rb")
|
89
90
|
|
90
91
|
# View specs
|
91
92
|
m.template "rspec_scaffold:edit_erb_spec.rb",
|
@@ -97,6 +98,9 @@ class RspecScaffoldGenerator < Rails::Generator::NamedBase
|
|
97
98
|
m.template "rspec_scaffold:show_erb_spec.rb",
|
98
99
|
File.join('spec/views', controller_class_path, controller_file_name, "show.#{default_file_extension}_spec.rb")
|
99
100
|
|
101
|
+
# Integration
|
102
|
+
m.template 'integration_spec:integration_spec.rb', File.join('spec/integration', class_path, "#{table_name}_spec.rb")
|
103
|
+
|
100
104
|
unless options[:skip_migration]
|
101
105
|
m.migration_template(
|
102
106
|
'model:migration.rb', 'db/migrate',
|
@@ -5,7 +5,7 @@ describe <%= controller_class_name %>Controller do
|
|
5
5
|
def mock_<%= file_name %>(stubs={})
|
6
6
|
@mock_<%= file_name %> ||= mock_model(<%= class_name %>, stubs)
|
7
7
|
end
|
8
|
-
|
8
|
+
|
9
9
|
describe "GET index" do
|
10
10
|
it "assigns all <%= table_name.pluralize %> as @<%= table_name.pluralize %>" do
|
11
11
|
<%= class_name %>.stub!(:find).with(:all).and_return([mock_<%= file_name %>])
|
@@ -39,7 +39,7 @@ describe <%= controller_class_name %>Controller do
|
|
39
39
|
end
|
40
40
|
|
41
41
|
describe "POST create" do
|
42
|
-
|
42
|
+
|
43
43
|
describe "with valid params" do
|
44
44
|
it "assigns a newly created <%= file_name %> as @<%= file_name %>" do
|
45
45
|
<%= class_name %>.stub!(:new).with({'these' => 'params'}).and_return(mock_<%= file_name %>(:save => true))
|
@@ -53,7 +53,7 @@ describe <%= controller_class_name %>Controller do
|
|
53
53
|
response.should redirect_to(<%= table_name.singularize %>_url(mock_<%= file_name %>))
|
54
54
|
end
|
55
55
|
end
|
56
|
-
|
56
|
+
|
57
57
|
describe "with invalid params" do
|
58
58
|
it "assigns a newly created but unsaved <%= file_name %> as @<%= file_name %>" do
|
59
59
|
<%= class_name %>.stub!(:new).with({'these' => 'params'}).and_return(mock_<%= file_name %>(:save => false))
|
@@ -67,11 +67,11 @@ describe <%= controller_class_name %>Controller do
|
|
67
67
|
response.should render_template('new')
|
68
68
|
end
|
69
69
|
end
|
70
|
-
|
70
|
+
|
71
71
|
end
|
72
72
|
|
73
73
|
describe "PUT update" do
|
74
|
-
|
74
|
+
|
75
75
|
describe "with valid params" do
|
76
76
|
it "updates the requested <%= file_name %>" do
|
77
77
|
<%= class_name %>.should_receive(:find).with("37").and_return(mock_<%= file_name %>)
|
@@ -91,7 +91,7 @@ describe <%= controller_class_name %>Controller do
|
|
91
91
|
response.should redirect_to(<%= table_name.singularize %>_url(mock_<%= file_name %>))
|
92
92
|
end
|
93
93
|
end
|
94
|
-
|
94
|
+
|
95
95
|
describe "with invalid params" do
|
96
96
|
it "updates the requested <%= file_name %>" do
|
97
97
|
<%= class_name %>.should_receive(:find).with("37").and_return(mock_<%= file_name %>)
|
@@ -111,7 +111,7 @@ describe <%= controller_class_name %>Controller do
|
|
111
111
|
response.should render_template('edit')
|
112
112
|
end
|
113
113
|
end
|
114
|
-
|
114
|
+
|
115
115
|
end
|
116
116
|
|
117
117
|
describe "DELETE destroy" do
|
@@ -120,7 +120,7 @@ describe <%= controller_class_name %>Controller do
|
|
120
120
|
mock_<%= file_name %>.should_receive(:destroy)
|
121
121
|
delete :destroy, :id => "37"
|
122
122
|
end
|
123
|
-
|
123
|
+
|
124
124
|
it "redirects to the <%= table_name %> list" do
|
125
125
|
<%= class_name %>.stub!(:find).and_return(mock_<%= file_name %>(:destroy => true))
|
126
126
|
delete :destroy, :id => "1"
|