require 'integration_helper'
-require 'selenium-webdriver'
-require 'headless'
class UserProfileTest < ActionDispatch::IntegrationTest
setup do
- headless = Headless.new
- headless.start
- Capybara.current_driver = :selenium
-
+ need_javascript
@user_profile_form_fields = Rails.configuration.user_profile_form_fields
end
assert page.has_text?('Save profile'), 'No text - Save profile'
add_profile user
else
- assert page.has_text?('My projects'), 'Not found text - My projects'
+ assert page.has_text?('Active pipelines'), 'Not found text - Active pipelines'
assert page.has_no_text?('Save profile'), 'Found text - Save profile'
end
elsif invited
- assert page.has_text?('Please check the box below to indicate that you have read and accepted the user agreement'), 'Not found text - Please check the box below . . .'
+ assert page.has_text?('Please check the box below to indicate that you have read and accepted the user agreement'),
+ 'Not found text - Please check the box below . . .'
assert page.has_no_text?('Save profile'), 'Found text - Save profile'
else
assert page.has_text?('Your account is inactive'), 'Not found text - Your account is inactive'
assert page.has_no_text?('Save profile'), 'Found text - Save profile'
end
+ # If the user has not already seen getting_started modal, it will be shown on first visit.
+ if user and user['is_active'] and !user['prefs']['getting_started_shown']
+ within '.modal-content' do
+ assert_text 'Getting Started'
+ assert_selector 'button', text: 'Next'
+ assert_selector 'button', text: 'Prev'
+ first('button', text: 'x').click
+ end
+ end
+
within('.navbar-fixed-top') do
if !user
assert page.has_link?('Log in'), 'Not found link - Log in'
assert page.has_no_text?('Projects shared with me'), 'Found text - Projects shared with me'
assert page.has_text?('Profile'), 'No text - Profile'
- assert page.has_text?('First name'), 'No text - First name'
- assert page.has_text?('Last name'), 'No text - Last name'
+ assert page.has_text?('First Name'), 'No text - First Name'
+ assert page.has_text?('Last Name'), 'No text - Last Name'
assert page.has_text?('Identity URL'), 'No text - Identity URL'
- assert page.has_text?('Email'), 'No text - Email'
+ assert page.has_text?('E-mail'), 'No text - E-mail'
assert page.has_text?(user['email']), 'No text - user email'
# Using the default profile which has message and one required field
# Save profile without filling in the required field. Expect to be back in this profile page again
click_button "Save profile"
assert page.has_text?('Profile'), 'No text - Profile'
- assert page.has_text?('First name'), 'No text - First name'
- assert page.has_text?('Last name'), 'No text - Last name'
+ assert page.has_text?('First Name'), 'No text - First Name'
+ assert page.has_text?('Last Name'), 'No text - Last Name'
assert page.has_text?('Save profile'), 'No text - Save profile'
# This time fill in required field and then save. Expect to go to requested page after that.
click_button "Save profile"
# profile saved and in profile page now with success
assert page.has_text?('Thank you for filling in your profile'), 'No text - Thank you for filling'
- click_link 'Back to work!'
+ if user['prefs']['getting_started_shown']
+ click_link 'Back to work!'
+ else
+ click_link 'Get started'
+ end
# profile saved and in home page now
- assert page.has_text?('My projects'), 'No text - My projects'
- assert page.has_text?('Projects shared with me'), 'No text - Projects shared with me'
+ assert page.has_text?('Active pipelines'), 'No text - Active pipelines'
end
[
['active', api_fixture('users')['active'], true, true],
['admin', api_fixture('users')['admin'], true, true],
['active_no_prefs', api_fixture('users')['active_no_prefs'], true, false],
- ['active_no_prefs_profile', api_fixture('users')['active_no_prefs_profile'], true, false],
+ ['active_no_prefs_profile_no_getting_started_shown',
+ api_fixture('users')['active_no_prefs_profile_no_getting_started_shown'], true, false],
+ ['active_no_prefs_profile_with_getting_started_shown',
+ api_fixture('users')['active_no_prefs_profile_with_getting_started_shown'], true, false],
].each do |token, user, invited, has_profile|
test "visit home page when profile is configured for user #{token}" do