diff options
author | Adam Mulvany <amulvany@gitlab.com> | 2019-02-15 11:16:58 +1100 |
---|---|---|
committer | Rémy Coutable <remy@rymai.me> | 2019-02-21 18:29:00 +0100 |
commit | 38bbc097fabfc90344443003df030d97aee63673 (patch) | |
tree | dc4f51378a51cdafc39bab3f39be60ab529800ff /spec/serializers | |
parent | cf8c2eeba4fdf0f107aad312c09ab26eac04a29c (diff) | |
download | gitlab-ce-38bbc097fabfc90344443003df030d97aee63673.tar.gz |
Properly implement API pagination headers and add specs
Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'spec/serializers')
-rw-r--r-- | spec/serializers/environment_serializer_spec.rb | 9 | ||||
-rw-r--r-- | spec/serializers/pipeline_serializer_spec.rb | 14 |
2 files changed, 6 insertions, 17 deletions
diff --git a/spec/serializers/environment_serializer_spec.rb b/spec/serializers/environment_serializer_spec.rb index 3541bd5f12e..375a28a8c72 100644 --- a/spec/serializers/environment_serializer_spec.rb +++ b/spec/serializers/environment_serializer_spec.rb @@ -124,10 +124,10 @@ describe EnvironmentSerializer do end context 'when used with pagination' do - let(:request) { spy('request') } + let(:request) { double(url: "#{Gitlab.config.gitlab.url}:8080/api/v4/projects?#{query.to_query}", query_parameters: query) } let(:response) { spy('response') } let(:resource) { Environment.all } - let(:pagination) { { page: 1, per_page: 2 } } + let(:query) { { page: 1, per_page: 2 } } let(:serializer) do described_class @@ -135,11 +135,6 @@ describe EnvironmentSerializer do .with_pagination(request, response) end - before do - allow(request).to receive(:query_parameters) - .and_return(pagination) - end - subject { serializer.represent(resource) } it 'creates a paginated serializer' do diff --git a/spec/serializers/pipeline_serializer_spec.rb b/spec/serializers/pipeline_serializer_spec.rb index 79aa32b29bb..2bdcb2a45f6 100644 --- a/spec/serializers/pipeline_serializer_spec.rb +++ b/spec/serializers/pipeline_serializer_spec.rb @@ -38,15 +38,9 @@ describe PipelineSerializer do end context 'when used with pagination' do - let(:request) { spy('request') } + let(:request) { double(url: "#{Gitlab.config.gitlab.url}:8080/api/v4/projects?#{query.to_query}", query_parameters: query) } let(:response) { spy('response') } - let(:pagination) { {} } - - before do - allow(request) - .to receive(:query_parameters) - .and_return(pagination) - end + let(:query) { {} } let(:serializer) do described_class.new(current_user: user) @@ -60,7 +54,7 @@ describe PipelineSerializer do context 'when resource is not paginatable' do context 'when a single pipeline object is being serialized' do let(:resource) { create(:ci_empty_pipeline) } - let(:pagination) { { page: 1, per_page: 1 } } + let(:query) { { page: 1, per_page: 1 } } it 'raises error' do expect { subject }.to raise_error( @@ -71,7 +65,7 @@ describe PipelineSerializer do context 'when resource is paginatable relation' do let(:resource) { Ci::Pipeline.all } - let(:pagination) { { page: 1, per_page: 2 } } + let(:query) { { page: 1, per_page: 2 } } context 'when a single pipeline object is present in relation' do before do |