add set_cookie helper

This commit is contained in:
Mike Greiling 2017-09-22 13:15:43 -05:00
parent 76de6327d8
commit 7a8514c3a1
5 changed files with 26 additions and 5 deletions

View File

@ -1,6 +1,7 @@
require 'rails_helper'
describe 'Issue Boards', js: true do
include CookieHelper
include DragTo
let(:group) { create(:group, :nested) }
@ -13,7 +14,7 @@ describe 'Issue Boards', js: true do
project.team << [user, :master]
project.team << [user2, :master]
page.driver.set_cookie('sidebar_collapsed', 'true')
set_cookie('sidebar_collapsed', 'true')
sign_in(user)
end

View File

@ -1,6 +1,7 @@
require 'rails_helper'
describe 'Visual tokens', js: true do
include CookieHelper
include FilteredSearchHelpers
include WaitForRequests
@ -28,7 +29,7 @@ describe 'Visual tokens', js: true do
sign_in(user)
create(:issue, project: project)
page.driver.set_cookie('sidebar_collapsed', 'true')
set_cookie('sidebar_collapsed', 'true')
visit project_issues_path(project)
end

View File

@ -1,6 +1,7 @@
require 'spec_helper'
feature 'Diff note avatars', js: true do
include CookieHelper
include NoteInteractionHelpers
let(:user) { create(:user) }
@ -22,7 +23,7 @@ feature 'Diff note avatars', js: true do
project.team << [user, :master]
sign_in user
page.driver.set_cookie('sidebar_collapsed', 'true')
set_cookie('sidebar_collapsed', 'true')
end
context 'discussion tab' do

View File

@ -1,13 +1,14 @@
require 'spec_helper'
feature 'Merge requests > User posts diff notes', :js do
include CookieHelper
let(:user) { create(:user) }
let(:merge_request) { create(:merge_request) }
let(:project) { merge_request.source_project }
before do
visit '/'
page.driver.browser.manage.add_cookie(name: 'sidebar_collapsed', value: 'true')
set_cookie('sidebar_collapsed', 'true')
project.add_developer(user)
sign_in(user)

View File

@ -0,0 +1,17 @@
# Helper for setting cookies in Selenium/WebDriver
#
module CookieHelper
def set_cookie(name, value, options = {})
# Selenium driver will not set cookies for a given domain when the browser is at `about:blank`.
# It also doesn't appear to allow overriding the cookie path. loading `/` is the most inclusive.
visit options.fetch(:path, '/') unless on_a_page?
page.driver.browser.manage.add_cookie(name: name, value: value, **options)
end
private
def on_a_page?
current_url = Capybara.current_session.driver.browser.current_url
current_url && current_url != '' && current_url != 'about:blank' && current_url != 'data:,'
end
end