Sha256: dd8c75d268fa8ba23462083472181f0f2c7a9259f3ea1d18146b68438a4d0915
Contents?: true
Size: 1.53 KB
Versions: 3
Compression:
Stored size: 1.53 KB
Contents
RSpec.describe ROM::HTTP::Relation do let(:uri) { 'http://localhost:3000' } let(:headers) { { accept: 'application/json' } } let(:rom) { ROM::Environment.new } let(:container) { rom.finalize.env } let(:request_handler) { double(Proc) } let(:response_handler) { double(Proc) } let(:relation) do Class.new(ROM::HTTP::Relation) do dataset :users def by_id(id) append_path(id.to_s) end def filter(params) with_params(params) end end end let(:response) { double } let(:tuples) { [] } let(:dataset) do ROM::HTTP::Dataset.new( { uri: uri, headers: headers, request_handler: request_handler, response_handler: response_handler, name: :users }, request_method: :get, path: "/#{id}", params: params ) end let(:id) { 1337 } let(:params) { { filters: { first_name: 'John' } } } before do rom.setup( :http, uri: uri, headers: headers, request_handler: request_handler, response_handler: response_handler ) end before do rom.register_relation(relation) allow(request_handler).to receive(:call).and_return(response) allow(response_handler).to receive(:call).and_return(tuples) end subject! { container.relation(:users).by_id(id).filter(params).to_a } it do expect(request_handler).to have_received(:call).with(dataset).once expect(response_handler).to have_received(:call).with(response, dataset).once is_expected.to eq(tuples) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rom-http-0.1.1 | spec/integration/abstract/relation_spec.rb |
rom-http-0.1.0 | spec/integration/abstract/relation_spec.rb |
rom-http-0.0.1 | spec/integration/abstract/relation_spec.rb |