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,256 @@
require 'spec_helper'
describe Typhoeus::Request do
let(:base_url) { "localhost:3001" }
let(:options) do
{
verbose: true,
headers: { "User-Agent" => "Fubar", "Expect" => "" },
maxredirs: 50
}
end
let(:request) { Typhoeus::Request.new(base_url, options) }
describe ".url" do
context "when no parameters" do
it "returns base_url" do
expect(request.url).to eq(request.base_url)
end
end
context "when parameters" do
let(:options) { {:params => {:a => 1}} }
it "returns full url" do
expect(request.url).to eq("#{request.base_url}?a=1")
end
end
it "pushes an easy back into the pool" do
easy = double.as_null_object
allow(Typhoeus::Pool).to receive(:get).and_return(easy)
expect(Typhoeus::Pool).to receive(:release).with(easy)
request.url
end
end
describe ".new" do
it "stores base_url" do
expect(request.base_url).to eq(base_url)
end
it "stores options" do
expect(request.options).to eq(options)
end
it "stores original options" do
expect(request.original_options).to eq(options)
expect(request.original_options).to_not be(request.options)
end
it "sets defaults" do
expect(request.options[:headers]['User-Agent']).to be
end
end
describe "set_defaults" do
context "when header with user agent" do
let(:options) { {:headers => {'User-Agent' => "Custom"} } }
it "doesn't modify user agent" do
expect(request.options[:headers]['User-Agent']).to eq("Custom")
end
end
context "when header without user agent" do
let(:options) { {:headers => {} } }
it "add user agent" do
agent = request.options[:headers]['User-Agent']
expect(agent).to eq(Typhoeus::USER_AGENT)
end
end
context "when Config.user_agent set" do
before { Typhoeus.configure { |config| config.user_agent = "Default" } }
after { Typhoeus.configure { |config| config.user_agent = nil } }
context "with headers" do
let(:options) { {:headers => { "User-Agent" => "Fubar" } } }
it "uses the request options' user agent" do
expect(request.options[:headers]["User-Agent"]).to eq("Fubar")
end
end
context "without headers" do
let(:options) { {:headers => {} } }
it "uses the global options' user agent" do
expect(request.options[:headers]["User-Agent"]).to eq("Default")
end
end
end
context "when Config.verbose set" do
before { Typhoeus.configure { |config| config.verbose = true} }
after { Typhoeus.configure { |config| config.verbose = false} }
it "respects" do
expect(request.options[:verbose]).to be_truthy
end
end
context "when Config.timeout set" do
before { Typhoeus.configure { |config| config.timeout = 10 } }
after { Typhoeus.configure { |config| config.timeout = nil } }
it "respects configuration" do
expect(request.options[:timeout]).to eq(10)
end
end
context "when Config.connecttimeout set" do
before { Typhoeus.configure { |config| config.connecttimeout = 10 } }
after { Typhoeus.configure { |config| config.connecttimeout = nil } }
it "respects configuration" do
expect(request.options[:connecttimeout]).to eq(10)
end
end
context "when maxredirs" do
context "when not set" do
it "defaults to 50" do
expect(request.options[:maxredirs]).to be(50)
end
end
context "when set" do
let(:options) { {:maxredirs => 1} }
it "respects" do
expect(request.options[:maxredirs]).to be(1)
end
end
end
context "when Config.proxy set" do
before { Typhoeus.configure { |config| config.proxy = "http://proxy.internal" } }
after { Typhoeus.configure { |config| config.proxy = nil } }
it "respects" do
expect(request.options[:proxy]).to eq("http://proxy.internal")
end
context "when option proxy set" do
let(:options) { {:proxy => nil} }
it "does not override" do
expect(request.options[:proxy]).to be_nil
end
end
end
end
describe "#eql?" do
context "when another class" do
let(:other) { "" }
it "returns false" do
expect(request).to_not eql other
end
end
context "when same class" do
let(:other) { Typhoeus::Request.new("base_url", options) }
context "when other base_url" do
it "returns false" do
expect(request).to_not eql other
end
end
context "when same base_url and other options" do
let(:other) { Typhoeus::Request.new(base_url, {}) }
it "returns false" do
expect(request).to_not eql other
end
end
context "when same base_url and options" do
context "when same order" do
let(:other) { Typhoeus::Request.new(base_url, options) }
it "returns true" do
expect(request).to eql other
end
end
context "when different order" do
let(:other_options) {
{:headers => { 'User-Agent' => "Fubar", 'Expect' => ""}, :verbose => true }
}
let(:other) { Typhoeus::Request.new(base_url, other_options)}
it "returns true" do
expect(request).to eql other
end
end
end
end
end
describe "#hash" do
context "when request.eql?(other)" do
context "when different order" do
let(:other_options) {
{:headers => { 'User-Agent' => "Fubar", 'Expect' => "" }, :verbose => true }
}
let(:other) { Typhoeus::Request.new(base_url, other_options)}
it "has same hashes" do
expect(request.hash).to eq(other.hash)
end
end
context "when same order" do
let(:other) { Typhoeus::Request.new(base_url, options) }
it "has same hashes" do
expect(request.hash).to eq(other.hash)
end
end
context "when hashes with different orders are contained in arrays" do
let(:request) { Typhoeus::Request.new(base_url, :params => [{:b => 2, :a => 1}]) }
let(:other) { Typhoeus::Request.new(base_url, :params => [{:a => 1, :b => 2}]) }
it "has different hashes" do
expect(request.hash).to eq(other.hash)
end
end
end
context "when not request.eql?(other)" do
let(:request) { Typhoeus::Request.new(base_url, :params => {:foo => 'bar'}) }
let(:other) { Typhoeus::Request.new(base_url, :params => {:foo => 'baz'}) }
it "has different hashes" do
expect(request.hash).to_not eq(other.hash)
end
end
end
describe "#encoded_body" do
let(:request) {
Typhoeus::Request.new("www.example.com",:body => {:a => 1})
}
it "returns encoded body" do
expect(request.encoded_body).to eq("a=1")
end
end
end