Commit fd302061 authored by Shinya Maeda's avatar Shinya Maeda

Fix rubocop offences and rspec failures

parent df834306
......@@ -101,8 +101,8 @@ class PipelinesFinder
def order_and_sort(items)
if params[:order_by].present? && params[:sort].present? &&
items.column_names.include?(params[:order_by]) &&
(params[:sort].downcase == 'asc' || params[:sort].downcase == 'desc')
items.column_names.include?(params[:order_by]) &&
(params[:sort].casecmp('ASC') || params[:sort].casecmp('DESC'))
items.order("#{params[:order_by]} #{params[:sort]}")
else
items.order(id: :desc)
......
......@@ -16,14 +16,14 @@ module API
use :pagination
optional :scope, type: String, values: %w(running pending finished branches tags),
desc: 'The scope of pipelines'
optional :status, type: String, values: ['running', 'pending', 'success', 'failed', 'canceled', 'skipped'],
optional :status, type: String, values: %w(running pending success failed canceled skipped),
desc: 'The status of pipelines'
optional :ref, type: String, desc: 'The ref of pipelines'
optional :yaml_errors, type: Boolean, desc: 'If true, Returns only yaml error pipelines'
optional :username, type: String, desc: 'The name of user who triggered pipelines'
optional :order_by, type: String, values: ['id', 'status', 'ref', 'username', 'started_at', 'finished_at', 'created_at', 'updated_at'], default: 'id',
optional :order_by, type: String, values: %w(id status ref username started_at finished_at created_at updated_at), default: 'id',
desc: 'The order_by which is combined with a sort'
optional :sort, type: String, values: ['asc', 'desc'], default: 'desc',
optional :sort, type: String, values: %w(asc desc), default: 'desc',
desc: 'The sort method which is combined with an order_by'
end
get ':id/pipelines' do
......
......@@ -34,16 +34,15 @@ describe PipelinesFinder do
end
it 'orders in descending order on ID' do
expected_ids = [
tag_pipeline.id,
created_pipeline.id,
pending_pipeline.id,
running_pipeline.id,
success_pipeline.id,
failed_pipeline.id,
canceled_pipeline.id,
skipped_pipeline.id,
yaml_errors_pipeline.id].sort.reverse
expected_ids = [tag_pipeline.id,
created_pipeline.id,
pending_pipeline.id,
running_pipeline.id,
success_pipeline.id,
failed_pipeline.id,
canceled_pipeline.id,
skipped_pipeline.id,
yaml_errors_pipeline.id].sort.reverse
expect(subject.map(&:id)).to eq expected_ids
end
end
......@@ -214,21 +213,21 @@ describe PipelinesFinder do
end
context 'when a order_by and sort are passed' do
context 'when order by started_at asc' do
context 'when order by created_at asc' do
let(:params) { { order_by: 'created_at', sort: 'asc' } }
it 'sorts by started_at asc' do
expected_created_at = [
tag_pipeline.created_at,
created_pipeline.created_at,
pending_pipeline.created_at,
running_pipeline.created_at,
success_pipeline.created_at,
failed_pipeline.created_at,
canceled_pipeline.created_at,
skipped_pipeline.created_at,
yaml_errors_pipeline.created_at].sort
expect(subject.map(&:created_at)).to eq expected_created_at
it 'sorts by created_at asc' do
expect(subject.first).to eq(tag_pipeline)
expect(subject.last).to eq(yaml_errors_pipeline)
end
end
context 'when order by created_at desc' do
let(:params) { { order_by: 'created_at', sort: 'desc' } }
it 'sorts by created_at desc' do
expect(subject.first).to eq(yaml_errors_pipeline)
expect(subject.last).to eq(tag_pipeline)
end
end
end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment