Sha256: d90784aa180e2c0b03271b57805bbfce3fff2170089112b89220eee77b868213

Contents?: true

Size: 1.58 KB

Versions: 6

Compression:

Stored size: 1.58 KB

Contents

# frozen_string_literal: true

require "spec_helpers"

describe Wayfarer::Networking::Pool do
  subject(:pool) { Wayfarer::Networking::Pool.send(:new) }

  after { pool.free }

  describe "#with" do
    context "by default" do
      it "yields HTTP" do
        pool.with do |context|
          expect(context.strategy).to be_a(Wayfarer::Networking::HTTP)
        end
      end
    end

    context "when using Ferrum", ferrum: true do
      before { Wayfarer.config.network.agent = :ferrum }

      it "yields Ferrum" do
        pool.with do |context|
          expect(context.strategy).to be_a(Wayfarer::Networking::Ferrum)
        end
      end
    end

    context "when using Selenium", selenium: true do
      before { Wayfarer.config.network.agent = :selenium }

      it "yields Selenium" do
        pool.with do |context|
          expect(context.strategy).to be_a(Wayfarer::Networking::Selenium)
        end
      end
    end

    context "when using Capybara", ferrum: true do
      before do
        Wayfarer.config.network.agent = :capybara
        Wayfarer.config.capybara.driver = :cuprite
      end

      it "yields Capybara" do
        pool.with do |context|
          expect(context.strategy).to be_a(Wayfarer::Networking::Capybara)
        end
      end
    end
  end

  describe "#free" do
    let(:strategy) { double(create: spy) }

    before do
      pool.class.registry[:foobar] = double(new: strategy)
      Wayfarer.config.network.agent = :foobar
    end

    it "destroys the strategy" do
      expect(strategy).to receive(:destroy)
      pool.with {}
      pool.free
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
wayfarer-0.4.6 spec/networking/pool_spec.rb
wayfarer-0.4.5 spec/networking/pool_spec.rb
wayfarer-0.4.4 spec/networking/pool_spec.rb
wayfarer-0.4.3 spec/networking/pool_spec.rb
wayfarer-0.4.2 spec/networking/pool_spec.rb
wayfarer-0.4.1 spec/networking/pool_spec.rb