Sha256: ab6945473cbaa45707b89f7479cf2cdba3d4023a22c6e1f526bb5b79c5789ce2

Contents?: true

Size: 1.47 KB

Versions: 6

Compression:

Stored size: 1.47 KB

Contents

# frozen_string_literal: true

require 'spec_helper'

RSpec.describe Capybara::Session do
  it "verifies a passed app is a rack app" do
    expect do
      Capybara::Session.new(:unknown, random: "hash")
    end.to raise_error TypeError, "The second parameter to Session::new should be a rack app if passed."
  end

  context "current_driver" do
    it "is global when threadsafe false" do
      Capybara.threadsafe = false
      Capybara.current_driver = :selenium
      thread = Thread.new do
        Capybara.current_driver = :random
      end
      thread.join
      expect(Capybara.current_driver).to eq :random
    end

    it "is thread specific threadsafe true" do
      Capybara.threadsafe = true
      Capybara.current_driver = :selenium
      thread = Thread.new do
        Capybara.current_driver = :random
      end
      thread.join
      expect(Capybara.current_driver).to eq :selenium
    end
  end

  context "session_name" do
    it "is global when threadsafe false" do
      Capybara.threadsafe = false
      Capybara.session_name = "sess1"
      thread = Thread.new do
        Capybara.session_name = "sess2"
      end
      thread.join
      expect(Capybara.session_name).to eq "sess2"
    end

    it "is thread specific when threadsafe true" do
      Capybara.threadsafe = true
      Capybara.session_name = "sess1"
      thread = Thread.new do
        Capybara.session_name = "sess2"
      end
      thread.join
      expect(Capybara.session_name).to eq "sess1"
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
capybara-3.0.3 spec/session_spec.rb
capybara-3.0.2 spec/session_spec.rb
capybara-3.0.1 spec/session_spec.rb
capybara-3.0.0 spec/session_spec.rb
capybara-3.0.0.rc2 spec/session_spec.rb
capybara-3.0.0.rc1 spec/session_spec.rb