Railsでcookieの値で挙動を変えているとき(A/Bテストなど)に
rspecでcookieの値を指定したいことがあります。
環境はCapybara + PhantomJS(poltergeist)の場合
#参照するとき
page.driver.cookies
#設定するとき
page.driver.set_cookie(名前, 値)
のようにすればいけるようです。
既に設定している場合は、いったん消してあげてから設定するとうまくいきます
#いったん削除
page.driver.remove_cookie(名前)
#設定
page.driver.set_cookie(名前, 値)
これで以上なんですが、調べるときにわざわざpry使ってデバッグしてたので
どうやるのが効率がいいんでしょうかねぇ
stackoverflowを見たんですが、環境によってテストに使ってるドライバが
違うことが多いので、必ずしもpage.driverの値が一致するとは限らないですよね
Railsのloginヘルパの前後にbinding.pryを書いて
pry> page.driver
=> #<Capybara::Poltergeist::Driver
って出たんで
Capybara::Poltergeist::Driverのリファレンス見て
あ!set_cookieがある。remove_cookieがあるって気づいた.
使ってるライブラリのリファレンスくらい見ろよって話ですけどね。