Add bin and edit workflow
Gitea Actions Demo / Explore-Gitea-Actions (push) Failing after 9s

This commit is contained in:
2026-09-16 13:11:16 -06:00
parent c8ac4fcae5
commit 4cee170d66
17576 changed files with 895740 additions and 2 deletions
@@ -0,0 +1,339 @@
if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("1.9.0")
require 'spec_helper'
require 'typhoeus/adapters/faraday'
describe Faraday::Adapter::Typhoeus do
let(:base_url) { "http://localhost:3001" }
let(:adapter) { described_class.new(nil) }
let(:request) { Typhoeus::Request.new(base_url) }
let(:conn) do
Faraday.new(:url => base_url) do |faraday|
faraday.adapter :typhoeus
end
end
let(:response) { conn.get("/") }
context "when parallel" do
it "returns a faraday response" do
response = nil
conn.in_parallel { response = conn.get("/") }
expect(response).to be_a(Faraday::Response)
end
it "succeeds" do
response = nil
conn.in_parallel { response = conn.get("/") }
expect(response.status).to be(200)
end
end
context "when not parallel" do
it "returns a faraday response" do
expect(response).to be_a(Faraday::Response)
end
it "succeeds" do
expect(response.status).to be(200)
end
end
context "when a response is stubbed" do
before do
stub = Typhoeus::Response.new \
:code => 200,
:headers => { "Foo" => "2", "Bar" => "3" },
:body => "Hello",
:mock => true
Typhoeus.stub(base_url + '/').and_return(stub)
end
it 'stubs the status code' do
expect(response.status).to eq(200)
end
it 'stubs the response body' do
expect(response.body).to eq("Hello")
end
it 'stubs the headers' do
expect(response.headers).to eq("Foo" => "2", "Bar" => "3")
end
end
describe "#initialize" do
let(:request) { adapter.method(:typhoeus_request).call({}) }
context "when typhoeus request options specified" do
let(:adapter) { described_class.new(nil, { :forbid_reuse => true, :maxredirs => 1 }) }
it "should set option for request" do
expect(request.options[:forbid_reuse]).to be_truthy
expect(request.options[:maxredirs]).to eq(1)
end
end
end
describe "#perform_request" do
let(:env) { {} }
context "when body" do
let(:env) { { :body => double(:read => "body") } }
it "reads body" do
expect(adapter.method(:read_body).call(env)).to eq("body")
end
end
context "parallel_manager" do
context "when given" do
let(:env) { { :parallel_manager => double(:queue => true), :ssl => {}, :request => {} } }
it "uses" do
adapter.method(:perform_request).call(env)
end
end
context "when not given" do
let(:env) { { :method => :get, :ssl => {}, :request => {} } }
it "falls back to single" do
expect(Typhoeus::Request).to receive(:new).and_return(double(:options => {}, :on_complete => [], :run => true))
adapter.method(:perform_request).call(env)
end
end
end
end
describe "#request" do
let(:env) do
{ :url => "url", :method => :get, :body => "body", :request_headers => {}, :ssl => {}, :request => {} }
end
let(:request) { adapter.method(:request).call(env) }
it "returns request" do
expect(request).to be_a(Typhoeus::Request)
end
it "sets url" do
expect(request.base_url).to eq("url")
end
it "sets http method" do
expect(request.original_options[:method]).to eq(:get)
end
it "sets body" do
expect(request.original_options[:body]).to eq("body")
end
it "sets headers" do
expect(request.original_options[:headers]).to eq({})
end
it "sets on_complete callback" do
expect(request.on_complete.size).to eq(1)
end
end
context "when the connection failed" do
before do
stub = Typhoeus::Response.new \
:response_code => 0,
:return_code => 0,
:mock => true
Typhoeus.stub(base_url + '/').and_return(stub)
end
context "when parallel" do
it "isn't successful" do
response = nil
conn.in_parallel { response = conn.get("/") }
expect(response.success?).to be_falsey
end
it "translates the response code into an error message" do
response = nil
conn.in_parallel { response = conn.get("/") }
expect(response.env[:typhoeus_return_message]).to eq("No error")
end
end
context "when not parallel" do
it "raises an error" do
expect { conn.get("/") }.to raise_error(Faraday::ConnectionFailed, "No error")
end
end
end
describe "#configure_socket" do
let(:env) { { :request => { :bind => { :host => "interface" } } } }
before { adapter.method(:configure_socket).call(request, env) }
context "when host" do
it "sets interface" do
expect(request.options[:interface]).to eq("interface")
end
end
end
describe "#configure_timeout" do
before { adapter.method(:configure_timeout).call(request, env) }
context "when timeout" do
let(:env) { { :request => { :timeout => 1 } } }
it "sets timeout_ms" do
expect(request.options[:timeout_ms]).to eq(1000)
end
end
context "when open_timeout" do
let(:env) { { :request => { :open_timeout => 1 } } }
it "sets connecttimeout_ms" do
expect(request.options[:connecttimeout_ms]).to eq(1000)
end
end
end
describe "#configure_proxy" do
before { adapter.method(:configure_proxy).call(request, env) }
context "when proxy" do
let(:env) { { :request => { :proxy => { :uri => double(:scheme => 'http', :host => "localhost", :port => "3001") } } } }
it "sets proxy" do
expect(request.options[:proxy]).to eq("http://localhost:3001")
end
context "when username and password" do
let(:env) do
{ :request => { :proxy => {
:uri => double(:scheme => 'http', :host => :a, :port => :b),
:user => "a",
:password => "b"
} } }
end
it "sets proxyuserpwd" do
expect(request.options[:proxyuserpwd]).to eq("a:b")
end
end
end
end
describe "#configure_ssl" do
before { adapter.method(:configure_ssl).call(request, env) }
context "when version" do
let(:env) { { :ssl => { :version => "a" } } }
it "sets sslversion" do
expect(request.options[:sslversion]).to eq("a")
end
end
context "when client_cert" do
let(:env) { { :ssl => { :client_cert => "a" } } }
it "sets sslcert" do
expect(request.options[:sslcert]).to eq("a")
end
end
context "when client_key" do
let(:env) { { :ssl => { :client_key => "a" } } }
it "sets sslkey" do
expect(request.options[:sslkey]).to eq("a")
end
end
context "when ca_file" do
let(:env) { { :ssl => { :ca_file => "a" } } }
it "sets cainfo" do
expect(request.options[:cainfo]).to eq("a")
end
end
context "when ca_path" do
let(:env) { { :ssl => { :ca_path => "a" } } }
it "sets capath" do
expect(request.options[:capath]).to eq("a")
end
end
context "when client_cert_passwd" do
let(:env) { { :ssl => { :client_cert_passwd => "a" } } }
it "sets keypasswd to the value of client_cert_passwd" do
expect(request.options[:keypasswd]).to eq("a")
end
end
context "when client_certificate_password" do
let(:env) { { :ssl => { :client_certificate_password => "a" } } }
it "sets keypasswd to the value of client_cert_passwd" do
expect(request.options[:keypasswd]).to eq("a")
end
end
context "when no client_cert_passwd" do
let(:env) { { :ssl => { } } }
it "does not set keypasswd on options" do
expect(request.options).not_to have_key :keypasswd
end
end
context "when verify is false" do
let(:env) { { :ssl => { :verify => false } } }
it "sets ssl_verifyhost to 0" do
expect(request.options[:ssl_verifyhost]).to eq(0)
end
it "sets ssl_verifypeer to false" do
expect(request.options[:ssl_verifypeer]).to be_falsey
end
end
context "when verify is true" do
let(:env) { { :ssl => { :verify => true } } }
it "sets ssl_verifyhost to 2" do
expect(request.options[:ssl_verifyhost]).to eq(2)
end
it "sets ssl_verifypeer to true" do
expect(request.options[:ssl_verifypeer]).to be_truthy
end
end
end
describe "#parallel?" do
context "when parallel_manager" do
let(:env) { { :parallel_manager => true } }
it "returns true" do
expect(adapter.method(:parallel?).call(env)).to be_truthy
end
end
context "when no parallel_manager" do
let(:env) { { :parallel_manager => nil } }
it "returns false" do
expect(adapter.method(:parallel?).call(env)).to be_falsey
end
end
end
end
end