Write a test to see if each key (locator name) occurs more than once
require 'rspec'
describe 'Page Objects locator yml file' do
it 'does not have duplicates' do
file = File.open('locators.yml')
pairs = []
keys = []
file.each_line do |line|
words = line.split(': ')
pairs << {words[0] => words[1]}
keys << words[0]
end
file.close
if keys.uniq.count != keys.count
p "Duplicate Page Object key(s) found: #{keys.uniq.count} unique vs #{keys.count} total"
p 'dupe keys:'
dupe_keys = keys.select{|n| keys.count(n) > 1}.uniq
dupe_keys.each do |key|
pairs.each do |pair|
p "#{key.to_sym} : #{pair[key]}" if pair[key]
end
end
end
expect(keys.uniq.count).to (eq keys.count),
lambda {"Duplicate page object keys found! #{dupe_keys}"}
end
end