5
votes

I'm using rails 4 with the following gems:

  • guard-rspec (4.3.1)
  • rspec (3.0.0)
  • rspec-core (3.0.3)
  • rspec-expectations (3.0.3)
  • rspec-mocks (3.0.3)
  • rspec-rails (3.0.2)
  • rspec-support (3.0.3)
  • capybara (2.4.1)
  • capybara-webkit (1.1.0)

Capybara works as expected in normal scenarios/examples, but when I want access to a cookie or session, I get a NameError:

undefined local variable or method `session'

I have a custom class I'm using that stores cookie data and retrieves it to remember things about the user and then present certain things on the screen.

But I can't seem to get the tests to pass and I can't view the cookie or session.

Does it need to be mocked? How can I do this?

2
Nathan, did you manage to figure this out? I have a complex form that relies on session data, I cannot test any functionality without first figuring out how to make capybara play nice.DazBaldwin
Have you tried: Capybara.current_session.driver.request.cookiesNathan

2 Answers

3
votes

Capybara.current_session.driver.request.session works in 2.17.0. I'm assuming much hasn't changed though since 2.4.

1
votes

Webkit exposes cookies like this:

page.driver.browser.manage.all_cookies

Reference here: https://github.com/thoughtbot/capybara-webkit/issues/168