From ec15a2eaaf4050a76b88430cf19c7fbabf902b38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Serge=20H=C3=A4nni?= Date: Mon, 13 Jun 2022 08:53:02 +0200 Subject: [PATCH] Add pagination specs --- spec/ioki/apis/endpoints/index_spec.rb | 28 ++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/spec/ioki/apis/endpoints/index_spec.rb b/spec/ioki/apis/endpoints/index_spec.rb index 8de79c59..c0adb30f 100644 --- a/spec/ioki/apis/endpoints/index_spec.rb +++ b/spec/ioki/apis/endpoints/index_spec.rb @@ -96,6 +96,34 @@ expect(result.map(&:id)).to eq(%w[001 002 003 004 005]) end + it 'paginates and returns the first page' do + result = endpoint.call client, [], model_class: model_class, params: params, paginate: true + + expect(result).to be_kind_of(Ioki::Model::Response) + + expect(result.data).to be_kind_of(Array) + expect(result.data.size).to eq(2) + expect(result.data.map(&:id)).to eq(%w[001 002]) + + expect(result.meta).to be_kind_of(Ioki::Model::Meta) + expect(result.meta.page).to eq 1 + expect(result.meta.last_page).to be false + end + + it 'paginates and returns another page' do + result = endpoint.call client, [], model_class: model_class, params: params.merge(page: 3), paginate: true + + expect(result).to be_kind_of(Ioki::Model::Response) + + expect(result.data).to be_kind_of(Array) + expect(result.data.size).to eq(1) + expect(result.data.map(&:id)).to eq(%w[005]) + + expect(result.meta).to be_kind_of(Ioki::Model::Meta) + expect(result.meta.page).to eq 3 + expect(result.meta.last_page).to be true + end + it 'yields 5 times to the given block using auto_paginate' do expect do |block| endpoint.call client, [], model_class: model_class, params: params, auto_paginate: true, &block