false
when ["docker_image_locator", "in docker"], ["docker_image_locator", "not in docker"]
filter[1].sub!(/ docker$/, '')
- image_search, image_tag = filter[2].split(':', 2)
- filter[2] = Collection.
- uuids_for_docker_image(image_search, image_tag, @read_users)
+ search_list = filter[2].is_a?(Enumerable) ? filter[2] : [filter[2]]
+ filter[2] = search_list.flat_map do |search_term|
+ image_search, image_tag = search_term.split(':', 2)
+ Collection.uuids_for_docker_image(image_search, image_tag, @read_users)
+ end
true
else
true
refute_includes(assigns(:objects).map { |job| job.uuid },
jobs(:previous_job_run).uuid)
end
+
+ test "'in docker' filter accepts arrays" do
+ get :index, filters: [["docker_image_locator", "in docker",
+ ["_nonesuchname_", "arvados/apitestfixture"]]]
+ assert_response :success
+ assert_not_nil assigns(:objects)
+ assert_includes(assigns(:objects).map { |job| job.uuid },
+ jobs(:previous_docker_job_run).uuid)
+ refute_includes(assigns(:objects).map { |job| job.uuid },
+ jobs(:previous_job_run).uuid)
+ end
+
+ test "'not in docker' filter accepts arrays" do
+ get :index, filters: [["docker_image_locator", "not in docker",
+ ["_nonesuchname_", "arvados/apitestfixture"]]]
+ assert_response :success
+ assert_not_nil assigns(:objects)
+ assert_includes(assigns(:objects).map { |job| job.uuid },
+ jobs(:previous_job_run).uuid)
+ refute_includes(assigns(:objects).map { |job| job.uuid },
+ jobs(:previous_docker_job_run).uuid)
+ end
end