diff options
Diffstat (limited to 'spec/lib/gitlab/pagination')
-rw-r--r-- | spec/lib/gitlab/pagination/cursor_based_keyset_spec.rb | 24 | ||||
-rw-r--r-- | spec/lib/gitlab/pagination/keyset/simple_order_builder_spec.rb | 28 |
2 files changed, 24 insertions, 28 deletions
diff --git a/spec/lib/gitlab/pagination/cursor_based_keyset_spec.rb b/spec/lib/gitlab/pagination/cursor_based_keyset_spec.rb index 879c874b134..dc62fcb4478 100644 --- a/spec/lib/gitlab/pagination/cursor_based_keyset_spec.rb +++ b/spec/lib/gitlab/pagination/cursor_based_keyset_spec.rb @@ -10,6 +10,10 @@ RSpec.describe Gitlab::Pagination::CursorBasedKeyset do expect(subject.available_for_type?(Group.all)).to be_truthy end + it 'returns true for Ci::Build' do + expect(subject.available_for_type?(Ci::Build.all)).to be_truthy + end + it 'return false for other types of relations' do expect(subject.available_for_type?(User.all)).to be_falsey end @@ -29,6 +33,12 @@ RSpec.describe Gitlab::Pagination::CursorBasedKeyset do it { is_expected.to be false } end + + context 'when relation is Ci::Build' do + let(:relation) { Ci::Build.all } + + it { is_expected.to be false } + end end describe '.available?' do @@ -45,6 +55,20 @@ RSpec.describe Gitlab::Pagination::CursorBasedKeyset do it 'return false for other types of relations' do expect(subject.available?(cursor_based_request_context, User.all)).to be_falsey + expect(subject.available?(cursor_based_request_context, Ci::Build.all)).to be_falsey + end + end + + context 'with order-by id desc' do + let(:order_by) { :id } + let(:sort) { :desc } + + it 'returns true for Ci::Build' do + expect(subject.available?(cursor_based_request_context, Ci::Build.all)).to be_truthy + end + + it 'returns true for AuditEvent' do + expect(subject.available?(cursor_based_request_context, AuditEvent.all)).to be_truthy end end diff --git a/spec/lib/gitlab/pagination/keyset/simple_order_builder_spec.rb b/spec/lib/gitlab/pagination/keyset/simple_order_builder_spec.rb index 4f1d380ab0a..e85b0354ff6 100644 --- a/spec/lib/gitlab/pagination/keyset/simple_order_builder_spec.rb +++ b/spec/lib/gitlab/pagination/keyset/simple_order_builder_spec.rb @@ -92,34 +92,6 @@ RSpec.describe Gitlab::Pagination::Keyset::SimpleOrderBuilder do end end - context "NULLS order given as as an Arel literal" do - context 'when NULLS LAST order is given without a tie-breaker' do - let(:scope) { Project.order(Project.arel_table[:created_at].asc.nulls_last) } - - it 'sets the column definition for created_at appropriately' do - expect(column_definition.attribute_name).to eq('created_at') - end - - it 'orders by primary key' do - expect(sql_with_order) - .to end_with('ORDER BY "projects"."created_at" ASC NULLS LAST, "projects"."id" DESC') - end - end - - context 'when NULLS FIRST order is given with a tie-breaker' do - let(:scope) { Issue.order(Issue.arel_table[:relative_position].desc.nulls_first).order(id: :asc) } - - it 'sets the column definition for created_at appropriately' do - expect(column_definition.attribute_name).to eq('relative_position') - end - - it 'orders by the given primary key' do - expect(sql_with_order) - .to end_with('ORDER BY "issues"."relative_position" DESC NULLS FIRST, "issues"."id" ASC') - end - end - end - context "NULLS order given as as an Arel node" do context 'when NULLS LAST order is given without a tie-breaker' do let(:scope) { Project.order(Project.arel_table[:created_at].asc.nulls_last) } |