debian-mirror-gitlab/spec/support/helpers/sorting_helper.rb

52 lines
959 B
Ruby
Raw Normal View History

2019-10-12 21:52:04 +05:30
# frozen_string_literal: true
2018-10-15 14:42:47 +05:30
# Helper allows you to sort items
#
# Params
# value - value for sorting
#
# Usage:
# include SortingHelper
#
# sorting_by('Oldest updated')
#
module SortingHelper
def sorting_by(value)
2019-02-15 15:39:39 +05:30
find('.filter-dropdown-container button.dropdown-menu-toggle').click
2018-11-08 19:23:39 +05:30
page.within('.content ul.dropdown-menu.dropdown-menu-right li') do
2018-10-15 14:42:47 +05:30
click_link value
end
end
2021-03-11 19:13:27 +05:30
def nils_last(value)
NilsLast.new(value)
end
class NilsLast
include Comparable
attr_reader :value
delegate :==, :eql?, :hash, to: :value
def initialize(value)
@value = value
@reverse = false
end
def <=>(other)
return unless other.is_a?(self.class)
return 0 if value.nil? && other.value.nil?
return 1 if value.nil?
return -1 if other.value.nil?
int = value <=> other.value
@reverse ? -int : int
end
def -@
@reverse = true
self
end
end
2018-10-15 14:42:47 +05:30
end