mirror of
https://github.com/discourse/discourse.git
synced 2024-11-22 04:11:33 +08:00
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.
|
||||
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
|
||||
|
||||
require Rails.root.join("spec/system/page_objects/pages/base.rb")
|
||||
require Rails.root.join("spec/system/page_objects/modals/base.rb")
|
||||
Dir[Rails.root.join("spec/system/page_objects/**/base.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 }
|
||||
|
|
|
@ -15,6 +15,10 @@ module SystemHelpers
|
|||
visit "/session/#{user.encoded_username}/become"
|
||||
end
|
||||
|
||||
def sign_out
|
||||
delete "/session"
|
||||
end
|
||||
|
||||
def setup_system_test
|
||||
SiteSetting.login_required = false
|
||||
SiteSetting.content_security_policy = false
|
||||
|
|
10
spec/system/page_objects/components/base.rb
Normal file
10
spec/system/page_objects/components/base.rb
Normal file
|
@ -0,0 +1,10 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module PageObjects
|
||||
module Components
|
||||
class Base
|
||||
include Capybara::DSL
|
||||
include RSpec::Matchers
|
||||
end
|
||||
end
|
||||
end
|
45
spec/system/page_objects/components/composer.rb
Normal file
45
spec/system/page_objects/components/composer.rb
Normal file
|
@ -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
|
15
spec/system/page_objects/components/topic_list.rb
Normal file
15
spec/system/page_objects/components/topic_list.rb
Normal file
|
@ -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
Block a user