Skip to content

Commit

Permalink
SystemTestCase undef some IntegrationTest methods because it's confus…
Browse files Browse the repository at this point in the history
…ed to use.
  • Loading branch information
yalab committed Jul 1, 2017
1 parent 1e798cc commit 1aea1dd
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 0 deletions.
2 changes: 2 additions & 0 deletions actionpack/lib/action_dispatch/system_test_case.rb
Expand Up @@ -5,6 +5,7 @@
require "action_dispatch/system_testing/server"
require "action_dispatch/system_testing/test_helpers/screenshot_helper"
require "action_dispatch/system_testing/test_helpers/setup_and_teardown"
require "action_dispatch/system_testing/test_helpers/undef_methods"

module ActionDispatch
# = System Testing
Expand Down Expand Up @@ -88,6 +89,7 @@ class SystemTestCase < IntegrationTest
include Capybara::Minitest::Assertions
include SystemTesting::TestHelpers::SetupAndTeardown
include SystemTesting::TestHelpers::ScreenshotHelper
include SystemTesting::TestHelpers::UndefMethods

def initialize(*) # :nodoc:
super
Expand Down
@@ -0,0 +1,24 @@
module ActionDispatch
module SystemTesting
module TestHelpers
module UndefMethods # :nodoc:
extend ActiveSupport::Concern
included do
METHODS = %i(get post put patch delete).freeze

METHODS.each do |verb|
undef_method verb
end

def method_missing(method, *args, &block)
if METHODS.include?(method)
raise NoMethodError
else
super
end
end
end
end
end
end
end
32 changes: 32 additions & 0 deletions actionpack/test/dispatch/system_testing/system_test_case_test.rb
Expand Up @@ -31,3 +31,35 @@ class SetHostTest < DrivenByRackTest
assert_equal "http://example.com", Capybara.app_host
end
end

class UndefMethodsTest < DrivenBySeleniumWithChrome
test "get" do
assert_raise NoMethodError do
get "http://example.com"
end
end

test "post" do
assert_raise NoMethodError do
post "http://example.com"
end
end

test "put" do
assert_raise NoMethodError do
put "http://example.com"
end
end

test "patch" do
assert_raise NoMethodError do
patch "http://example.com"
end
end

test "delete" do
assert_raise NoMethodError do
delete "http://example.com"
end
end
end

0 comments on commit 1aea1dd

Please sign in to comment.