Skip to content

Commit be5fdd8

Browse files
diegousrosa
authored andcommitted
Ignore surrounding white spaces when filtering by job class name or queue
1 parent 2d28dcb commit be5fdd8

2 files changed

Lines changed: 37 additions & 2 deletions

File tree

app/controllers/concerns/mission_control/jobs/job_filters.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ module MissionControl::Jobs::JobFilters
1010
private
1111
def set_filters
1212
@job_filters = {
13-
job_class_name: params.dig(:filter, :job_class_name).presence,
14-
queue_name: params.dig(:filter, :queue_name).presence,
13+
job_class_name: params.dig(:filter, :job_class_name).to_s.strip.presence,
14+
queue_name: params.dig(:filter, :queue_name).to_s.strip.presence,
1515
finished_at: finished_at_range_params
1616
}.compact
1717
end

test/controllers/jobs_controller_test.rb

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
class MissionControl::Jobs::JobsControllerTest < ActionDispatch::IntegrationTest
44
setup do
55
DummyJob.queue_as :queue_1
6+
DummyReloadedJob.queue_as :queue_2
67
end
78

89
test "get job details" do
@@ -135,4 +136,38 @@ class MissionControl::Jobs::JobsControllerTest < ActionDispatch::IntegrationTest
135136
ensure
136137
I18n.available_locales = previous_locales
137138
end
139+
140+
test "empty string after stripping whitespace does not filter" do
141+
DummyJob.perform_later(42)
142+
DummyReloadedJob.perform_later(42)
143+
perform_enqueued_jobs_async
144+
145+
get mission_control_jobs.application_jobs_url(@application, :finished, filter: { job_class_name: " \n\t \n\t" })
146+
assert_response :ok
147+
assert_select "tr.job", 2
148+
assert_select "tr.job", /DummyJob/
149+
assert_select "tr.job", /DummyReloadedJob/
150+
end
151+
152+
test "get jobs filtered by class name ignoring surrounding white spaces, newlines and tabs" do
153+
DummyJob.perform_later(42)
154+
DummyReloadedJob.perform_later(42)
155+
perform_enqueued_jobs_async
156+
157+
get mission_control_jobs.application_jobs_url(@application, :finished, filter: { job_class_name: " \n\tDummyJob \n\t" })
158+
assert_response :ok
159+
assert_select "tr.job", 1
160+
assert_select "tr.job", /DummyJob/
161+
end
162+
163+
test "get jobs filtered by queue name ignoring surrounding white spaces, newlines and tabs" do
164+
DummyJob.perform_later(42)
165+
DummyReloadedJob.perform_later(42)
166+
perform_enqueued_jobs_async
167+
168+
get mission_control_jobs.application_jobs_url(@application, :finished, filter: { queue_name: " \n\tqueue_1 \n\t" })
169+
assert_response :ok
170+
assert_select "tr.job", 1
171+
assert_select "tr.job", /DummyJob/
172+
end
138173
end

0 commit comments

Comments
 (0)