Sha256: a6050bc1eef52da39e834da69b73ddae62395740caef5dba8a25e4a4bc4e44aa

Contents?: true

Size: 1.66 KB

Versions: 42

Compression:

Stored size: 1.66 KB

Contents

require "spec_helper"

module CloudSesame
  module Query
    module Node
      describe Page do
        let(:node) { Page.new(arguments) }

        describe '#initialize' do
          context 'when arguments passed in' do
            let(:arguments) { { page: 2, size: 13 } }
            it 'should initialize the page with the page argument' do
              expect(node.page).to eq 2
            end
            it 'should initialize the size with the size argument' do
              expect(node.size).to eq 13
            end
          end
          context 'when arguments NOT passed in' do
            let(:arguments) { {} }
            it 'should default the page to 1' do
              expect(node.page).to eq 1
            end
            it 'should default the size to 10' do
              expect(node.size).to eq 10
            end
          end
        end

        describe 'start' do
          [{
            page: 1, size: 100, expect_start: 0
          }, {
            page: 2, size: 10, expect_start: 10
          }, {
            page: 3, size: 13, expect_start: 26
          }].each do |arguments|
            it 'should calculate and return the starting point' do
              node = Page.new arguments
              expect(node.start).to eq arguments[:expect_start]
            end
          end
        end

        describe '#run' do
          let(:arguments) { { page: 3, size: 13 } }
          it 'should return the calculated start' do
            expect(node.compile).to include start: node.start
          end
          it 'should return the size' do
            expect(node.compile).to include size: arguments[:size]
          end
        end

      end
    end
  end
end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
CloudSesame-0.6.8 spec/cloud_sesame/query/node/page_spec.rb
CloudSesame-0.6.7 spec/cloud_sesame/query/node/page_spec.rb
CloudSesame-0.6.6 spec/cloud_sesame/query/node/page_spec.rb
CloudSesame-0.6.5 spec/cloud_sesame/query/node/page_spec.rb
CloudSesame-0.6.4 spec/cloud_sesame/query/node/page_spec.rb
CloudSesame-0.6.3 spec/cloud_sesame/query/node/page_spec.rb
CloudSesame-0.6.2 spec/cloud_sesame/query/node/page_spec.rb
CloudSesame-0.6.1 spec/cloud_sesame/query/node/page_spec.rb
CloudSesame-0.6.0 spec/cloud_sesame/query/node/page_spec.rb
CloudSesame-0.5.5 spec/cloud_sesame/query/node/page_spec.rb
CloudSesame-0.5.4 spec/cloud_sesame/query/node/page_spec.rb
CloudSesame-0.5.3 spec/cloud_sesame/query/node/page_spec.rb
CloudSesame-0.5.2 spec/cloud_sesame/query/node/page_spec.rb
CloudSesame-0.5.1 spec/cloud_sesame/query/node/page_spec.rb
CloudSesame-0.5.0 spec/cloud_sesame/query/node/page_spec.rb
CloudSesame-0.4.6 spec/cloud_sesame/query/node/page_spec.rb
CloudSesame-0.4.5 spec/cloud_sesame/query/node/page_spec.rb
CloudSesame-0.4.4 spec/cloud_sesame/query/node/page_spec.rb
CloudSesame-0.4.3 spec/cloud_sesame/query/node/page_spec.rb
CloudSesame-0.4.2 spec/cloud_sesame/query/node/page_spec.rb