Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions lib/twingly/http.rb
Original file line number Diff line number Diff line change
Expand Up @@ -42,11 +42,12 @@ class Client # rubocop:disable Metrics/ClassLength
attr_writer :follow_redirects

attr_accessor :follow_redirects_limit
attr_accessor :logger
attr_accessor :retryable_exceptions

def initialize(logger:, base_user_agent:)
@logger = logger
def initialize(base_user_agent:, logger: default_logger)
@base_user_agent = base_user_agent
@logger = logger

initialize_defaults
end
Expand All @@ -61,6 +62,10 @@ def post(url, body:, headers: {})

private

def default_logger
Logger.new(File::NULL)
end

def initialize_defaults
@request_id = nil
@http_timeout = DEFAULT_HTTP_TIMEOUT
Expand Down
21 changes: 19 additions & 2 deletions spec/lib/twingly/http_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@
class CustomError < StandardError; end

RSpec.describe Twingly::HTTP::Client do
let(:logger) { NullLogger.new }
let(:logger) { Logger.new(File::NULL) }
let(:url) { "http://example.org/" }
let(:base_user_agent) { "Twingly::HTTP/1.0" }

let(:client) do
client =
described_class.new(logger: logger, base_user_agent: base_user_agent)
described_class.new(base_user_agent: base_user_agent, logger: logger)

client.request_id = request_id if defined?(request_id)

Expand Down Expand Up @@ -468,6 +468,23 @@ class CustomError < StandardError; end
end
end

describe "#initialize" do
context "when no logger is given" do
subject(:default_logger) do
client = described_class.new(base_user_agent: base_user_agent)

client.logger
end

it { is_expected.to be_a(Logger) }

it "suppresses all output" do
expect { default_logger.info("foo") }
.to_not output(/foo/).to_stdout
end
end
end

describe "#post", vcr: Fixture.post_example_org do
include_examples "common HTTP behaviour for", :post

Expand Down
13 changes: 0 additions & 13 deletions spec/spec_help/null_logger.rb

This file was deleted.

1 change: 0 additions & 1 deletion spec/spec_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@

require_relative "spec_help/env_helper"
require_relative "spec_help/fixture"
require_relative "spec_help/null_logger"
require_relative "spec_help/test_logger"
require_relative "spec_help/toxiproxy_config"

Expand Down