summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-07-09 00:09:11 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-07-09 00:09:11 +0000
commitf44bf01f69a491d4dfca8d631b390371bd0eec7a (patch)
tree873c673d96a75212485d5bfe808451798f6134fa /spec
parent83fc2f3dc81052cad76addb44726876ba1d0f156 (diff)
downloadgitlab-ce-f44bf01f69a491d4dfca8d631b390371bd0eec7a.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
-rw-r--r--spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_button_spec.js3
-rw-r--r--spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_search_input_spec.js6
-rw-r--r--spec/serializers/fork_namespace_entity_spec.rb70
-rw-r--r--spec/serializers/fork_namespace_serializer_spec.rb9
-rw-r--r--spec/services/merge_requests/post_merge_service_spec.rb4
5 files changed, 86 insertions, 6 deletions
diff --git a/spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_button_spec.js b/spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_button_spec.js
index d02d924bd2b..79851e5db05 100644
--- a/spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_button_spec.js
+++ b/spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_button_spec.js
@@ -82,10 +82,9 @@ describe('DropdownButtonComponent', () => {
});
it('renders dropdown button icon', () => {
- const dropdownIconEl = vm.$el.querySelector('i.fa');
+ const dropdownIconEl = vm.$el.querySelector('.dropdown-menu-toggle .gl-icon');
expect(dropdownIconEl).not.toBeNull();
- expect(dropdownIconEl.classList.contains('fa-chevron-down')).toBe(true);
});
});
});
diff --git a/spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_search_input_spec.js b/spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_search_input_spec.js
index 035af946d75..510e537b1cd 100644
--- a/spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_search_input_spec.js
+++ b/spec/frontend/vue_shared/components/sidebar/labels_select/dropdown_search_input_spec.js
@@ -29,13 +29,11 @@ describe('DropdownSearchInputComponent', () => {
});
it('renders search icon element', () => {
- expect(vm.$el.querySelector('.fa-search.dropdown-input-search')).not.toBeNull();
+ expect(vm.$el.querySelector('.dropdown-input-search')).not.toBeNull();
});
it('renders clear search icon element', () => {
- expect(
- vm.$el.querySelector('.fa-times.dropdown-input-clear.js-dropdown-input-clear'),
- ).not.toBeNull();
+ expect(vm.$el.querySelector('.dropdown-input-clear.js-dropdown-input-clear')).not.toBeNull();
});
});
});
diff --git a/spec/serializers/fork_namespace_entity_spec.rb b/spec/serializers/fork_namespace_entity_spec.rb
new file mode 100644
index 00000000000..7ce6b77da44
--- /dev/null
+++ b/spec/serializers/fork_namespace_entity_spec.rb
@@ -0,0 +1,70 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe ForkNamespaceEntity do
+ include Gitlab::Routing.url_helpers
+ include ProjectForksHelper
+
+ let_it_be(:user) { create(:user) }
+ let_it_be(:project) { create(:project) }
+
+ let(:namespace) { create(:group, :with_avatar, description: 'test') }
+ let(:entity) { described_class.new(namespace, current_user: user, project: project) }
+
+ subject(:json) { entity.as_json }
+
+ before do
+ project.add_maintainer(user)
+ end
+
+ it 'renders json' do
+ is_expected.not_to be_nil
+ end
+
+ %w[id
+ name
+ description
+ markdown_description
+ visibility
+ full_name
+ created_at
+ updated_at
+ avatar_url].each do |attribute|
+ it "includes #{attribute}" do
+ expect(json[attribute.to_sym]).to be_present
+ end
+ end
+
+ it 'exposes path for forking project to the namespace' do
+ expect(json[:fork_path]).to eq project_forks_path(project, namespace_key: namespace.id)
+ end
+
+ it 'exposes forked_project_path when fork exists in namespace' do
+ namespace.add_maintainer(user)
+ fork_in_namespace = fork_project(project, user, namespace: namespace)
+
+ expect(json[:forked_project_path]).to eql project_path(fork_in_namespace)
+ end
+
+ it 'exposes relative path to the namespace' do
+ expect(json[:relative_path]).to eql polymorphic_path(namespace)
+ end
+
+ it 'exposes human readable permission level' do
+ namespace.add_developer(user)
+ expect(json[:permission]).to eql 'Developer'
+ end
+
+ it 'sets can_create_project to true when user can create projects in namespace' do
+ allow(user).to receive(:can?).with(:create_projects, namespace).and_return(true)
+
+ expect(json[:can_create_project]).to be true
+ end
+
+ it 'sets can_create_project to false when user is not allowed create projects in namespace' do
+ allow(user).to receive(:can?).with(:create_projects, namespace).and_return(false)
+
+ expect(json[:can_create_project]).to be false
+ end
+end
diff --git a/spec/serializers/fork_namespace_serializer_spec.rb b/spec/serializers/fork_namespace_serializer_spec.rb
new file mode 100644
index 00000000000..6793b900af6
--- /dev/null
+++ b/spec/serializers/fork_namespace_serializer_spec.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe ForkNamespaceSerializer do
+ it 'represents ForkNamespaceEntity entities' do
+ expect(described_class.entity_class).to eq(ForkNamespaceEntity)
+ end
+end
diff --git a/spec/services/merge_requests/post_merge_service_spec.rb b/spec/services/merge_requests/post_merge_service_spec.rb
index 5ecc0402420..a51a896ca96 100644
--- a/spec/services/merge_requests/post_merge_service_spec.rb
+++ b/spec/services/merge_requests/post_merge_service_spec.rb
@@ -90,6 +90,8 @@ RSpec.describe MergeRequests::PostMergeService do
pipeline: pipeline, project: project, environment: review_env_a.name)
review_job_a2 = create(:ci_build, :with_deployment, :start_review_app,
pipeline: pipeline, project: project, environment: review_env_a.name)
+ finished_review_job_a = create(:ci_build, :with_deployment, :start_review_app,
+ pipeline: pipeline, project: project, status: :success, environment: review_env_a.name)
review_job_b1 = create(:ci_build, :with_deployment, :start_review_app,
pipeline: pipeline, project: project, environment: review_env_b.name)
review_job_b2 = create(:ci_build, :start_review_app,
@@ -103,6 +105,8 @@ RSpec.describe MergeRequests::PostMergeService do
expect(review_job_a1.reload.canceled?).to be true
expect(review_job_a2.reload.canceled?).to be true
+ expect(finished_review_job_a.reload.status).to eq "success"
+ expect(finished_review_job_a.reload.canceled?).to be false
expect(review_job_b1.reload.canceled?).to be true
expect(review_job_b2.reload.canceled?).to be false
expect(review_job_c1.reload.canceled?).to be false