DEV: Add helpers for system testing in plugins (#19421)
Add helpers for system testing in plugins
This commit is contained in:
parent
3c6ef38309
commit
0ee050e208
|
@ -75,8 +75,7 @@ end
|
||||||
# in spec/support/ and its subdirectories.
|
# in spec/support/ and its subdirectories.
|
||||||
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
|
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
|
||||||
|
|
||||||
require Rails.root.join("spec/system/page_objects/pages/base.rb")
|
Dir[Rails.root.join("spec/system/page_objects/**/base.rb")].each { |f| require f }
|
||||||
require Rails.root.join("spec/system/page_objects/modals/base.rb")
|
|
||||||
Dir[Rails.root.join("spec/system/page_objects/**/*.rb")].each { |f| require f }
|
Dir[Rails.root.join("spec/system/page_objects/**/*.rb")].each { |f| require f }
|
||||||
|
|
||||||
Dir[Rails.root.join("spec/fabricators/*.rb")].each { |f| require f }
|
Dir[Rails.root.join("spec/fabricators/*.rb")].each { |f| require f }
|
||||||
|
|
|
@ -15,6 +15,10 @@ module SystemHelpers
|
||||||
visit "/session/#{user.encoded_username}/become"
|
visit "/session/#{user.encoded_username}/become"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def sign_out
|
||||||
|
delete "/session"
|
||||||
|
end
|
||||||
|
|
||||||
def setup_system_test
|
def setup_system_test
|
||||||
SiteSetting.login_required = false
|
SiteSetting.login_required = false
|
||||||
SiteSetting.content_security_policy = false
|
SiteSetting.content_security_policy = false
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module PageObjects
|
||||||
|
module Components
|
||||||
|
class Base
|
||||||
|
include Capybara::DSL
|
||||||
|
include RSpec::Matchers
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,45 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module PageObjects
|
||||||
|
module Components
|
||||||
|
class Composer < PageObjects::Components::Base
|
||||||
|
def open_new_topic
|
||||||
|
visit("/latest")
|
||||||
|
find("button#create-topic").click
|
||||||
|
self
|
||||||
|
end
|
||||||
|
|
||||||
|
def open_composer_actions
|
||||||
|
find(".composer-action-title .btn").click
|
||||||
|
self
|
||||||
|
end
|
||||||
|
|
||||||
|
def fill_title(title)
|
||||||
|
find("#reply-control #reply-title").fill_in(with: title)
|
||||||
|
self
|
||||||
|
end
|
||||||
|
|
||||||
|
def fill_content(content)
|
||||||
|
find("#reply-control .d-editor-input").fill_in(with: content)
|
||||||
|
self
|
||||||
|
end
|
||||||
|
|
||||||
|
def select_action(action)
|
||||||
|
find(action(action)).click
|
||||||
|
self
|
||||||
|
end
|
||||||
|
|
||||||
|
def create
|
||||||
|
find("#reply-control .btn-primary").click
|
||||||
|
end
|
||||||
|
|
||||||
|
def action(action_title)
|
||||||
|
".composer-action-title .select-kit-collection li[title='#{action_title}']"
|
||||||
|
end
|
||||||
|
|
||||||
|
def button_label
|
||||||
|
find("#reply-control .btn-primary .d-button-label")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,15 @@
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
module PageObjects
|
||||||
|
module Components
|
||||||
|
class TopicList < PageObjects::Components::Base
|
||||||
|
def topic_list
|
||||||
|
".topic-list-body"
|
||||||
|
end
|
||||||
|
|
||||||
|
def visit_topic_with_title(title)
|
||||||
|
find(".topic-list-body a", text: title).click
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue