rspec-rails 1.3.2 → 7.0.2

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.
Files changed (268) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data/.document +4 -6
  4. data/.yardopts +11 -0
  5. data/Capybara.md +28 -0
  6. data/Changelog.md +1343 -0
  7. data/LICENSE.md +25 -0
  8. data/README.md +383 -0
  9. data/lib/generators/rspec/channel/channel_generator.rb +12 -0
  10. data/lib/generators/rspec/channel/templates/channel_spec.rb.erb +7 -0
  11. data/lib/generators/rspec/controller/controller_generator.rb +51 -0
  12. data/lib/generators/rspec/controller/templates/controller_spec.rb +16 -0
  13. data/lib/generators/rspec/controller/templates/request_spec.rb +19 -0
  14. data/lib/generators/rspec/controller/templates/routing_spec.rb +13 -0
  15. data/lib/generators/rspec/controller/templates/view_spec.rb +5 -0
  16. data/lib/generators/rspec/feature/feature_generator.rb +29 -0
  17. data/lib/generators/rspec/feature/templates/feature_singular_spec.rb +5 -0
  18. data/lib/generators/rspec/feature/templates/feature_spec.rb +5 -0
  19. data/lib/generators/rspec/generator/generator_generator.rb +24 -0
  20. data/lib/generators/rspec/generator/templates/generator_spec.rb +5 -0
  21. data/lib/generators/rspec/helper/helper_generator.rb +16 -0
  22. data/lib/generators/rspec/helper/templates/helper_spec.rb +17 -0
  23. data/lib/generators/rspec/install/install_generator.rb +80 -0
  24. data/lib/generators/rspec/install/templates/spec/rails_helper.rb +89 -0
  25. data/lib/generators/rspec/job/job_generator.rb +13 -0
  26. data/lib/generators/rspec/job/templates/job_spec.rb.erb +7 -0
  27. data/lib/generators/rspec/mailbox/mailbox_generator.rb +14 -0
  28. data/lib/generators/rspec/mailbox/templates/mailbox_spec.rb.erb +7 -0
  29. data/lib/generators/rspec/mailer/mailer_generator.rb +30 -0
  30. data/lib/generators/rspec/mailer/templates/fixture +3 -0
  31. data/lib/generators/rspec/mailer/templates/mailer_spec.rb +25 -0
  32. data/lib/generators/rspec/mailer/templates/preview.rb +13 -0
  33. data/lib/generators/rspec/model/model_generator.rb +37 -0
  34. data/lib/generators/rspec/model/templates/fixtures.yml +19 -0
  35. data/lib/generators/rspec/model/templates/model_spec.rb +7 -0
  36. data/lib/generators/rspec/request/request_generator.rb +17 -0
  37. data/lib/generators/rspec/request/templates/request_spec.rb +10 -0
  38. data/lib/generators/rspec/scaffold/scaffold_generator.rb +136 -0
  39. data/lib/generators/rspec/scaffold/templates/api_controller_spec.rb +129 -0
  40. data/lib/generators/rspec/scaffold/templates/api_request_spec.rb +131 -0
  41. data/lib/generators/rspec/scaffold/templates/controller_spec.rb +145 -0
  42. data/lib/generators/rspec/scaffold/templates/edit_spec.rb +27 -0
  43. data/lib/generators/rspec/scaffold/templates/index_spec.rb +26 -0
  44. data/lib/generators/rspec/scaffold/templates/new_spec.rb +22 -0
  45. data/lib/generators/rspec/scaffold/templates/request_spec.rb +138 -0
  46. data/lib/generators/rspec/scaffold/templates/routing_spec.rb +46 -0
  47. data/lib/generators/rspec/scaffold/templates/show_spec.rb +21 -0
  48. data/lib/generators/rspec/system/system_generator.rb +24 -0
  49. data/lib/generators/rspec/system/templates/system_spec.rb +9 -0
  50. data/lib/generators/rspec/view/templates/view_spec.rb +5 -0
  51. data/lib/generators/rspec/view/view_generator.rb +22 -0
  52. data/lib/generators/rspec.rb +56 -0
  53. data/lib/rspec/rails/active_record.rb +25 -0
  54. data/lib/rspec/rails/adapters.rb +196 -0
  55. data/lib/rspec/rails/configuration.rb +222 -0
  56. data/lib/rspec/rails/example/channel_example_group.rb +93 -0
  57. data/lib/rspec/rails/example/controller_example_group.rb +217 -0
  58. data/lib/rspec/rails/example/feature_example_group.rb +53 -0
  59. data/lib/rspec/rails/example/helper_example_group.rb +42 -0
  60. data/lib/rspec/rails/example/job_example_group.rb +23 -0
  61. data/lib/rspec/rails/example/mailbox_example_group.rb +80 -0
  62. data/lib/rspec/rails/example/mailer_example_group.rb +38 -0
  63. data/lib/rspec/rails/example/model_example_group.rb +11 -0
  64. data/lib/rspec/rails/example/rails_example_group.rb +23 -0
  65. data/lib/rspec/rails/example/request_example_group.rb +27 -0
  66. data/lib/rspec/rails/example/routing_example_group.rb +61 -0
  67. data/lib/rspec/rails/example/system_example_group.rb +180 -0
  68. data/lib/rspec/rails/example/view_example_group.rb +214 -0
  69. data/lib/rspec/rails/example.rb +13 -0
  70. data/lib/rspec/rails/extensions/active_record/proxy.rb +11 -0
  71. data/lib/rspec/rails/extensions.rb +1 -0
  72. data/lib/rspec/rails/feature_check.rb +51 -0
  73. data/lib/rspec/rails/file_fixture_support.rb +18 -0
  74. data/lib/rspec/rails/fixture_file_upload_support.rb +45 -0
  75. data/lib/rspec/rails/fixture_support.rb +88 -0
  76. data/lib/rspec/rails/matchers/action_cable/have_broadcasted_to.rb +173 -0
  77. data/lib/rspec/rails/matchers/action_cable/have_streams.rb +58 -0
  78. data/lib/rspec/rails/matchers/action_cable.rb +65 -0
  79. data/lib/rspec/rails/matchers/action_mailbox.rb +73 -0
  80. data/lib/rspec/rails/matchers/active_job.rb +517 -0
  81. data/lib/rspec/rails/matchers/base_matcher.rb +179 -0
  82. data/lib/rspec/rails/matchers/be_a_new.rb +83 -0
  83. data/lib/rspec/rails/matchers/be_new_record.rb +30 -0
  84. data/lib/rspec/rails/matchers/be_valid.rb +49 -0
  85. data/lib/rspec/rails/matchers/have_enqueued_mail.rb +258 -0
  86. data/lib/rspec/rails/matchers/have_http_status.rb +381 -0
  87. data/lib/rspec/rails/matchers/have_rendered.rb +64 -0
  88. data/lib/rspec/rails/matchers/redirect_to.rb +38 -0
  89. data/lib/rspec/rails/matchers/relation_match_array.rb +3 -0
  90. data/lib/rspec/rails/matchers/routing_matchers.rb +125 -0
  91. data/lib/rspec/rails/matchers/send_email.rb +122 -0
  92. data/lib/rspec/rails/matchers.rb +36 -0
  93. data/lib/rspec/rails/tasks/rspec.rake +49 -0
  94. data/lib/rspec/rails/vendor/capybara.rb +32 -0
  95. data/lib/rspec/rails/version.rb +9 -0
  96. data/lib/rspec/rails/view_assigns.rb +27 -0
  97. data/lib/rspec/rails/view_path_builder.rb +29 -0
  98. data/lib/rspec/rails/view_rendering.rb +166 -0
  99. data/lib/rspec/rails/view_spec_methods.rb +56 -0
  100. data/lib/rspec/rails.rb +18 -0
  101. data/lib/rspec-rails.rb +97 -0
  102. data.tar.gz.sig +0 -0
  103. metadata +307 -261
  104. metadata.gz.sig +0 -0
  105. data/Contribute.rdoc +0 -4
  106. data/History.rdoc +0 -302
  107. data/License.txt +0 -33
  108. data/Manifest.txt +0 -165
  109. data/README.rdoc +0 -45
  110. data/Rakefile +0 -72
  111. data/TODO.txt +0 -17
  112. data/Upgrade.rdoc +0 -148
  113. data/generators/integration_spec/integration_spec_generator.rb +0 -10
  114. data/generators/integration_spec/templates/integration_spec.rb +0 -4
  115. data/generators/rspec/CHANGES +0 -1
  116. data/generators/rspec/rspec_generator.rb +0 -72
  117. data/generators/rspec/templates/previous_failures.txt +0 -0
  118. data/generators/rspec/templates/rcov.opts +0 -2
  119. data/generators/rspec/templates/rspec.rake +0 -144
  120. data/generators/rspec/templates/script/autospec +0 -6
  121. data/generators/rspec/templates/script/spec +0 -10
  122. data/generators/rspec/templates/spec.opts +0 -4
  123. data/generators/rspec/templates/spec_helper.rb +0 -54
  124. data/generators/rspec_controller/USAGE +0 -33
  125. data/generators/rspec_controller/rspec_controller_generator.rb +0 -47
  126. data/generators/rspec_controller/templates/controller_spec.rb +0 -25
  127. data/generators/rspec_controller/templates/helper_spec.rb +0 -11
  128. data/generators/rspec_controller/templates/view_spec.rb +0 -12
  129. data/generators/rspec_default_values.rb +0 -28
  130. data/generators/rspec_model/USAGE +0 -18
  131. data/generators/rspec_model/rspec_model_generator.rb +0 -35
  132. data/generators/rspec_model/templates/model_spec.rb +0 -13
  133. data/generators/rspec_scaffold/rspec_scaffold_generator.rb +0 -154
  134. data/generators/rspec_scaffold/templates/controller_spec.rb +0 -131
  135. data/generators/rspec_scaffold/templates/edit_erb_spec.rb +0 -25
  136. data/generators/rspec_scaffold/templates/helper_spec.rb +0 -11
  137. data/generators/rspec_scaffold/templates/index_erb_spec.rb +0 -27
  138. data/generators/rspec_scaffold/templates/new_erb_spec.rb +0 -25
  139. data/generators/rspec_scaffold/templates/routing_spec.rb +0 -33
  140. data/generators/rspec_scaffold/templates/show_erb_spec.rb +0 -22
  141. data/init.rb +0 -9
  142. data/lib/autotest/discover.rb +0 -5
  143. data/lib/autotest/rails_rspec.rb +0 -76
  144. data/lib/spec/rails/example/assigns_hash_proxy.rb +0 -39
  145. data/lib/spec/rails/example/controller_example_group.rb +0 -285
  146. data/lib/spec/rails/example/cookies_proxy.rb +0 -29
  147. data/lib/spec/rails/example/functional_example_group.rb +0 -106
  148. data/lib/spec/rails/example/helper_example_group.rb +0 -153
  149. data/lib/spec/rails/example/integration_example_group.rb +0 -16
  150. data/lib/spec/rails/example/model_example_group.rb +0 -15
  151. data/lib/spec/rails/example/render_observer.rb +0 -80
  152. data/lib/spec/rails/example/routing_example_group.rb +0 -13
  153. data/lib/spec/rails/example/routing_helpers.rb +0 -66
  154. data/lib/spec/rails/example/view_example_group.rb +0 -199
  155. data/lib/spec/rails/example.rb +0 -48
  156. data/lib/spec/rails/extensions/action_controller/rescue.rb +0 -42
  157. data/lib/spec/rails/extensions/action_controller/test_case.rb +0 -16
  158. data/lib/spec/rails/extensions/action_controller/test_response.rb +0 -21
  159. data/lib/spec/rails/extensions/action_view/base.rb +0 -33
  160. data/lib/spec/rails/extensions/active_record/base.rb +0 -45
  161. data/lib/spec/rails/extensions/active_support/test_case.rb +0 -7
  162. data/lib/spec/rails/extensions/spec/matchers/have.rb +0 -23
  163. data/lib/spec/rails/extensions/spec/runner/configuration.rb +0 -44
  164. data/lib/spec/rails/extensions.rb +0 -11
  165. data/lib/spec/rails/interop/testcase.rb +0 -14
  166. data/lib/spec/rails/matchers/ar_be_valid.rb +0 -27
  167. data/lib/spec/rails/matchers/assert_select.rb +0 -180
  168. data/lib/spec/rails/matchers/change.rb +0 -13
  169. data/lib/spec/rails/matchers/have_text.rb +0 -57
  170. data/lib/spec/rails/matchers/include_text.rb +0 -54
  171. data/lib/spec/rails/matchers/redirect_to.rb +0 -126
  172. data/lib/spec/rails/matchers/render_template.rb +0 -129
  173. data/lib/spec/rails/matchers/route_to.rb +0 -149
  174. data/lib/spec/rails/matchers.rb +0 -32
  175. data/lib/spec/rails/mocks.rb +0 -136
  176. data/lib/spec/rails/version.rb +0 -16
  177. data/lib/spec/rails.rb +0 -26
  178. data/spec/autotest/mappings_spec.rb +0 -86
  179. data/spec/rails_suite.rb +0 -7
  180. data/spec/resources/controllers/action_view_base_spec_controller.rb +0 -2
  181. data/spec/resources/controllers/application.rb +0 -9
  182. data/spec/resources/controllers/controller_spec_controller.rb +0 -127
  183. data/spec/resources/controllers/example.txt +0 -1
  184. data/spec/resources/controllers/redirect_spec_controller.rb +0 -70
  185. data/spec/resources/controllers/render_spec_controller.rb +0 -34
  186. data/spec/resources/controllers/rjs_spec_controller.rb +0 -58
  187. data/spec/resources/helpers/addition_helper.rb +0 -5
  188. data/spec/resources/helpers/explicit_helper.rb +0 -46
  189. data/spec/resources/helpers/more_explicit_helper.rb +0 -5
  190. data/spec/resources/helpers/plugin_application_helper.rb +0 -6
  191. data/spec/resources/helpers/view_spec_helper.rb +0 -13
  192. data/spec/resources/models/animal.rb +0 -4
  193. data/spec/resources/models/person.rb +0 -18
  194. data/spec/resources/models/thing.rb +0 -3
  195. data/spec/resources/views/controller_spec/_partial.html.erb +0 -0
  196. data/spec/resources/views/controller_spec/action_setting_flash_after_session_reset.html.erb +0 -1
  197. data/spec/resources/views/controller_spec/action_setting_flash_before_session_reset.html.erb +0 -1
  198. data/spec/resources/views/controller_spec/action_setting_the_assigns_hash.html.erb +0 -0
  199. data/spec/resources/views/controller_spec/action_with_errors_in_template.html.erb +0 -1
  200. data/spec/resources/views/controller_spec/action_with_template.html.erb +0 -1
  201. data/spec/resources/views/layouts/application.html.erb +0 -0
  202. data/spec/resources/views/layouts/simple.html.erb +0 -0
  203. data/spec/resources/views/objects/_object.html.erb +0 -1
  204. data/spec/resources/views/render_spec/_a_partial.html.erb +0 -0
  205. data/spec/resources/views/render_spec/action_with_alternate_layout.html.erb +0 -0
  206. data/spec/resources/views/render_spec/some_action.html.erb +0 -0
  207. data/spec/resources/views/render_spec/some_action.js.rjs +0 -1
  208. data/spec/resources/views/rjs_spec/_replacement_partial.html.erb +0 -1
  209. data/spec/resources/views/rjs_spec/hide_div.js.rjs +0 -1
  210. data/spec/resources/views/rjs_spec/hide_page_element.js.rjs +0 -1
  211. data/spec/resources/views/rjs_spec/insert_html.js.rjs +0 -1
  212. data/spec/resources/views/rjs_spec/replace.js.rjs +0 -1
  213. data/spec/resources/views/rjs_spec/replace_html.js.rjs +0 -1
  214. data/spec/resources/views/rjs_spec/replace_html_with_partial.js.rjs +0 -1
  215. data/spec/resources/views/rjs_spec/visual_effect.js.rjs +0 -1
  216. data/spec/resources/views/rjs_spec/visual_toggle_effect.js.rjs +0 -1
  217. data/spec/resources/views/tag_spec/no_tags.html.erb +0 -1
  218. data/spec/resources/views/tag_spec/single_div_with_no_attributes.html.erb +0 -1
  219. data/spec/resources/views/tag_spec/single_div_with_one_attribute.html.erb +0 -1
  220. data/spec/resources/views/view_spec/_partial.html.erb +0 -2
  221. data/spec/resources/views/view_spec/_partial_used_twice.html.erb +0 -0
  222. data/spec/resources/views/view_spec/_partial_with_local_variable.html.erb +0 -1
  223. data/spec/resources/views/view_spec/_partial_with_sub_partial.html.erb +0 -1
  224. data/spec/resources/views/view_spec/_spacer.html.erb +0 -1
  225. data/spec/resources/views/view_spec/accessor.html.erb +0 -6
  226. data/spec/resources/views/view_spec/block_helper.html.erb +0 -3
  227. data/spec/resources/views/view_spec/entry_form.html.erb +0 -2
  228. data/spec/resources/views/view_spec/explicit_helper.html.erb +0 -2
  229. data/spec/resources/views/view_spec/foo/show.html.erb +0 -1
  230. data/spec/resources/views/view_spec/implicit_helper.html.erb +0 -2
  231. data/spec/resources/views/view_spec/multiple_helpers.html.erb +0 -3
  232. data/spec/resources/views/view_spec/path_params.html.erb +0 -1
  233. data/spec/resources/views/view_spec/should_not_receive.html.erb +0 -3
  234. data/spec/resources/views/view_spec/template_with_partial.html.erb +0 -5
  235. data/spec/resources/views/view_spec/template_with_partial_using_collection.html.erb +0 -3
  236. data/spec/resources/views/view_spec/template_with_partial_with_array.html.erb +0 -1
  237. data/spec/resources/views/view_spec/view_helpers.html.erb +0 -1
  238. data/spec/spec/rails/example/assigns_hash_proxy_spec.rb +0 -109
  239. data/spec/spec/rails/example/configuration_spec.rb +0 -65
  240. data/spec/spec/rails/example/controller_example_group_spec.rb +0 -307
  241. data/spec/spec/rails/example/controller_isolation_spec.rb +0 -75
  242. data/spec/spec/rails/example/cookies_proxy_spec.rb +0 -87
  243. data/spec/spec/rails/example/error_handling_spec.rb +0 -90
  244. data/spec/spec/rails/example/example_group_factory_spec.rb +0 -112
  245. data/spec/spec/rails/example/helper_example_group_spec.rb +0 -233
  246. data/spec/spec/rails/example/model_example_group_spec.rb +0 -32
  247. data/spec/spec/rails/example/routing_example_group_spec.rb +0 -10
  248. data/spec/spec/rails/example/shared_routing_example_group_examples.rb +0 -237
  249. data/spec/spec/rails/example/test_unit_assertion_accessibility_spec.rb +0 -33
  250. data/spec/spec/rails/example/view_example_group_spec.rb +0 -346
  251. data/spec/spec/rails/extensions/action_view_base_spec.rb +0 -74
  252. data/spec/spec/rails/extensions/active_record_spec.rb +0 -14
  253. data/spec/spec/rails/interop/testcase_spec.rb +0 -70
  254. data/spec/spec/rails/matchers/ar_be_valid_spec.rb +0 -19
  255. data/spec/spec/rails/matchers/assert_select_spec.rb +0 -835
  256. data/spec/spec/rails/matchers/errors_on_spec.rb +0 -37
  257. data/spec/spec/rails/matchers/have_text_spec.rb +0 -69
  258. data/spec/spec/rails/matchers/include_text_spec.rb +0 -62
  259. data/spec/spec/rails/matchers/redirect_to_spec.rb +0 -253
  260. data/spec/spec/rails/matchers/render_template_spec.rb +0 -208
  261. data/spec/spec/rails/matchers/should_change_spec.rb +0 -15
  262. data/spec/spec/rails/mocks/ar_classes.rb +0 -10
  263. data/spec/spec/rails/mocks/mock_model_spec.rb +0 -109
  264. data/spec/spec/rails/mocks/stub_model_spec.rb +0 -80
  265. data/spec/spec/rails/sample_modified_fixture.rb +0 -8
  266. data/spec/spec/rails/sample_spec.rb +0 -8
  267. data/spec/spec/rails/spec_spec.rb +0 -11
  268. data/spec/spec_helper.rb +0 -78
