diff options
Diffstat (limited to 'spec/views/projects')
7 files changed, 45 insertions, 165 deletions
diff --git a/spec/views/projects/_home_panel.html.haml_spec.rb b/spec/views/projects/_home_panel.html.haml_spec.rb index cc0eb9919da..d329c57af00 100644 --- a/spec/views/projects/_home_panel.html.haml_spec.rb +++ b/spec/views/projects/_home_panel.html.haml_spec.rb @@ -9,7 +9,6 @@ RSpec.describe 'projects/_home_panel' do let(:project) { create(:project) } before do - stub_feature_flags(vue_notification_dropdown: false) assign(:project, project) allow(view).to receive(:current_user).and_return(user) @@ -25,11 +24,10 @@ RSpec.describe 'projects/_home_panel' do assign(:notification_setting, notification_settings) end - it 'makes it possible to set notification level' do + it 'renders Vue app root' do render - expect(view).to render_template('shared/notifications/_new_button') - expect(rendered).to have_selector('.notification-dropdown') + expect(rendered).to have_selector('.js-vue-notification-dropdown') end end @@ -40,10 +38,10 @@ RSpec.describe 'projects/_home_panel' do assign(:notification_setting, nil) end - it 'is not possible to set notification level' do + it 'does not render Vue app root' do render - expect(rendered).not_to have_selector('.notification_dropdown') + expect(rendered).not_to have_selector('.js-vue-notification-dropdown') end end end diff --git a/spec/views/projects/commit/_commit_box.html.haml_spec.rb b/spec/views/projects/commit/_commit_box.html.haml_spec.rb index 9c97696493e..9d18519ade6 100644 --- a/spec/views/projects/commit/_commit_box.html.haml_spec.rb +++ b/spec/views/projects/commit/_commit_box.html.haml_spec.rb @@ -21,12 +21,37 @@ RSpec.describe 'projects/commit/_commit_box.html.haml' do end context 'when there is a pipeline present' do + context 'when pipeline has stages' do + before do + pipeline = create(:ci_pipeline, project: project, sha: project.commit.id, status: 'success') + create(:ci_build, pipeline: pipeline, stage: 'build') + + assign(:last_pipeline, project.commit.last_pipeline) + end + + it 'shows pipeline stages in vue' do + render + + expect(rendered).to have_selector('.js-commit-pipeline-mini-graph') + end + + it 'shows pipeline stages in haml when feature flag is disabled' do + stub_feature_flags(ci_commit_pipeline_mini_graph_vue: false) + + render + + expect(rendered).to have_selector('.js-commit-pipeline-graph') + end + end + context 'when there are multiple pipelines for a commit' do it 'shows the last pipeline' do create(:ci_pipeline, project: project, sha: project.commit.id, status: 'success') create(:ci_pipeline, project: project, sha: project.commit.id, status: 'canceled') third_pipeline = create(:ci_pipeline, project: project, sha: project.commit.id, status: 'failed') + assign(:last_pipeline, third_pipeline) + render expect(rendered).to have_text("Pipeline ##{third_pipeline.id} failed") @@ -40,6 +65,8 @@ RSpec.describe 'projects/commit/_commit_box.html.haml' do end it 'shows correct pipeline description' do + assign(:last_pipeline, pipeline) + render expect(rendered).to have_text "Pipeline ##{pipeline.id} " \ diff --git a/spec/views/projects/empty.html.haml_spec.rb b/spec/views/projects/empty.html.haml_spec.rb index 6762dcd22d5..de83722160e 100644 --- a/spec/views/projects/empty.html.haml_spec.rb +++ b/spec/views/projects/empty.html.haml_spec.rb @@ -79,41 +79,4 @@ RSpec.describe 'projects/empty' do it_behaves_like 'no invite member info' end end - - context 'when rendering with the layout' do - subject(:render_page) { render template: 'projects/empty.html.haml', layout: 'layouts/project' } - - describe 'invite team members' do - before do - allow(view).to receive(:session).and_return({}) - allow(view).to receive(:current_user_mode).and_return(Gitlab::Auth::CurrentUserMode.new(user)) - allow(view).to receive(:current_user).and_return(user) - allow(view).to receive(:experiment_enabled?).and_return(false) - end - - context 'when invite team members is not available in sidebar' do - before do - allow(view).to receive(:can_invite_members_for_project?).and_return(false) - end - - it 'does not display the js-invite-members-trigger' do - render_page - - expect(rendered).not_to have_selector('.js-invite-members-trigger') - end - end - - context 'when invite team members is available' do - before do - allow(view).to receive(:can_invite_members_for_project?).and_return(true) - end - - it 'includes the div for js-invite-members-trigger' do - render_page - - expect(rendered).to have_selector('.js-invite-members-trigger') - end - end - end - end end diff --git a/spec/views/projects/issues/import_csv/_button.html.haml_spec.rb b/spec/views/projects/issues/import_csv/_button.html.haml_spec.rb deleted file mode 100644 index 8bc0a00d71c..00000000000 --- a/spec/views/projects/issues/import_csv/_button.html.haml_spec.rb +++ /dev/null @@ -1,43 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe 'projects/issues/import_csv/_button' do - include Devise::Test::ControllerHelpers - - context 'when the user does not have edit permissions' do - before do - render - end - - it 'shows a dropdown button to import CSV' do - expect(rendered).to have_text('Import CSV') - end - - it 'does not show a button to import from Jira' do - expect(rendered).not_to have_text('Import from Jira') - end - end - - context 'when the user has edit permissions' do - let(:project) { create(:project) } - let(:current_user) { create(:user, maintainer_projects: [project]) } - - before do - allow(view).to receive(:project_import_jira_path).and_return('import/jira') - allow(view).to receive(:current_user).and_return(current_user) - - assign(:project, project) - - render - end - - it 'shows a dropdown button to import CSV' do - expect(rendered).to have_text('Import CSV') - end - - it 'shows a button to import from Jira' do - expect(rendered).to have_text('Import from Jira') - end - end -end diff --git a/spec/views/projects/merge_requests/show.html.haml_spec.rb b/spec/views/projects/merge_requests/show.html.haml_spec.rb index db41c9b5374..40d11342ec4 100644 --- a/spec/views/projects/merge_requests/show.html.haml_spec.rb +++ b/spec/views/projects/merge_requests/show.html.haml_spec.rb @@ -2,16 +2,14 @@ require 'spec_helper' -RSpec.describe 'projects/merge_requests/show.html.haml' do - include Spec::Support::Helpers::Features::MergeRequestHelpers +RSpec.describe 'projects/merge_requests/show.html.haml', :aggregate_failures do + include_context 'merge request show action' before do - allow(view).to receive(:experiment_enabled?).and_return(false) + merge_request.reload end context 'when the merge request is open' do - include_context 'open merge request show action' - it 'shows the "Mark as draft" button' do render @@ -22,20 +20,8 @@ RSpec.describe 'projects/merge_requests/show.html.haml' do end context 'when the merge request is closed' do - include_context 'closed merge request show action' - - describe 'merge request assignee sidebar' do - context 'when assignee is allowed to merge' do - it 'does not show a warning icon' do - closed_merge_request.update!(assignee_id: user.id) - project.add_maintainer(user) - assign(:issuable_sidebar, serialize_issuable_sidebar(user, project, closed_merge_request)) - - render - - expect(rendered).not_to have_css('.merge-icon') - end - end + before do + merge_request.close! end it 'shows the "Reopen" button' do @@ -46,15 +32,15 @@ RSpec.describe 'projects/merge_requests/show.html.haml' do expect(rendered).to have_css('a', visible: false, text: 'Close') end - it 'does not show the "Reopen" button when the source project does not exist' do - unlink_project.execute - closed_merge_request.reload - preload_view_requirements(closed_merge_request, note) + context 'when source project does not exist' do + it 'does not show the "Reopen" button' do + allow(merge_request).to receive(:source_project).and_return(nil) - render + render - expect(rendered).to have_css('a', visible: false, text: 'Reopen') - expect(rendered).to have_css('a', visible: false, text: 'Close') + expect(rendered).to have_css('a', visible: false, text: 'Reopen') + expect(rendered).to have_css('a', visible: false, text: 'Close') + end end end end diff --git a/spec/views/projects/settings/operations/show.html.haml_spec.rb b/spec/views/projects/settings/operations/show.html.haml_spec.rb index a22853d40d8..b2dd3556098 100644 --- a/spec/views/projects/settings/operations/show.html.haml_spec.rb +++ b/spec/views/projects/settings/operations/show.html.haml_spec.rb @@ -59,7 +59,7 @@ RSpec.describe 'projects/settings/operations/show' do expect(rendered).to have_content _('Prometheus') expect(rendered).to have_content _('Link Prometheus monitoring to GitLab.') - expect(rendered).to have_content _('To enable the installation of Prometheus on your clusters, deactivate the manual configuration below') + expect(rendered).to have_content _('To enable the installation of Prometheus on your clusters, deactivate the manual configuration.') end end @@ -71,7 +71,7 @@ RSpec.describe 'projects/settings/operations/show' do it 'renders the Operations Settings page' do render - expect(rendered).not_to have_content _('Select the Active checkbox to override the Auto Configuration with custom settings. If unchecked, Auto Configuration settings are used.') + expect(rendered).not_to have_content _('Auto configuration settings are used unless you override their values here.') end end end diff --git a/spec/views/projects/show.html.haml_spec.rb b/spec/views/projects/show.html.haml_spec.rb deleted file mode 100644 index 995e31e83af..00000000000 --- a/spec/views/projects/show.html.haml_spec.rb +++ /dev/null @@ -1,51 +0,0 @@ -# frozen_string_literal: true - -require 'spec_helper' - -RSpec.describe 'projects/show.html.haml' do - let_it_be(:user) { build(:user) } - let_it_be(:project) { ProjectPresenter.new(create(:project, :repository), current_user: user) } - - before do - assign(:project, project) - end - - context 'when rendering with the layout' do - subject(:render_page) { render template: 'projects/show.html.haml', layout: 'layouts/project' } - - describe 'invite team members' do - before do - allow(view).to receive(:event_filter_link) - allow(view).to receive(:session).and_return({}) - allow(view).to receive(:current_user_mode).and_return(Gitlab::Auth::CurrentUserMode.new(user)) - allow(view).to receive(:current_user).and_return(user) - allow(view).to receive(:experiment_enabled?).and_return(false) - allow(view).to receive(:add_page_startup_graphql_call) - end - - context 'when invite team members is not available in sidebar' do - before do - allow(view).to receive(:can_invite_members_for_project?).and_return(false) - end - - it 'does not display the js-invite-members-trigger' do - render_page - - expect(rendered).not_to have_selector('.js-invite-members-trigger') - end - end - - context 'when invite team members is available' do - before do - allow(view).to receive(:can_invite_members_for_project?).and_return(true) - end - - it 'includes the div for js-invite-members-trigger' do - render_page - - expect(rendered).to have_selector('.js-invite-members-trigger') - end - end - end - end -end |