mirror of
https://github.com/Freika/dawarich.git
synced 2026-01-10 17:21:38 -05:00
70 lines
1.9 KiB
Ruby
70 lines
1.9 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module MapLayerHelpers
|
|
OVERLAY_LAYERS = [
|
|
'Points',
|
|
'Routes',
|
|
'Fog of War',
|
|
'Heatmap',
|
|
'Scratch map',
|
|
'Areas',
|
|
'Photos',
|
|
'Suggested Visits',
|
|
'Confirmed Visits'
|
|
].freeze
|
|
|
|
def test_layer_toggle(layer_name)
|
|
within('.leaflet-control-layers-expanded') do
|
|
if page.has_content?(layer_name)
|
|
# Find the label that contains the layer name, then find its associated checkbox
|
|
layer_label = find('label', text: layer_name)
|
|
layer_checkbox = layer_label.find('input[type="checkbox"]', visible: false)
|
|
|
|
# Get initial state
|
|
initial_checked = layer_checkbox.checked?
|
|
|
|
# Toggle the layer by clicking the label (more reliable)
|
|
layer_label.click
|
|
sleep 0.5 # Small delay for layer toggle
|
|
|
|
# Verify state changed
|
|
expect(layer_checkbox.checked?).not_to eq(initial_checked)
|
|
|
|
# Toggle back
|
|
layer_label.click
|
|
sleep 0.5 # Small delay for layer toggle
|
|
|
|
# Verify state returned to original
|
|
expect(layer_checkbox.checked?).to eq(initial_checked)
|
|
end
|
|
end
|
|
end
|
|
|
|
def test_base_layer_switching
|
|
within('.leaflet-control-layers-expanded') do
|
|
# Check that we have base layer options (radio buttons)
|
|
expect(page).to have_css('input[type="radio"]')
|
|
|
|
# Verify OpenStreetMap is available
|
|
expect(page).to have_content('OpenStreetMap')
|
|
|
|
# Test clicking different radio buttons if available
|
|
radio_buttons = all('input[type="radio"]', visible: false)
|
|
expect(radio_buttons.length).to be >= 1
|
|
|
|
# Click the first radio button to test layer switching
|
|
if radio_buttons.length > 1
|
|
radio_buttons[1].click
|
|
sleep 1
|
|
|
|
# Click back to the first one
|
|
radio_buttons[0].click
|
|
sleep 1
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
RSpec.configure do |config|
|
|
config.include MapLayerHelpers, type: :system
|
|
end
|