We were doing a `mappable.map_location` call in an `expect` which might result in a database queries. Doing database queries in a test after the process running the browser has started might result in exceptions while running our test suite.
49 lines
1.5 KiB
Ruby
49 lines
1.5 KiB
Ruby
module Maps
|
|
def fill_in_proposal_form
|
|
fill_in_new_proposal_title with: "Help refugees"
|
|
fill_in "Proposal summary", with: "In summary, what we want is..."
|
|
end
|
|
|
|
def submit_proposal_form
|
|
check :proposal_terms_of_service
|
|
click_button "Create proposal"
|
|
|
|
if page.has_content?("Not now, go to my proposal")
|
|
click_link "Not now, go to my proposal"
|
|
end
|
|
end
|
|
|
|
def fill_in_budget_investment_form
|
|
fill_in_new_investment_title with: "Budget investment title"
|
|
fill_in_ckeditor "Description", with: "Budget investment description"
|
|
check :budget_investment_terms_of_service
|
|
end
|
|
|
|
def submit_budget_investment_form
|
|
check :budget_investment_terms_of_service
|
|
click_button "Create Investment"
|
|
end
|
|
|
|
def set_arguments(arguments, mappable, mappable_path_arguments)
|
|
mappable_path_arguments&.each do |argument_name, path_to_value|
|
|
arguments.merge!("#{argument_name}": mappable.send(path_to_value))
|
|
end
|
|
end
|
|
|
|
def map_zoom_in
|
|
initial_zoom = page.execute_script("return App.Map.maps[0].getZoom();")
|
|
find(".leaflet-control-zoom-in").click
|
|
until page.execute_script("return App.Map.maps[0].getZoom() === #{initial_zoom + 1};") do
|
|
sleep 0.01
|
|
end
|
|
end
|
|
|
|
def place_map_at(latitude, longitude)
|
|
page.execute_script("App.Map.maps[0].setView(new L.LatLng(#{latitude}, #{longitude}))")
|
|
|
|
until page.execute_script("return App.Map.maps[0].getCenter().lat === #{latitude};") do
|
|
sleep 0.01
|
|
end
|
|
end
|
|
end
|