Move mappable helper methods to a new common actions module
So we can use the same customization technique overriding the methods we need.
This commit is contained in:
@@ -292,61 +292,3 @@ shared_examples "mappable" do |mappable_factory_name, mappable_association_name,
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def do_login_for(user)
|
||||
common_do_login_for(user, management: management)
|
||||
end
|
||||
|
||||
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 validate_latitude_longitude(mappable_factory_name)
|
||||
expect(find("##{mappable_factory_name}_map_location_attributes_latitude", visible: false).value).to eq "51.48"
|
||||
expect(find("##{mappable_factory_name}_map_location_attributes_longitude", visible: false).value).to eq "0.0"
|
||||
expect(mappable.map_location.latitude).to eq 51.48
|
||||
expect(mappable.map_location.longitude).to eq 0.0
|
||||
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
|
||||
|
||||
@@ -5,6 +5,7 @@ module CommonActions
|
||||
include Comments
|
||||
include Debates
|
||||
include Emails
|
||||
include Maps
|
||||
include Notifications
|
||||
include Polls
|
||||
include Proposals
|
||||
|
||||
61
spec/support/common_actions/maps.rb
Normal file
61
spec/support/common_actions/maps.rb
Normal file
@@ -0,0 +1,61 @@
|
||||
module Maps
|
||||
def do_login_for(user)
|
||||
common_do_login_for(user, management: management)
|
||||
end
|
||||
|
||||
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 validate_latitude_longitude(mappable_factory_name)
|
||||
latitude_attribute = "##{mappable_factory_name}_map_location_attributes_latitude"
|
||||
longitude_attribute = "##{mappable_factory_name}_map_location_attributes_longitude"
|
||||
expect(find(latitude_attribute, visible: false).value).to eq "51.48"
|
||||
expect(find(longitude_attribute, visible: false).value).to eq "0.0"
|
||||
expect(mappable.map_location.latitude).to eq 51.48
|
||||
expect(mappable.map_location.longitude).to eq 0.0
|
||||
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
|
||||
Reference in New Issue
Block a user