Commit 4ebfcd3b authored by Rémy Coutable's avatar Rémy Coutable

Merge branch '58882-reduce-test-view-port' into 'master'

Try to reduce testing viewport

Closes #58882

See merge request gitlab-org/gitlab-ce!27385
parents 04e799fd 52b9797a
...@@ -17,6 +17,8 @@ JS_CONSOLE_FILTER = Regexp.union([ ...@@ -17,6 +17,8 @@ JS_CONSOLE_FILTER = Regexp.union([
"Download the Vue Devtools extension" "Download the Vue Devtools extension"
]) ])
CAPYBARA_WINDOW_SIZE = [1366, 768].freeze
Capybara.register_driver :chrome do |app| Capybara.register_driver :chrome do |app|
capabilities = Selenium::WebDriver::Remote::Capabilities.chrome( capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
# This enables access to logs with `page.driver.manage.get_log(:browser)` # This enables access to logs with `page.driver.manage.get_log(:browser)`
...@@ -29,7 +31,7 @@ Capybara.register_driver :chrome do |app| ...@@ -29,7 +31,7 @@ Capybara.register_driver :chrome do |app|
) )
options = Selenium::WebDriver::Chrome::Options.new options = Selenium::WebDriver::Chrome::Options.new
options.add_argument("window-size=1240,1400") options.add_argument("window-size=#{CAPYBARA_WINDOW_SIZE.join(',')}")
# Chrome won't work properly in a Docker container in sandbox mode # Chrome won't work properly in a Docker container in sandbox mode
options.add_argument("no-sandbox") options.add_argument("no-sandbox")
...@@ -78,8 +80,11 @@ RSpec.configure do |config| ...@@ -78,8 +80,11 @@ RSpec.configure do |config|
protocol: 'http') protocol: 'http')
# reset window size between tests # reset window size between tests
unless session.current_window.size == [1240, 1400] unless session.current_window.size == CAPYBARA_WINDOW_SIZE
session.current_window.resize_to(1240, 1400) rescue nil begin
session.current_window.resize_to(*CAPYBARA_WINDOW_SIZE)
rescue # ?
end
end end
end end
......
...@@ -23,8 +23,18 @@ module Spec ...@@ -23,8 +23,18 @@ module Spec
def preview_note(text) def preview_note(text)
page.within('.js-main-target-form') do page.within('.js-main-target-form') do
fill_in('note[note]', with: text) filled_text = fill_in('note[note]', with: text)
begin
# Dismiss quick action prompt if it appears
filled_text.parent.send_keys(:escape)
rescue Selenium::WebDriver::Error::ElementNotInteractableError
# It's fine if we can't escape when there's no prompt.
end
click_on('Preview') click_on('Preview')
yield if block_given?
end end
end end
end end
......
...@@ -8,7 +8,7 @@ module MobileHelpers ...@@ -8,7 +8,7 @@ module MobileHelpers
end end
def restore_window_size def restore_window_size
resize_window(1366, 768) resize_window(*CAPYBARA_WINDOW_SIZE)
end end
def resize_window(width, height) def resize_window(width, height)
......
# frozen_string_literal: true # frozen_string_literal: true
shared_examples 'close quick action' do |issuable_type| shared_examples 'close quick action' do |issuable_type|
include Spec::Support::Helpers::Features::NotesHelpers
before do before do
project.add_maintainer(maintainer) project.add_maintainer(maintainer)
gitlab_sign_in(maintainer) gitlab_sign_in(maintainer)
...@@ -76,10 +78,7 @@ shared_examples 'close quick action' do |issuable_type| ...@@ -76,10 +78,7 @@ shared_examples 'close quick action' do |issuable_type|
it 'explains close quick action' do it 'explains close quick action' do
visit public_send("project_#{issuable_type}_path", project, issuable) visit public_send("project_#{issuable_type}_path", project, issuable)
page.within('.js-main-target-form') do preview_note("this is done, close\n/close") do
fill_in 'note[note]', with: "this is done, close\n/close"
click_on 'Preview'
expect(page).not_to have_content '/close' expect(page).not_to have_content '/close'
expect(page).to have_content 'this is done, close' expect(page).to have_content 'this is done, close'
expect(page).to have_content "Closes this #{issuable_type.to_s.humanize.downcase}." expect(page).to have_content "Closes this #{issuable_type.to_s.humanize.downcase}."
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment