discourse-ai/spec/system/page_objects/components/ai_composer_helper_menu.rb

79 lines
2.1 KiB
Ruby
Raw Normal View History

2023-08-23 13:35:40 -04:00
# frozen_string_literal: true
module PageObjects
module Components
class AiComposerHelperMenu < PageObjects::Components::Base
COMPOSER_EDITOR_SELECTOR = ".d-editor-input"
CONTEXT_MENU_SELECTOR = ".ai-composer-helper-menu"
OPTIONS_STATE_SELECTOR = ".ai-helper-options"
LOADING_STATE_SELECTOR = ".ai-helper-loading"
CUSTOM_PROMPT_SELECTOR = "#{CONTEXT_MENU_SELECTOR} .ai-custom-prompt"
CUSTOM_PROMPT_INPUT_SELECTOR = "#{CUSTOM_PROMPT_SELECTOR}__input"
CUSTOM_PROMPT_BUTTON_SELECTOR = "#{CUSTOM_PROMPT_SELECTOR}__submit"
2023-08-23 13:35:40 -04:00
def select_helper_model(mode)
find(
"#{OPTIONS_STATE_SELECTOR} li[data-value=\"#{mode}\"] .ai-helper-options__button",
).click
2023-08-23 13:35:40 -04:00
end
def press_undo_keys
find(COMPOSER_EDITOR_SELECTOR).send_keys([PLATFORM_KEY_MODIFIER, "z"])
end
def press_escape_key
find("body").send_keys(:escape)
end
def click_custom_prompt_button
find(CUSTOM_PROMPT_BUTTON_SELECTOR).click
end
def fill_custom_prompt(content)
find(CUSTOM_PROMPT_INPUT_SELECTOR).fill_in(with: content)
self
end
2023-08-23 13:35:40 -04:00
def has_context_menu?
page.has_css?(CONTEXT_MENU_SELECTOR)
end
def has_no_context_menu?
page.has_no_css?(CONTEXT_MENU_SELECTOR)
end
2023-08-23 13:35:40 -04:00
def showing_options?
page.has_css?(OPTIONS_STATE_SELECTOR)
end
def showing_loading?
page.has_css?(LOADING_STATE_SELECTOR)
end
def has_custom_prompt?
page.has_css?(CUSTOM_PROMPT_SELECTOR)
end
def has_no_custom_prompt?
page.has_no_css?(CUSTOM_PROMPT_SELECTOR)
end
def has_custom_prompt_button?
page.has_css?(CUSTOM_PROMPT_BUTTON_SELECTOR)
end
def has_no_custom_prompt_button?
page.has_no_css?(CUSTOM_PROMPT_BUTTON_SELECTOR)
end
def has_custom_prompt_button_enabled?
page.has_css?("#{CUSTOM_PROMPT_BUTTON_SELECTOR}:not(:disabled)")
end
def has_custom_prompt_button_disabled?
page.has_css?("#{CUSTOM_PROMPT_BUTTON_SELECTOR}:disabled")
end
2023-08-23 13:35:40 -04:00
end
end
end