@@ -1,35 +0,0 @@
1
- require 'rails_generator/generators/components/model/model_generator'
2
- require File.dirname(__FILE__) + '/../rspec_default_values'
3
-
4
- class RspecModelGenerator < ModelGenerator
5
-
6
- def manifest
7
-
8
- record do |m|
9
- # Check for class naming collisions.
10
- m.class_collisions class_path, class_name
11
-
12
- # Model, spec, and fixture directories.
13
- m.directory File.join('app/models', class_path)
14
- m.directory File.join('spec/models', class_path)
15
- unless options[:skip_fixture]
16
- m.directory File.join('spec/fixtures', class_path)
17
- end
18
-
19
- # Model class, spec and fixtures.
20
- m.template 'model:model.rb', File.join('app/models', class_path, "#{file_name}.rb")
21
- m.template 'model_spec.rb', File.join('spec/models', class_path, "#{file_name}_spec.rb")
22
- unless options[:skip_fixture]
23
- m.template 'model:fixtures.yml', File.join('spec/fixtures', "#{table_name}.yml")
24
- end
25
-
26
- unless options[:skip_migration]
27
- m.migration_template 'model:migration.rb', 'db/migrate', :assigns => {
28
- :migration_name => "Create#{class_name.pluralize.gsub(/::/, '')}"
29
- }, :migration_file_name => "create_#{file_path.gsub(/\//, '_').pluralize}"
30
- end
31
-
32
- end
33
- end
34
-
35
- end
@@ -1,13 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe <%= class_name %> do
4
- before(:each) do
5
- @valid_attributes = {
6
- <%= attributes.map{|a| ":#{a.name_or_reference} => #{a.default_value}" }.join(",\n ") %>
7
- }
8
- end
9
-
10
- it "should create a new instance given valid attributes" do
11
- <%= class_name %>.create!(@valid_attributes)
12
- end
13
- end
@@ -1,154 +0,0 @@
1
- require File.dirname(__FILE__) + '/../rspec_default_values'
2
-
3
- class RspecScaffoldGenerator < Rails::Generator::NamedBase
4
- default_options :skip_migration => false
5
-
6
- attr_reader :controller_name,
7
- :controller_class_path,
8
- :controller_file_path,
9
- :controller_class_nesting,
10
- :controller_class_nesting_depth,
11
- :controller_class_name,
12
- :controller_singular_name,
13
- :controller_plural_name,
14
- :resource_edit_path,
15
- :default_file_extension
16
- alias_method :controller_file_name, :controller_singular_name
17
- alias_method :controller_table_name, :controller_plural_name
18
-
19
- def initialize(runtime_args, runtime_options = {})
20
- super
21
-
22
- @controller_name = @name.pluralize
23
-
24
- base_name, @controller_class_path, @controller_file_path, @controller_class_nesting, @controller_class_nesting_depth = extract_modules(@controller_name)
25
- @controller_class_name_without_nesting, @controller_singular_name, @controller_plural_name = inflect_names(base_name)
26
-
27
- if @controller_class_nesting.empty?
28
- @controller_class_name = @controller_class_name_without_nesting
29
- else
30
- @controller_class_name = "#{@controller_class_nesting}::#{@controller_class_name_without_nesting}"
31
- end
32
-
33
- @default_file_extension = "html.erb"
34
- end
35
-
36
- def manifest
37
- record do |m|
38
-
39
- # Check for class naming collisions.
40
- m.class_collisions(controller_class_path, "#{controller_class_name}Controller", "#{controller_class_name}Helper")
41
- m.class_collisions(class_path, "#{class_name}")
42
-
43
- # Controller, helper, views, and spec directories.
44
- m.directory(File.join('app/models', class_path))
45
- m.directory(File.join('app/controllers', controller_class_path))
46
- m.directory(File.join('app/helpers', controller_class_path))
47
- m.directory(File.join('app/views', controller_class_path, controller_file_name))
48
- m.directory(File.join('app/views/layouts', controller_class_path))
49
- m.directory(File.join('public/stylesheets', class_path))
50
-
51
- m.directory(File.join('spec/controllers', controller_class_path))
52
- m.directory(File.join('spec/routing', controller_class_path))
53
- m.directory(File.join('spec/models', class_path))
54
- m.directory(File.join('spec/helpers', class_path))
55
- m.directory File.join('spec/fixtures', class_path)
56
- m.directory File.join('spec/views', controller_class_path, controller_file_name)
57
- m.directory File.join('spec/integration', class_path)
58
-
59
- # Layout and stylesheet.
60
- m.template("scaffold:layout.html.erb", File.join('app/views/layouts', controller_class_path, "#{controller_file_name}.html.erb"))
61
- m.template("scaffold:style.css", 'public/stylesheets/scaffold.css')
62
-
63
- # Controller spec, class, and helper.
64
- m.template 'rspec_scaffold:routing_spec.rb',
65
- File.join('spec/routing', controller_class_path, "#{controller_file_name}_routing_spec.rb")
66
-
67
- m.template 'rspec_scaffold:controller_spec.rb',
68
- File.join('spec/controllers', controller_class_path, "#{controller_file_name}_controller_spec.rb")
69
-
70
- m.template "scaffold:controller.rb",
71
- File.join('app/controllers', controller_class_path, "#{controller_file_name}_controller.rb")
72
-
73
- m.template 'rspec_scaffold:helper_spec.rb',
74
- File.join('spec/helpers', class_path, "#{controller_file_name}_helper_spec.rb")
75
-
76
- m.template "scaffold:helper.rb",
77
- File.join('app/helpers', controller_class_path, "#{controller_file_name}_helper.rb")
78
-
79
- for action in scaffold_views
80
- m.template(
81
- "scaffold:view_#{action}.#{@default_file_extension}",
82
- File.join('app/views', controller_class_path, controller_file_name, "#{action}.#{default_file_extension}")
83
- )
84
- end
85
-
86
- # Model class, unit test, and fixtures.
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")
90
-
91
- # View specs
92
- m.template "rspec_scaffold:edit_erb_spec.rb",
93
- File.join('spec/views', controller_class_path, controller_file_name, "edit.#{default_file_extension}_spec.rb")
94
- m.template "rspec_scaffold:index_erb_spec.rb",
95
- File.join('spec/views', controller_class_path, controller_file_name, "index.#{default_file_extension}_spec.rb")
96
- m.template "rspec_scaffold:new_erb_spec.rb",
97
- File.join('spec/views', controller_class_path, controller_file_name, "new.#{default_file_extension}_spec.rb")
98
- m.template "rspec_scaffold:show_erb_spec.rb",
99
- File.join('spec/views', controller_class_path, controller_file_name, "show.#{default_file_extension}_spec.rb")
100
-
101
- # Integration
102
- m.template 'integration_spec:integration_spec.rb', File.join('spec/integration', class_path, "#{table_name}_spec.rb")
103
-
104
- unless options[:skip_migration]
105
- m.migration_template(
106
- 'model:migration.rb', 'db/migrate',
107
- :assigns => {
108
- :migration_name => "Create#{class_name.pluralize.gsub(/::/, '')}",
109
- :attributes => attributes
110
- },
111
- :migration_file_name => "create_#{file_path.gsub(/\//, '_').pluralize}"
112
- )
113
- end
114
-
115
- m.route_resources controller_file_name
116
-
117
- end
118
- end
119
-
120
- protected
121
- # Override with your own usage banner.
122
- def banner
123
- "Usage: #{$0} rspec_scaffold ModelName [field:type field:type]"
124
- end
125
-
126
- def add_options!(opt)
127
- opt.separator ''
128
- opt.separator 'Options:'
129
- opt.on("--skip-migration",
130
- "Don't generate a migration file for this model") { |v| options[:skip_migration] = v }
131
- end
132
-
133
- def scaffold_views
134
- %w[ index show new edit ]
135
- end
136
-
137
- def model_name
138
- class_name.demodulize
139
- end
140
- end
141
-
142
- module Rails
143
- module Generator
144
- class GeneratedAttribute
145
- def input_type
146
- @input_type ||= case type
147
- when :text then "textarea"
148
- else
149
- "input"
150
- end
151
- end
152
- end
153
- end
154
- end
@@ -1,131 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe <%= controller_class_name %>Controller do
4
-
5
- def mock_<%= file_name %>(stubs={})
6
- @mock_<%= file_name %> ||= mock_model(<%= class_name %>, stubs)
7
- end
8
-
9
- describe "GET index" do
10
- it "assigns all <%= table_name.pluralize %> as @<%= table_name.pluralize %>" do
11
- <%= class_name %>.stub(:find).with(:all).and_return([mock_<%= file_name %>])
12
- get :index
13
- assigns[:<%= table_name %>].should == [mock_<%= file_name %>]
14
- end
15
- end
16
-
17
- describe "GET show" do
18
- it "assigns the requested <%= file_name %> as @<%= file_name %>" do
19
- <%= class_name %>.stub(:find).with("37").and_return(mock_<%= file_name %>)
20
- get :show, :id => "37"
21
- assigns[:<%= file_name %>].should equal(mock_<%= file_name %>)
22
- end
23
- end
24
-
25
- describe "GET new" do
26
- it "assigns a new <%= file_name %> as @<%= file_name %>" do
27
- <%= class_name %>.stub(:new).and_return(mock_<%= file_name %>)
28
- get :new
29
- assigns[:<%= file_name %>].should equal(mock_<%= file_name %>)
30
- end
31
- end
32
-
33
- describe "GET edit" do
34
- it "assigns the requested <%= file_name %> as @<%= file_name %>" do
35
- <%= class_name %>.stub(:find).with("37").and_return(mock_<%= file_name %>)
36
- get :edit, :id => "37"
37
- assigns[:<%= file_name %>].should equal(mock_<%= file_name %>)
38
- end
39
- end
40
-
41
- describe "POST create" do
42
-
43
- describe "with valid params" do
44
- it "assigns a newly created <%= file_name %> as @<%= file_name %>" do
45
- <%= class_name %>.stub(:new).with({'these' => 'params'}).and_return(mock_<%= file_name %>(:save => true))
46
- post :create, :<%= file_name %> => {:these => 'params'}
47
- assigns[:<%= file_name %>].should equal(mock_<%= file_name %>)
48
- end
49
-
50
- it "redirects to the created <%= file_name %>" do
51
- <%= class_name %>.stub(:new).and_return(mock_<%= file_name %>(:save => true))
52
- post :create, :<%= file_name %> => {}
53
- response.should redirect_to(<%= table_name.singularize %>_url(mock_<%= file_name %>))
54
- end
55
- end
56
-
57
- describe "with invalid params" do
58
- it "assigns a newly created but unsaved <%= file_name %> as @<%= file_name %>" do
59
- <%= class_name %>.stub(:new).with({'these' => 'params'}).and_return(mock_<%= file_name %>(:save => false))
60
- post :create, :<%= file_name %> => {:these => 'params'}
61
- assigns[:<%= file_name %>].should equal(mock_<%= file_name %>)
62
- end
63
-
64
- it "re-renders the 'new' template" do
65
- <%= class_name %>.stub(:new).and_return(mock_<%= file_name %>(:save => false))
66
- post :create, :<%= file_name %> => {}
67
- response.should render_template('new')
68
- end
69
- end
70
-
71
- end
72
-
73
- describe "PUT update" do
74
-
75
- describe "with valid params" do
76
- it "updates the requested <%= file_name %>" do
77
- <%= class_name %>.should_receive(:find).with("37").and_return(mock_<%= file_name %>)
78
- mock_<%= file_name %>.should_receive(:update_attributes).with({'these' => 'params'})
79
- put :update, :id => "37", :<%= file_name %> => {:these => 'params'}
80
- end
81
-
82
- it "assigns the requested <%= file_name %> as @<%= file_name %>" do
83
- <%= class_name %>.stub(:find).and_return(mock_<%= file_name %>(:update_attributes => true))
84
- put :update, :id => "1"
85
- assigns[:<%= file_name %>].should equal(mock_<%= file_name %>)
86
- end
87
-
88
- it "redirects to the <%= file_name %>" do
89
- <%= class_name %>.stub(:find).and_return(mock_<%= file_name %>(:update_attributes => true))
90
- put :update, :id => "1"
91
- response.should redirect_to(<%= table_name.singularize %>_url(mock_<%= file_name %>))
92
- end
93
- end
94
-
95
- describe "with invalid params" do
96
- it "updates the requested <%= file_name %>" do
97
- <%= class_name %>.should_receive(:find).with("37").and_return(mock_<%= file_name %>)
98
- mock_<%= file_name %>.should_receive(:update_attributes).with({'these' => 'params'})
99
- put :update, :id => "37", :<%= file_name %> => {:these => 'params'}
100
- end
101
-
102
- it "assigns the <%= file_name %> as @<%= file_name %>" do
103
- <%= class_name %>.stub(:find).and_return(mock_<%= file_name %>(:update_attributes => false))
104
- put :update, :id => "1"
105
- assigns[:<%= file_name %>].should equal(mock_<%= file_name %>)
106
- end
107
-
108
- it "re-renders the 'edit' template" do
109
- <%= class_name %>.stub(:find).and_return(mock_<%= file_name %>(:update_attributes => false))
110
- put :update, :id => "1"
111
- response.should render_template('edit')
112
- end
113
- end
114
-
115
- end
116
-
117
- describe "DELETE destroy" do
118
- it "destroys the requested <%= file_name %>" do
119
- <%= class_name %>.should_receive(:find).with("37").and_return(mock_<%= file_name %>)
120
- mock_<%= file_name %>.should_receive(:destroy)
121
- delete :destroy, :id => "37"
122
- end
123
-
124
- it "redirects to the <%= table_name %> list" do
125
- <%= class_name %>.stub(:find).and_return(mock_<%= file_name %>(:destroy => true))
126
- delete :destroy, :id => "1"
127
- response.should redirect_to(<%= table_name %>_url)
128
- end
129
- end
130
-
131
- end
@@ -1,25 +0,0 @@
1
- require 'spec_helper'
2
-
3
- <% output_attributes = attributes.reject{|attribute| [:datetime, :timestamp, :time, :date].index(attribute.type) } -%>
4
- describe "/<%= table_name %>/edit.<%= default_file_extension %>" do
5
- include <%= controller_class_name %>Helper
6
-
7
- before(:each) do
8
- assigns[:<%= file_name %>] = @<%= file_name %> = stub_model(<%= class_name %>,
9
- :new_record? => false<%= output_attributes.empty? ? '' : ',' %>
10
- <% output_attributes.each_with_index do |attribute, attribute_index| -%>
11
- :<%= attribute.name %> => <%= attribute.default_value %><%= attribute_index == output_attributes.length - 1 ? '' : ','%>
12
- <% end -%>
13
- )
14
- end
15
-
16
- it "renders the edit <%= file_name %> form" do
17
- render
18
-
19
- response.should have_tag("form[action=#{<%= file_name %>_path(@<%= file_name %>)}][method=post]") do
20
- <% for attribute in output_attributes -%>
21
- with_tag('<%= attribute.input_type -%>#<%= file_name %>_<%= attribute.name %>[name=?]', "<%= file_name %>[<%= attribute.name %>]")
22
- <% end -%>
23
- end
24
- end
25
- end
@@ -1,11 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe <%= controller_class_name %>Helper do
4
-
5
- #Delete this example and add some real ones or delete this file
6
- it "is included in the helper object" do
7
- included_modules = (class << helper; self; end).send :included_modules
8
- included_modules.should include(<%= controller_class_name %>Helper)
9
- end
10
-
11
- end
@@ -1,27 +0,0 @@
1
- require 'spec_helper'
2
-
3
- <% output_attributes = attributes.reject{|attribute| [:datetime, :timestamp, :time, :date].index(attribute.type) } -%>
4
- describe "/<%= table_name %>/index.<%= default_file_extension %>" do
5
- include <%= controller_class_name %>Helper
6
-
7
- before(:each) do
8
- assigns[:<%= table_name %>] = [
9
- <% [1,2].each_with_index do |id, model_index| -%>
10
- stub_model(<%= class_name %><%= output_attributes.empty? ? (model_index == 1 ? ')' : '),') : ',' %>
11
- <% output_attributes.each_with_index do |attribute, attribute_index| -%>
12
- :<%= attribute.name %> => <%= attribute.default_value %><%= attribute_index == output_attributes.length - 1 ? '' : ','%>
13
- <% end -%>
14
- <% if !output_attributes.empty? -%>
15
- <%= model_index == 1 ? ')' : '),' %>
16
- <% end -%>
17
- <% end -%>
18
- ]
19
- end
20
-
21
- it "renders a list of <%= table_name %>" do
22
- render
23
- <% for attribute in output_attributes -%>
24
- response.should have_tag("tr>td", <%= attribute.default_value %>.to_s, 2)
25
- <% end -%>
26
- end
27
- end
@@ -1,25 +0,0 @@
1
- require 'spec_helper'
2
-
3
- <% output_attributes = attributes.reject{|attribute| [:datetime, :timestamp, :time, :date].index(attribute.type) } -%>
4
- describe "/<%= table_name %>/new.<%= default_file_extension %>" do
5
- include <%= controller_class_name %>Helper
6
-
7
- before(:each) do
8
- assigns[:<%= file_name %>] = stub_model(<%= class_name %>,
9
- :new_record? => true<%= output_attributes.empty? ? '' : ',' %>
10
- <% output_attributes.each_with_index do |attribute, attribute_index| -%>
11
- :<%= attribute.name %> => <%= attribute.default_value %><%= attribute_index == output_attributes.length - 1 ? '' : ','%>
12
- <% end -%>
13
- )
14
- end
15
-
16
- it "renders new <%= file_name %> form" do
17
- render
18
-
19
- response.should have_tag("form[action=?][method=post]", <%= table_name %>_path) do
20
- <% for attribute in output_attributes -%>
21
- with_tag("<%= attribute.input_type -%>#<%= file_name %>_<%= attribute.name %>[name=?]", "<%= file_name %>[<%= attribute.name %>]")
22
- <% end -%>
23
- end
24
- end
25
- end
@@ -1,33 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe <%= controller_class_name %>Controller do
4
- describe "routing" do
5
- it "recognizes and generates #index" do
6
- { :get => "/<%= table_name %>" }.should route_to(:controller => "<%= table_name %>", :action => "index")
7
- end
8
-
9
- it "recognizes and generates #new" do
10
- { :get => "/<%= table_name %>/new" }.should route_to(:controller => "<%= table_name %>", :action => "new")
11
- end
12
-
13
- it "recognizes and generates #show" do
14
- { :get => "/<%= table_name %>/1" }.should route_to(:controller => "<%= table_name %>", :action => "show", :id => "1")
15
- end
16
-
17
- it "recognizes and generates #edit" do
18
- { :get => "/<%= table_name %>/1/edit" }.should route_to(:controller => "<%= table_name %>", :action => "edit", :id => "1")
19
- end
20
-
21
- it "recognizes and generates #create" do
22
- { :post => "/<%= table_name %>" }.should route_to(:controller => "<%= table_name %>", :action => "create")
23
- end
24
-
25
- it "recognizes and generates #update" do
26
- { :put => "/<%= table_name %>/1" }.should route_to(:controller => "<%= table_name %>", :action => "update", :id => "1")
27
- end
28
-
29
- it "recognizes and generates #destroy" do
30
- { :delete => "/<%= table_name %>/1" }.should route_to(:controller => "<%= table_name %>", :action => "destroy", :id => "1")
31
- end
32
- end
33
- end
@@ -1,22 +0,0 @@
1
- require 'spec_helper'
2
-
3
- <% output_attributes = attributes.reject{|attribute| [:datetime, :timestamp, :time, :date].index(attribute.type) } -%>
4
- describe "/<%= table_name %>/show.<%= default_file_extension %>" do
5
- include <%= controller_class_name %>Helper
6
- before(:each) do
7
- assigns[:<%= file_name %>] = @<%= file_name %> = stub_model(<%= class_name %><%= output_attributes.empty? ? ')' : ',' %>
8
- <% output_attributes.each_with_index do |attribute, attribute_index| -%>
9
- :<%= attribute.name %> => <%= attribute.default_value %><%= attribute_index == output_attributes.length - 1 ? '' : ','%>
10
- <% end -%>
11
- <% if !output_attributes.empty? -%>
12
- )
13
- <% end -%>
14
- end
15
-
16
- it "renders attributes in <p>" do
17
- render
18
- <% for attribute in output_attributes -%>
19
- response.should have_text(/<%= Regexp.escape(attribute.default_value).gsub(/^"|"$/, '')%>/)
20
- <% end -%>
21
- end
22
- end
data/init.rb DELETED
@@ -1,9 +0,0 @@
1
- # Placeholder to satisfy Rails.
2
- #
3
- # Do NOT add any require statements to this file. Doing
4
- # so will cause Rails to load this plugin all of the time.
5
- #
6
- # Running 'ruby script/generate rspec' will
7
- # generate spec/spec_helper.rb, which includes the necessary
8
- # require statements and configuration. This file should
9
- # be required by all of your spec files.
@@ -1,5 +0,0 @@
1
- Autotest.add_discovery do
2
- style = []
3
- style << "rails" if File.exist? 'config/environment.rb'
4
- style
5
- end
@@ -1,76 +0,0 @@
1
- # (c) Copyright 2006 Nick Sieger <nicksieger@gmail.com>
2
- #
3
- # Permission is hereby granted, free of charge, to any person
4
- # obtaining a copy of this software and associated documentation files
5
- # (the "Software"), to deal in the Software without restriction,
6
- # including without limitation the rights to use, copy, modify, merge,
7
- # publish, distribute, sublicense, and/or sell copies of the Software,
8
- # and to permit persons to whom the Software is furnished to do so,
9
- # subject to the following conditions:
10
- #
11
- # The above copyright notice and this permission notice shall be
12
- # included in all copies or substantial portions of the Software.
13
- #
14
- # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
18
- # BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
19
- # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
- # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- # SOFTWARE.
22
-
23
- $:.push(*Dir["vendor/rails/*/lib"])
24
-
25
- require 'active_support'
26
- require 'autotest/rspec'
27
-
28
- Autotest.add_hook :initialize do |at|
29
- %w{config/ coverage/ db/ doc/ log/ public/ script/ tmp/ vendor/rails vendor/plugins previous_failures.txt}.each do |exception|
30
- at.add_exception(exception)
31
- end
32
-
33
- at.clear_mappings
34
-
35
- at.add_mapping(%r%^(test|spec)/fixtures/(.*).yml$%) { |_, m|
36
- ["spec/models/#{m[2].singularize}_spec.rb"] + at.files_matching(%r%^spec\/views\/#{m[2]}/.*_spec\.rb$%)
37
- }
38
- at.add_mapping(%r%^spec/(models|controllers|routing|views|helpers|lib)/.*rb$%) { |filename, _|
39
- filename
40
- }
41
- at.add_mapping(%r%^app/models/(.*)\.rb$%) { |_, m|
42
- ["spec/models/#{m[1]}_spec.rb"]
43
- }
44
- at.add_mapping(%r%^app/views/(.*)$%) { |_, m|
45
- at.files_matching %r%^spec/views/#{m[1]}_spec.rb$%
46
- }
47
- at.add_mapping(%r%^app/controllers/(.*)\.rb$%) { |_, m|
48
- if m[1] == "application"
49
- at.files_matching %r%^spec/controllers/.*_spec\.rb$%
50
- else
51
- ["spec/controllers/#{m[1]}_spec.rb"]
52
- end
53
- }
54
- at.add_mapping(%r%^app/helpers/(.*)_helper\.rb$%) { |_, m|
55
- if m[1] == "application" then
56
- at.files_matching(%r%^spec/(views|helpers)/.*_spec\.rb$%)
57
- else
58
- ["spec/helpers/#{m[1]}_helper_spec.rb"] + at.files_matching(%r%^spec\/views\/#{m[1]}/.*_spec\.rb$%)
59
- end
60
- }
61
- at.add_mapping(%r%^config/routes\.rb$%) {
62
- at.files_matching %r%^spec/(controllers|routing|views|helpers)/.*_spec\.rb$%
63
- }
64
- at.add_mapping(%r%^config/database\.yml$%) { |_, m|
65
- at.files_matching %r%^spec/models/.*_spec\.rb$%
66
- }
67
- at.add_mapping(%r%^(spec/(spec_helper|shared/.*)|config/(boot|environment(s/test)?))\.rb$%) {
68
- at.files_matching %r%^spec/(models|controllers|routing|views|helpers)/.*_spec\.rb$%
69
- }
70
- at.add_mapping(%r%^lib/(.*)\.rb$%) { |_, m|
71
- ["spec/lib/#{m[1]}_spec.rb"]
72
- }
73
- end
74
-
75
- class Autotest::RailsRspec < Autotest::Rspec
76
- end
@@ -1,39 +0,0 @@
1
- module Spec
2
- module Rails
3
- module Example
4
- class AssignsHashProxy #:nodoc:
5
- def initialize(example_group, &block)
6
- @target = block.call
7
- @example_group = example_group
8
- end
9
-
10
- def [](key)
11
- return false if false == assigns[key] || false == assigns[key.to_s]
12
- assigns[key] || assigns[key.to_s] || @target.instance_variable_get("@#{key}")
13
- end
14
-
15
- def []=(key, val)
16
- @target.instance_variable_set("@#{key}", val)
17
- end
18
-
19
- def delete(key)
20
- assigns.delete(key.to_s)
21
- @target.instance_variable_set("@#{key}", nil)
22
- end
23
-
24
- def each(&block)
25
- assigns.each &block
26
- end
27
-
28
- def has_key?(key)
29
- assigns.key?(key.to_s)
30
- end
31
-
32
- protected
33
- def assigns
34
- @example_group.orig_assigns
35
- end
36
- end
37
- end
38
- end
39
- end