selectors.rb 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. # This file defines custom Capybara selectors for DRYed specs.
  2. Capybara.add_selector(:href) do
  3. css { |href| %(a[href="#{href}"]) }
  4. end
  5. Capybara.add_selector(:active_content) do
  6. css { |content_class| ['.content.active', content_class].compact.join(' ') }
  7. end
  8. Capybara.add_selector(:active_ticket_article) do
  9. css { |article| ['.content.active', "#article-#{article.id}" ].compact.join(' ') }
  10. end
  11. Capybara.add_selector(:manage) do
  12. css { 'a[href="#manage"]' }
  13. end
  14. Capybara.add_selector(:clues_close) do
  15. css { '.js-modal--clue .js-close' }
  16. end
  17. Capybara.add_selector(:richtext) do
  18. css { |name| "div[data-name=#{name || 'body'}]" }
  19. end
  20. Capybara.add_selector(:text_module) do
  21. css { |id| %(.shortcut > ul > li[data-id="#{id}"]) }
  22. end
  23. Capybara.add_selector(:macro) do
  24. css { |id| %(.js-submitDropdown > ul > li[data-id="#{id}"]) }
  25. end
  26. Capybara.add_selector(:macro_batch) do
  27. css { |id| %(.batch-overlay-macro-entry[data-id='#{id}'] .batch-overlay-macro-entry-name) }
  28. end
  29. Capybara.add_selector(:table_row) do
  30. css { |id| %(tr[data-id='#{id}']) }
  31. end
  32. Capybara.add_selector(:link_containing) do
  33. xpath { |text| ".//a//*[text()[contains(.,\"#{text}\")]]" }
  34. end
  35. Capybara.add_selector(:task_active) do
  36. css { '.tasks .task.is-active' }
  37. end
  38. Capybara.add_selector(:task_with) do
  39. css { |task_key| ".tasks .task[data-key='#{task_key}']" }
  40. end