Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/views/projects')
-rw-r--r--spec/views/projects/artifacts/_artifact.html.haml_spec.rb17
-rw-r--r--spec/views/projects/commits/_commit.html.haml_spec.rb2
-rw-r--r--spec/views/projects/empty.html.haml_spec.rb82
-rw-r--r--spec/views/projects/merge_requests/show.html.haml_spec.rb39
4 files changed, 124 insertions, 16 deletions
diff --git a/spec/views/projects/artifacts/_artifact.html.haml_spec.rb b/spec/views/projects/artifacts/_artifact.html.haml_spec.rb
index b3bf54e143a..5d930d6b0f2 100644
--- a/spec/views/projects/artifacts/_artifact.html.haml_spec.rb
+++ b/spec/views/projects/artifacts/_artifact.html.haml_spec.rb
@@ -16,10 +16,21 @@ RSpec.describe "projects/artifacts/_artifact.html.haml" do
context 'with admin' do
let(:user) { build(:admin) }
- it 'has a delete button' do
- render_partial
+ context 'when admin mode is enabled', :enable_admin_mode do
+ it 'has a delete button' do
+ render_partial
- expect(rendered).to have_link('Delete artifacts', href: project_artifact_path(project, project.job_artifacts.first))
+ expect(rendered).to have_link('Delete artifacts', href: project_artifact_path(project, project.job_artifacts.first))
+ end
+ end
+
+ context 'when admin mode is disabled' do
+ it 'has no delete button' do
+ project.add_reporter(user)
+ render_partial
+
+ expect(rendered).not_to have_link('Delete artifacts')
+ end
end
end
diff --git a/spec/views/projects/commits/_commit.html.haml_spec.rb b/spec/views/projects/commits/_commit.html.haml_spec.rb
index 898d3baae19..abbb3a168c3 100644
--- a/spec/views/projects/commits/_commit.html.haml_spec.rb
+++ b/spec/views/projects/commits/_commit.html.haml_spec.rb
@@ -22,7 +22,7 @@ RSpec.describe 'projects/commits/_commit.html.haml' do
}
within '.gpg-status-box' do
- expect(page).not_to have_css('i.fa.fa-spinner.fa-spin')
+ expect(page).not_to have_css('.gl-spinner')
end
end
end
diff --git a/spec/views/projects/empty.html.haml_spec.rb b/spec/views/projects/empty.html.haml_spec.rb
new file mode 100644
index 00000000000..de83722160e
--- /dev/null
+++ b/spec/views/projects/empty.html.haml_spec.rb
@@ -0,0 +1,82 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'projects/empty' do
+ let_it_be(:user) { create(:user) }
+ let_it_be(:project) { ProjectPresenter.new(create(:project, :empty_repo), current_user: user) }
+
+ before do
+ allow(view).to receive(:experiment_enabled?).and_return(true)
+ allow(view).to receive(:current_user).and_return(user)
+ assign(:project, project)
+ end
+
+ context 'when user can push code on the project' do
+ before do
+ allow(view).to receive(:can?).with(user, :push_code, project).and_return(true)
+ end
+
+ it 'displays "git clone" instructions' do
+ render
+
+ expect(rendered).to have_content("git clone")
+ end
+ end
+
+ context 'when user can not push code on the project' do
+ before do
+ allow(view).to receive(:can?).with(user, :push_code, project).and_return(false)
+ end
+
+ it 'does not display "git clone" instructions' do
+ render
+
+ expect(rendered).not_to have_content("git clone")
+ end
+ end
+
+ describe 'invite_members_empty_project_version_a experiment' do
+ let(:can_import_members) { true }
+
+ before do
+ allow(view).to receive(:can_import_members?).and_return(can_import_members)
+ end
+
+ shared_examples_for 'no invite member info' do
+ it 'does not show invite member info' do
+ render
+
+ expect(rendered).not_to have_content('Invite your team')
+ end
+ end
+
+ context 'when experiment is enabled' do
+ it 'shows invite members info', :aggregate_failures do
+ render
+
+ expect(rendered).to have_selector('[data-track-event=render]')
+ expect(rendered).to have_selector('[data-track-label=invite_members_empty_project]', count: 2)
+ expect(rendered).to have_content('Invite your team')
+ expect(rendered).to have_content('Add members to this project and start collaborating with your team.')
+ expect(rendered).to have_link('Invite members', href: project_project_members_path(project, sort: :access_level_desc))
+ expect(rendered).to have_selector('[data-track-event=click_button]')
+ end
+
+ context 'when user does not have permissions to invite members' do
+ let(:can_import_members) { false }
+
+ it_behaves_like 'no invite member info'
+ end
+ end
+
+ context 'when experiment is not enabled' do
+ before do
+ allow(view).to receive(:experiment_enabled?)
+ .with(:invite_members_empty_project_version_a).and_return(false)
+ end
+
+ it_behaves_like 'no invite member info'
+ 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 9b4f2774c5b..db41c9b5374 100644
--- a/spec/views/projects/merge_requests/show.html.haml_spec.rb
+++ b/spec/views/projects/merge_requests/show.html.haml_spec.rb
@@ -3,30 +3,45 @@
require 'spec_helper'
RSpec.describe 'projects/merge_requests/show.html.haml' do
+ include Spec::Support::Helpers::Features::MergeRequestHelpers
+
before do
allow(view).to receive(:experiment_enabled?).and_return(false)
end
- include_context '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))
+ context 'when the merge request is open' do
+ include_context 'open merge request show action'
- render
+ it 'shows the "Mark as draft" button' do
+ render
- expect(rendered).not_to have_css('.merge-icon')
- end
+ expect(rendered).to have_css('a', visible: true, text: 'Mark as draft')
+ expect(rendered).to have_css('a', visible: false, text: 'Reopen')
+ expect(rendered).to have_css('a', visible: true, text: 'Close')
end
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
+ end
+
it 'shows the "Reopen" button' do
render
+ expect(rendered).not_to have_css('a', visible: true, text: 'Mark as draft')
expect(rendered).to have_css('a', visible: true, text: 'Reopen')
expect(rendered).to have_css('a', visible: false, text: 'Close')
end
@@ -34,7 +49,7 @@ RSpec.describe 'projects/merge_requests/show.html.haml' do
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
+ preload_view_requirements(closed_merge_request, note)
render