debian-mirror-gitlab/spec/features/merge_request/user_sees_suggest_pipeline_spec.rb
2021-01-29 00:20:46 +05:30

70 lines
2 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