summaryrefslogtreecommitdiff
path: root/spec/support/helpers/features/source_editor_spec_helpers.rb
blob: f7eb2a5250714bf65a15d73c8f2a5bea673a2b1f (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
# frozen_string_literal: true

# These helpers help you interact within the Source Editor (single-file editor, snippets, etc.).
#
module Spec
  module Support
    module Helpers
      module Features
        module SourceEditorSpecHelpers
          include ActionView::Helpers::JavaScriptHelper

          def editor_set_value(value)
            editor = find('.monaco-editor')
            uri = editor['data-uri']
            execute_script("localMonaco.getModel('#{uri}').setValue('#{escape_javascript(value)}')")

            # We only check that the first line is present because when the content is long,
            # only a part of the text will be rendered in the DOM due to scrolling
            page.has_selector?('.gl-source-editor .view-lines', text: value.lines.first)
          end
        end
      end
    end
  end
end