Refactored requester to inject dependencies

Reduces duplication by injecting what is already registered.

Milestone: patch
This commit is contained in:
Brooke Kuhlmann
2025-05-05 17:00:55 -06:00
parent 175795b2b2
commit 2f5938a808
2 changed files with 7 additions and 4 deletions
+3 -4
View File
@@ -8,14 +8,13 @@ module TRMNL
# Provides a low level configurable and monadic API client.
# :reek:DataClump
class Requester
include Dependencies[:settings, :http]
include Dry::Monads[:result]
HEADERS = {}.freeze
def initialize settings: TRMNL::API::Configuration::Loader.new.call, http: HTTP
@settings = settings
@http = http
def initialize(**)
super
yield settings if block_given?
end
+4
View File
@@ -7,7 +7,11 @@ RSpec.describe TRMNL::API::Requester do
subject(:requester) { described_class.new http: }
include_context "with application dependencies"
describe "#initialize" do
let(:http) { HTTP }
it "initializes with block" do
requester = described_class.new { |settings| settings.content_type = "application/xml" }
body = requester.get("bogus").failure.to_s