debian-mirror-gitlab/spec/features/projects/files/gitlab_ci_syntax_yml_dropdown_spec.rb
2021-03-11 19:13:27 +05:30

58 lines
1.9 KiB
Ruby

# frozen_string_literal: true
require 'spec_helper'
RSpec.describe 'Projects > Files > User wants to add a .gitlab-ci.yml file' do
include Spec::Support::Helpers::Features::EditorLiteSpecHelpers
before do
project = create(:project, :repository)
sign_in project.owner
stub_experiment(ci_syntax_templates: experiment_active)
stub_experiment_for_subject(ci_syntax_templates: in_experiment_group)
visit project_new_blob_path(project, 'master', file_name: '.gitlab-ci.yml')
end
context 'when experiment is not active' do
let(:experiment_active) { false }
let(:in_experiment_group) { false }
it 'does not show the "Learn CI/CD syntax" template dropdown' do
expect(page).not_to have_css('.gitlab-ci-syntax-yml-selector')
end
end
context 'when experiment is active and the user is in the control group' do
let(:experiment_active) { true }
let(:in_experiment_group) { false }
it 'does not show the "Learn CI/CD syntax" template dropdown' do
expect(page).not_to have_css('.gitlab-ci-syntax-yml-selector')
end
end
context 'when experiment is active and the user is in the experimental group' do
let(:experiment_active) { true }
let(:in_experiment_group) { true }
it 'allows the user to pick a "Learn CI/CD syntax" template from the dropdown', :js do
expect(page).to have_css('.gitlab-ci-syntax-yml-selector')
find('.js-gitlab-ci-syntax-yml-selector').click
wait_for_requests
within '.gitlab-ci-syntax-yml-selector' do
find('.dropdown-input-field').set('Artifacts example')
find('.dropdown-content .is-focused', text: 'Artifacts example').click
end
wait_for_requests
expect(page).to have_css('.gitlab-ci-syntax-yml-selector .dropdown-toggle-text', text: 'Learn CI/CD syntax')
expect(editor_get_value).to have_content('You can use artifacts to pass data to jobs in later stages.')
end
end
end