summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/pagination
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/pagination')
-rw-r--r--spec/lib/gitlab/pagination/cursor_based_keyset_spec.rb24
-rw-r--r--spec/lib/gitlab/pagination/keyset/simple_order_builder_spec.rb28
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) }