Sha256: 5788369f4badc867992aefd315d394d06a9d8b912c8a2ed4d585bbe8369addcb
Contents?: true
Size: 1.85 KB
Versions: 9
Compression:
Stored size: 1.85 KB
Contents
# frozen_string_literal: true require 'spec_helper' require 'drillbit/resource/model' module Drillbit module Resource describe Model do it 'can chain multiple processors together' do resource = double processed_resource = double model = Model.new(resource: resource, parameters: { 'filter' => { 'query' => 'my_query', 'single_arity' => true, 'multiple_arity' => 'multi', }, 'sort' => 'my_attribute', 'page' => { 'number' => 10, 'size' => 100, }, }) allow(resource).to receive(:single_arity). and_return(resource) allow(resource).to receive(:multiple_arity). with('multi'). and_return(resource) allow(resource).to receive(:order). with('my_attribute' => 'asc'). and_return(resource) allow(resource).to receive(:page). with(10). and_return(resource) allow(resource).to receive(:per). with(100). and_return(resource) allow(resource).to receive(:for_query). with('my_query'). and_return(processed_resource) allow(processed_resource).to receive(:total_pages). and_return(10) allow(processed_resource).to receive(:current_page). and_return(5) allow(processed_resource).to receive(:prev_page). and_return(4) allow(processed_resource).to receive(:next_page). and_return(6) expect(model.processed).to eql processed_resource expect(model.meta).to eql( 'current-page' => 5, 'total-pages' => 10, 'previous-page' => 4, 'next-page' => 6, 'sort' => { 'my_attribute' => 'asc' }, ) end end end end
Version data entries
9 entries across 9 versions & 1 rubygems