@@ -304,7 +304,6 @@ def test_quick_filters_require_filter_button_when_multiple_quick_filters
304304 assert_equal "You must provide a filter_button when using quick_filters." , err . message
305305 end
306306
307-
308307 def test_quick_filters_require_no_filter_button_for_single_quick_filter
309308 render_inline ( Primer ::OpenProject ::SubHeader . new ) do |component |
310309 component . with_quick_filter { "<span class='MyQuickFilter'>Status</span>" . html_safe }
@@ -323,4 +322,66 @@ def test_quick_filters_maximum_is_five
323322
324323 assert_equal "SubHeader supports a maximum of 5 quick_filters, got 6." , err . message
325324 end
325+
326+ def test_renders_sort_quick_filter
327+ render_inline ( Primer ::OpenProject ::SubHeader . new ) do |component |
328+ component . with_sort_quick_filter { "<span class='SortFilter'>Sort</span>" . html_safe }
329+ end
330+
331+ assert_selector ( ".SubHeader-leftPane .SortFilter" )
332+ end
333+
334+ def test_renders_group_quick_filter
335+ render_inline ( Primer ::OpenProject ::SubHeader . new ) do |component |
336+ component . with_group_quick_filter { "<span class='GroupFilter'>Group</span>" . html_safe }
337+ end
338+
339+ assert_selector ( ".SubHeader-leftPane .GroupFilter" )
340+ end
341+
342+ def test_sort_and_group_quick_filters_render_before_other_quick_filters
343+ render_inline ( Primer ::OpenProject ::SubHeader . new ) do |component |
344+ component . with_filter_button { "Filter" }
345+ component . with_quick_filter ( classes : "OtherFilter" ) { "Other" }
346+ component . with_group_quick_filter ( classes : "GroupFilter" ) { "Group" }
347+ component . with_sort_quick_filter ( classes : "SortFilter" ) { "Sort" }
348+ end
349+
350+ assert_selector ( ".SortFilter ~ .GroupFilter" )
351+ assert_selector ( ".GroupFilter ~ .OtherFilter" )
352+ end
353+
354+ def test_sort_and_group_do_not_count_toward_filter_button_requirement
355+ render_inline ( Primer ::OpenProject ::SubHeader . new ) do |component |
356+ component . with_sort_quick_filter { "Sort" }
357+ component . with_quick_filter { "Status" }
358+ end
359+
360+ assert_text "Sort"
361+ assert_text "Status"
362+ end
363+
364+ def test_sort_and_group_count_toward_maximum
365+ err = assert_raises ArgumentError do
366+ render_inline ( Primer ::OpenProject ::SubHeader . new ) do |component |
367+ component . with_filter_button { "Filter" }
368+ component . with_sort_quick_filter { "Sort" }
369+ component . with_group_quick_filter { "Group" }
370+ 4 . times { |i | component . with_quick_filter { "Filter #{ i } " } }
371+ end
372+ end
373+
374+ assert_equal "SubHeader supports a maximum of 5 quick_filters, got 6." , err . message
375+ end
376+
377+ def test_sort_and_group_are_not_hidden_on_mobile_when_multiple_quick_filters
378+ render_inline ( Primer ::OpenProject ::SubHeader . new ) do |component |
379+ component . with_filter_button { "Filter" }
380+ component . with_sort_quick_filter { "<span class='SortFilter'>Sort</span>" . html_safe }
381+ component . with_group_quick_filter { "<span class='GroupFilter'>Group</span>" . html_safe }
382+ end
383+
384+ assert_no_selector ( ".d-none.d-md-flex .SortFilter" )
385+ assert_no_selector ( ".d-none.d-md-flex .GroupFilter" )
386+ end
326387end
0 commit comments