Rails, Cucumber, Capybara: session is not persisted

后端 未结 3 2055
清酒与你
清酒与你 2020-12-19 02:36

I\'m trying to write a test for a feature that relies on some session stored data and my scenario looks like this:

Scenario: Create offer
  Given I am on the         


        
3条回答
  •  太阳男子
    2020-12-19 02:56

    Some of the drivers don't have a clear way of setting cookies. This is a hacky workaround until they are sorted out:

      def set_cookie(name, value, domain)
        driver = Capybara.current_session.driver rescue nil
    
        return unless driver
    
        case driver
        when Capybara::Driver::RackTest
          driver.set_cookie "#{name}=#{value}"
        when Capybara::Driver::Selenium
          visit '/' # must visit the domain before we can set the cookie
    
          br = driver.browser.send(:bridge)
    
          br.addCookie({
            'name'    => name,
            'domain'  => domain,
            'value'   => value,
            'path'    => '/',
            'expires' => (Time.now + 100.years).to_i
          })
        else
          raise "Unsupported driver #{driver}"
        end
      end
    

提交回复
热议问题