summaryrefslogtreecommitdiff
path: root/spec/support/helpers/features/notes_helpers.rb
blob: 38f30a14409b9e2d055e5060491cf47ecec4eb0a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# These helpers allow you to manipulate with notes.
#
# Usage:
#   describe "..." do
#     include Spec::Support::Helpers::Features::NotesHelpers
#     ...
#
#     add_note("Hello world!")
#
module Spec
  module Support
    module Helpers
      module Features
        module NotesHelpers
          def add_note(text)
            perform_enqueued_jobs do
              page.within(".js-main-target-form") do
                fill_in("note[note]", with: text)
                find(".js-comment-submit-button").click
              end
            end
          end

          def preview_note(text)
            page.within('.js-main-target-form') do
              filled_text = fill_in('note[note]', with: text)

              begin
                # Dismiss quick action prompt if it appears
                filled_text.parent.send_keys(:escape)
              rescue Selenium::WebDriver::Error::ElementNotInteractableError
                # It's fine if we can't escape when there's no prompt.
              end

              click_on('Preview')

              yield if block_given?
            end
          end
        end
      end
    end
  end
end