aboutsummaryrefslogtreecommitdiffstats
path: root/railties/test/generators/scaffold_controller_generator_test.rb
diff options
context:
space:
mode:
Diffstat (limited to 'railties/test/generators/scaffold_controller_generator_test.rb')
-rw-r--r--railties/test/generators/scaffold_controller_generator_test.rb50
1 files changed, 50 insertions, 0 deletions
diff --git a/railties/test/generators/scaffold_controller_generator_test.rb b/railties/test/generators/scaffold_controller_generator_test.rb
index 1382133d7b..ed54ce43da 100644
--- a/railties/test/generators/scaffold_controller_generator_test.rb
+++ b/railties/test/generators/scaffold_controller_generator_test.rb
@@ -75,6 +75,19 @@ class ScaffoldControllerGeneratorTest < Rails::Generators::TestCase
assert_file "test/functional/users_controller_test.rb" do |content|
assert_match(/class UsersControllerTest < ActionController::TestCase/, content)
assert_match(/test "should get index"/, content)
+ assert_match(/post :create, user: \{ age: @user.age, name: @user.name \}/, content)
+ assert_match(/put :update, id: @user, user: \{ age: @user.age, name: @user.name \}/, content)
+ end
+ end
+
+ def test_functional_tests_without_attributes
+ run_generator ["User"]
+
+ assert_file "test/functional/users_controller_test.rb" do |content|
+ assert_match(/class UsersControllerTest < ActionController::TestCase/, content)
+ assert_match(/test "should get index"/, content)
+ assert_match(/post :create, user: \{ \}/, content)
+ assert_match(/put :update, id: @user, user: \{ \}/, content)
end
end
@@ -129,4 +142,41 @@ class ScaffoldControllerGeneratorTest < Rails::Generators::TestCase
assert_match(/\{ render action: "new" \}/, content)
end
end
+
+ def test_http_only_generates_controller_without_respond_to_block_and_html_format
+ run_generator ["User", "--http"]
+
+ assert_file "app/controllers/users_controller.rb" do |content|
+ assert_match(/render json: @user/, content)
+ assert_no_match(/respond_to/, content)
+ assert_no_match(/format\.html/, content)
+ end
+ end
+
+ def test_http_only_generates_functional_tests_with_json_format_and_http_status_assertions
+ run_generator ["User", "--http"]
+
+ assert_file "test/functional/users_controller_test.rb" do |content|
+ assert_match(/class UsersControllerTest < ActionController::TestCase/, content)
+ assert_match(/@request\.accept = "application\/json"/, content)
+ assert_match(/test "should get index"/, content)
+
+ assert_match(/assert_response 201/, content)
+ assert_no_match(/assert_redirected_to/, content)
+ end
+ end
+
+ def test_http_only_does_not_generate_edit_action
+ run_generator ["User", "--http"]
+
+ assert_file "app/controllers/users_controller.rb" do |content|
+ assert_match(/def index/, content)
+ assert_no_match(/def edit/, content)
+ end
+
+ assert_file "test/functional/users_controller_test.rb" do |content|
+ assert_match(/test "should get index"/, content)
+ assert_no_match(/test "should get edit"/, content)
+ end
+ end
end