From 9fc3ad9735d19ef9428f780c6a71e58eae99a619 Mon Sep 17 00:00:00 2001 From: Thomas Walpole Date: Sat, 10 Dec 2016 10:33:25 -0800 Subject: [PATCH] warn when the app passed doesnt respond to #call --- lib/capybara/session.rb | 1 + spec/session_spec.rb | 10 ++++++++++ 2 files changed, 11 insertions(+) create mode 100644 spec/session_spec.rb 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