Skip to content

Commit a5f9cdb

Browse files
committed
improved test coverage for search qualifier helper
1 parent b11bf70 commit a5f9cdb

2 files changed

Lines changed: 56 additions & 6 deletions

File tree

test/.rubocop.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,6 @@ Style/MethodCallWithArgsParentheses:
1717
AllowedMethods: ['get', 'post', 'put', 'delete', 'puts', 'patch']
1818
AllowedPatterns: ['assert$', 'assert_equal', 'raise', '^click_', '^fill_', 'visit', 'within']
1919
IncludedMacros: ['assert_response']
20+
21+
Style/MultilineBlockChain:
22+
Enabled: false

test/helpers/search_qualifier_helper_test.rb

Lines changed: 53 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -90,17 +90,64 @@ class SearchQualifierHelperTest < ActionView::TestCase
9090
end
9191

9292
test 'parse_category_qualifier should correctly parse category:' do
93+
['=', '>', '<', '<='].each do |operator|
94+
categories.map do |cat|
95+
[operator == '=' ? cat.id.to_s : "#{operator}#{cat.id}", operator, cat.id]
96+
end.each do |entry|
97+
value, expected_op, expected_val = entry
98+
99+
parsed = parse_category_qualifier(value)
100+
assert_equal :category, parsed[:param]
101+
assert_equal expected_op, parsed[:operator]
102+
assert_equal expected_val, parsed[:category_id]
103+
end
104+
end
105+
end
106+
107+
test 'parse_post_type_qualifier should correctly parse post_type:' do
108+
['=', '>', '<', '<='].each do |operator|
109+
post_types.map do |type|
110+
[operator == '=' ? type.id.to_s : "#{operator}#{type.id}", operator, type.id]
111+
end.each do |entry|
112+
value, expected_op, expected_val = entry
113+
114+
parsed = parse_post_type_qualifier(value)
115+
assert_equal :post_type, parsed[:param]
116+
assert_equal expected_op, parsed[:operator]
117+
assert_equal expected_val, parsed[:post_type_id]
118+
end
119+
end
120+
end
121+
122+
test 'parse_downvotes_qualifier should correctly parse downvotes:' do
93123
[
94-
['10', '=', 10],
95-
['>2', '>', 2],
96-
['<=5', '<=', 5]
124+
['42', '=', 42],
125+
['>5', '>', 5],
126+
['<=1', '<=', 1],
127+
['<3', '<', 3]
97128
].each do |entry|
98129
value, expected_op, expected_val = entry
99130

100-
parsed = parse_category_qualifier(value)
101-
assert_equal :category, parsed[:param]
131+
parsed = parse_downvotes_qualifier(value)
132+
assert_equal :downvotes, parsed[:param]
102133
assert_equal expected_op, parsed[:operator]
103-
assert_equal expected_val, parsed[:category_id]
134+
assert_equal expected_val, parsed[:value]
135+
end
136+
end
137+
138+
test 'parse_upvotes_qualifier should correctly parse upvotes:' do
139+
[
140+
['42', '=', 42],
141+
['>5', '>', 5],
142+
['<=1', '<=', 1],
143+
['<3', '<', 3]
144+
].each do |entry|
145+
value, expected_op, expected_val = entry
146+
147+
parsed = parse_upvotes_qualifier(value)
148+
assert_equal :upvotes, parsed[:param]
149+
assert_equal expected_op, parsed[:operator]
150+
assert_equal expected_val, parsed[:value]
104151
end
105152
end
106153

0 commit comments

Comments
 (0)