70 lines
2.0 KiB
Ruby
70 lines
2.0 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
RSpec.describe 'Merge request > User sees suggest pipeline', :js do
|
|
let(:merge_request) { create(:merge_request) }
|
|
let(:project) { merge_request.source_project }
|
|
let(:user) { project.creator }
|
|
|
|
before do
|
|
stub_application_setting(auto_devops_enabled: false)
|
|
project.add_maintainer(user)
|
|
sign_in(user)
|
|
visit project_merge_request_path(project, merge_request)
|
|
end
|
|
|
|
it 'shows the suggest pipeline widget and then allows dismissal correctly' do
|
|
expect(page).to have_content('Are you adding technical debt or code vulnerabilities?')
|
|
|
|
page.within '.mr-pipeline-suggest' do
|
|
find('[data-testid="close"]').click
|
|
end
|
|
|
|
wait_for_requests
|
|
|
|
expect(page).not_to have_content('Are you adding technical debt or code vulnerabilities?')
|
|
|
|
# Reload so we know the user callout was registered
|
|
visit page.current_url
|
|
|
|
expect(page).not_to have_content('Are you adding technical debt or code vulnerabilities?')
|
|
end
|
|
|
|
it 'runs tour from start to finish ensuring all nudges are executed' do
|
|
# nudge 1
|
|
expect(page).to have_content('Are you adding technical debt or code vulnerabilities?')
|
|
|
|
page.within '.mr-pipeline-suggest' do
|
|
find('[data-testid="ok"]').click
|
|
end
|
|
|
|
wait_for_requests
|
|
|
|
# nudge 2
|
|
expect(page).to have_content('Choose Code Quality to add a pipeline that tests the quality of your code.')
|
|
|
|
find('.js-gitlab-ci-yml-selector').click
|
|
|
|
wait_for_requests
|
|
|
|
within '.gitlab-ci-yml-selector' do
|
|
find('.dropdown-input-field').set('Jekyll')
|
|
find('.dropdown-content li', text: 'Jekyll').click
|
|
end
|
|
|
|
wait_for_requests
|
|
|
|
expect(page).not_to have_content('Choose Code Quality to add a pipeline that tests the quality of your code.')
|
|
# nudge 3
|
|
expect(page).to have_content('The template is ready!')
|
|
|
|
find('#commit-changes').click
|
|
|
|
wait_for_requests
|
|
|
|
# nudge 4
|
|
expect(page).to have_content("That's it, well done!")
|
|
end
|
|
end
|