1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
# frozen_string_literal: true
RSpec.describe "gemcutter's dependency API" do
context "when Gemcutter API takes too long to respond" do
before do
require_rack
port = find_unused_port
@server_uri = "http://127.0.0.1:#{port}"
require_relative "../../support/artifice/endpoint_timeout"
require_relative "../../support/silent_logger"
require "rackup/server"
@t = Thread.new do
server = Rackup::Server.start(app: EndpointTimeout,
Host: "0.0.0.0",
Port: port,
server: "webrick",
AccessLog: [],
Logger: Spec::SilentLogger.new)
server.start
end
@t.run
wait_for_server("127.0.0.1", port)
bundle "config set timeout 1"
end
after do
Artifice.deactivate
@t.kill
@t.join
end
it "times out and falls back on the modern index" do
install_gemfile <<-G, artifice: nil, env: { "BUNDLER_SPEC_GEM_REPO" => gem_repo1.to_s }
source "#{@server_uri}"
gem "myrack"
G
expect(out).to include("Fetching source index from #{@server_uri}/")
expect(the_bundle).to include_gems "myrack 1.0.0"
end
end
end
|