using_session should be nestable

This commit is contained in:
Thomas Walpole 2015-08-13 10:44:59 -07:00
parent 063e4a971d
commit 1016d2cd18
2 changed files with 14 additions and 2 deletions

View File

@ -275,10 +275,11 @@ module Capybara
# Yield a block using a specific session name.
#
def using_session(name)
previous_session_name = self.session_name
self.session_name = name
yield
ensure
self.session_name = :default
self.session_name = previous_session_name
end
##

View File

@ -137,7 +137,7 @@ RSpec.describe Capybara::DSL do
Capybara.using_wait_time 6 do
raise "hell"
end
end.to raise_error
end.to raise_error(RuntimeError, "hell")
expect(Capybara.default_max_wait_time).to eq(@previous_wait_time)
end
end
@ -219,6 +219,17 @@ RSpec.describe Capybara::DSL do
Capybara.using_session(:administrator) { called = true }
expect(called).to eq(true)
end
it "should be nestable" do
Capybara.using_session(:outer) do
expect(Capybara.session_name).to eq(:outer)
Capybara.using_session(:inner) do
expect(Capybara.session_name).to eq(:inner)
end
expect(Capybara.session_name).to eq(:outer)
end
expect(Capybara.session_name).to eq(:default)
end
end
describe "#session_name" do