diff --git a/lib/capybara/session.rb b/lib/capybara/session.rb index 06fbcf39..100daf12 100644 --- a/lib/capybara/session.rb +++ b/lib/capybara/session.rb @@ -67,6 +67,7 @@ module Capybara attr_accessor :synchronized def initialize(mode, app=nil) + raise ArgumentError, "The second parameter to Session::new should be a rack app if passed." if app && !app.respond_to?(:call) @mode = mode @app = app if Capybara.run_server and @app and driver.needs_server? diff --git a/spec/session_spec.rb b/spec/session_spec.rb new file mode 100644 index 00000000..5e911033 --- /dev/null +++ b/spec/session_spec.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true +require 'spec_helper' + +RSpec.describe Capybara::Session do + it "verifies a passed app is a rack app" do + expect do + Capybara::Session.new(:unknown, { random: "hash"}) + end.to raise_error ArgumentError, "The second parameter to Session::new should be a rack app if passed." + end +end