1
0
Fork 0
mirror of https://github.com/teamcapybara/capybara.git synced 2022-11-09 12:08:07 -05:00

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. # Yield a block using a specific session name.
# #
def using_session(name) def using_session(name)
previous_session_name = self.session_name
self.session_name = name self.session_name = name
yield yield
ensure ensure
self.session_name = :default self.session_name = previous_session_name
end end
## ##

View file

@ -137,7 +137,7 @@ RSpec.describe Capybara::DSL do
Capybara.using_wait_time 6 do Capybara.using_wait_time 6 do
raise "hell" raise "hell"
end end
end.to raise_error end.to raise_error(RuntimeError, "hell")
expect(Capybara.default_max_wait_time).to eq(@previous_wait_time) expect(Capybara.default_max_wait_time).to eq(@previous_wait_time)
end end
end end
@ -219,6 +219,17 @@ RSpec.describe Capybara::DSL do
Capybara.using_session(:administrator) { called = true } Capybara.using_session(:administrator) { called = true }
expect(called).to eq(true) expect(called).to eq(true)
end 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 end
describe "#session_name" do describe "#session_name" do