зеркало из
https://github.com/rs-pro/activeadmin-quill_editor.git
synced 2026-09-03 18:25:51 +03:00
test: Improve test suite setup
Этот коммит содержится в:
@@ -1,7 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative '../../base_page'
|
||||
|
||||
module Admin
|
||||
module Authors
|
||||
class EditPage < BasePage
|
||||
|
||||
@@ -1,7 +1,5 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative '../../base_page'
|
||||
|
||||
module Admin
|
||||
module Posts
|
||||
class EditPage < BasePage
|
||||
|
||||
@@ -12,4 +12,8 @@ class BasePage
|
||||
def load
|
||||
visit(path)
|
||||
end
|
||||
|
||||
def lookup_editor(editor_container:)
|
||||
@editor = Shared::QuillEditor.new(editor_container)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,35 +1,35 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
require_relative '../base_object'
|
||||
module Shared
|
||||
class HtmlEditor < BaseObject
|
||||
def content_element
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
class HtmlEditor < BaseObject
|
||||
def content_element
|
||||
raise NotImplementedError
|
||||
end
|
||||
def clear
|
||||
select_all
|
||||
content_element.send_keys(:delete)
|
||||
self
|
||||
end
|
||||
|
||||
def clear
|
||||
select_all
|
||||
content_element.send_keys(:delete)
|
||||
self
|
||||
end
|
||||
# @return [self]
|
||||
def open_dropdown
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
# @return [self]
|
||||
def open_dropdown
|
||||
raise NotImplementedError
|
||||
end
|
||||
def select_all
|
||||
content_element.send_keys([:control, "a"])
|
||||
self
|
||||
end
|
||||
|
||||
def select_all
|
||||
content_element.send_keys([:control, "a"])
|
||||
self
|
||||
end
|
||||
def toolbar_control(control, ...)
|
||||
send(:"toggle_#{control}", ...)
|
||||
self
|
||||
end
|
||||
|
||||
def toolbar_control(control, ...)
|
||||
send(:"toggle_#{control}", ...)
|
||||
self
|
||||
end
|
||||
|
||||
def <<(content)
|
||||
content_element.send_keys(content)
|
||||
self
|
||||
def <<(content)
|
||||
content_element.send_keys(content)
|
||||
self
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,44 +1,46 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class QuillEditor < HtmlEditor
|
||||
SELECTOR = '.ql-container'
|
||||
TOOLBAR_SELECTOR = '.ql-toolbar'
|
||||
module Shared
|
||||
class QuillEditor < HtmlEditor
|
||||
SELECTOR = '.ql-container'
|
||||
TOOLBAR_SELECTOR = '.ql-toolbar'
|
||||
|
||||
attr_reader :toolbar, :toolbar_selector
|
||||
attr_reader :toolbar, :toolbar_selector
|
||||
|
||||
def initialize(selector: SELECTOR, toolbar_selector: TOOLBAR_SELECTOR)
|
||||
super(selector: selector)
|
||||
@toolbar = find(toolbar_selector)
|
||||
@toolbar_selector = toolbar_selector
|
||||
end
|
||||
def initialize(selector: SELECTOR, toolbar_selector: TOOLBAR_SELECTOR)
|
||||
super(selector: selector)
|
||||
@toolbar = find(toolbar_selector)
|
||||
@toolbar_selector = toolbar_selector
|
||||
end
|
||||
|
||||
def content_element
|
||||
@content_element ||= find("#{selector} .ql-editor")
|
||||
end
|
||||
def content_element
|
||||
@content_element ||= find("#{selector} .ql-editor")
|
||||
end
|
||||
|
||||
def control_selector(control)
|
||||
case control&.to_sym
|
||||
when :bold then "#{toolbar_selector} button.ql-bold"
|
||||
when :italic then "#{toolbar_selector} button.ql-italic"
|
||||
when :underline then "#{toolbar_selector} button.ql-underline"
|
||||
when :link then "#{toolbar_selector} button.ql-link"
|
||||
else raise "Invalid control #{control}"
|
||||
def control_selector(control)
|
||||
case control&.to_sym
|
||||
when :bold then "#{toolbar_selector} button.ql-bold"
|
||||
when :italic then "#{toolbar_selector} button.ql-italic"
|
||||
when :underline then "#{toolbar_selector} button.ql-underline"
|
||||
when :link then "#{toolbar_selector} button.ql-link"
|
||||
else raise "Invalid control #{control}"
|
||||
end
|
||||
end
|
||||
|
||||
def toggle_bold
|
||||
find(control_selector(:bold)).click
|
||||
end
|
||||
|
||||
def toggle_italic
|
||||
find(control_selector(:italic)).click
|
||||
end
|
||||
|
||||
def toggle_underline
|
||||
find(control_selector(:underline)).click
|
||||
end
|
||||
|
||||
def toggle_link
|
||||
find(control_selector(:link)).click
|
||||
end
|
||||
end
|
||||
|
||||
def toggle_bold
|
||||
find(control_selector(:bold)).click
|
||||
end
|
||||
|
||||
def toggle_italic
|
||||
find(control_selector(:italic)).click
|
||||
end
|
||||
|
||||
def toggle_underline
|
||||
find(control_selector(:underline)).click
|
||||
end
|
||||
|
||||
def toggle_link
|
||||
find(control_selector(:link)).click
|
||||
end
|
||||
end
|
||||
|
||||
Ссылка в новой задаче
Block a user