Delete link in a Cucumber test - moralesalberto/personal GitHub Wiki

Seems like I am doing too much work, but can not think of another way for now.

Then(/^the show page should have a link to delete the keychain with the name "(.*?)"$/) do |name|
  keychain = Keychain.where("name = ? ",name).first

  # this one is too ambiguous
  page.html.should have_selector(:xpath, "//a[@href=\"/keychains/#{keychain.id}\"]", :text => "Delete")

  #one way to do this using xpath
  delete_links_via_xpath = page.all(:xpath, "//a[@href=\"/keychains/#{keychain.id}\"]", :text => "Delete")
  delete_links_via_xpath.select {|link| link['data-method' == 'delete']}
  delete_links_via_xpath.size.should > 0

  # another way, using css 
  delete_links = page.all(:css, "a[data-method=delete]").select {|link| link.text == "Delete" and link['href'] == "\/keychains\/#{keychain.id}"}
  delete_links.size.should > 0

end
⚠️ **GitHub.com Fallback** ⚠️