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:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-09-04 18:08:46 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-09-04 18:08:46 +0300
commitadf76f8f1d6da3ecbd8aa5d2da68dc8456283e8f (patch)
tree8f422d83a2690d0fdb3fd0ee55cf225e40fd976a /spec/services/issues
parent6724a6ee6b0898470e20f294f1328cc01891756a (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/services/issues')
-rw-r--r--spec/services/issues/create_service_spec.rb31
-rw-r--r--spec/services/issues/reorder_service_spec.rb34
2 files changed, 26 insertions, 39 deletions
diff --git a/spec/services/issues/create_service_spec.rb b/spec/services/issues/create_service_spec.rb
index 794da96ed11..2c36b7ea4b6 100644
--- a/spec/services/issues/create_service_spec.rb
+++ b/spec/services/issues/create_service_spec.rb
@@ -75,35 +75,10 @@ RSpec.describe Issues::CreateService do
expect(Todo.where(attributes).count).to eq 1
end
- it 'rebalances if needed' do
- create(:issue, project: project, relative_position: RelativePositioning::MAX_POSITION)
- expect(IssueRebalancingWorker).to receive(:perform_async).with(nil, project.id)
+ it 'moves the issue to the end, in an asynchronous worker' do
+ expect(IssuePlacementWorker).to receive(:perform_async).with(Integer)
- expect(issue.relative_position).to eq(project.issues.maximum(:relative_position))
- end
-
- it 'does not rebalance if the flag is disabled' do
- stub_feature_flags(rebalance_issues: false)
-
- create(:issue, project: project, relative_position: RelativePositioning::MAX_POSITION)
- expect(IssueRebalancingWorker).not_to receive(:perform_async)
-
- expect(issue.relative_position).to eq(project.issues.maximum(:relative_position))
- end
-
- it 'does rebalance if the flag is enabled for the project' do
- stub_feature_flags(rebalance_issues: project)
-
- create(:issue, project: project, relative_position: RelativePositioning::MAX_POSITION)
- expect(IssueRebalancingWorker).to receive(:perform_async).with(nil, project.id)
-
- expect(issue.relative_position).to eq(project.issues.maximum(:relative_position))
- end
-
- it 'does not rebalance unless needed' do
- expect(IssueRebalancingWorker).not_to receive(:perform_async)
-
- expect(issue.relative_position).to eq(project.issues.maximum(:relative_position))
+ described_class.new(project, user, opts).execute
end
context 'when label belongs to project group' do
diff --git a/spec/services/issues/reorder_service_spec.rb b/spec/services/issues/reorder_service_spec.rb
index b6ad488a48c..78b937a1caf 100644
--- a/spec/services/issues/reorder_service_spec.rb
+++ b/spec/services/issues/reorder_service_spec.rb
@@ -3,9 +3,9 @@
require 'spec_helper'
RSpec.describe Issues::ReorderService do
- let_it_be(:user) { create(:user) }
- let_it_be(:project) { create(:project) }
+ let_it_be(:user) { create_default(:user) }
let_it_be(:group) { create(:group) }
+ let_it_be(:project, reload: true) { create(:project, namespace: group) }
shared_examples 'issues reorder service' do
context 'when reordering issues' do
@@ -14,7 +14,7 @@ RSpec.describe Issues::ReorderService do
end
it 'returns false with both invalid params' do
- params = { move_after_id: nil, move_before_id: 1 }
+ params = { move_after_id: nil, move_before_id: non_existing_record_id }
expect(service(params).execute(issue1)).to be_falsey
end
@@ -27,27 +27,39 @@ RSpec.describe Issues::ReorderService do
expect(issue1.relative_position)
.to be_between(issue2.relative_position, issue3.relative_position)
end
+
+ it 'sorts issues if only given one neighbour, on the left' do
+ params = { move_before_id: issue3.id }
+
+ service(params).execute(issue1)
+
+ expect(issue1.relative_position).to be > issue3.relative_position
+ end
+
+ it 'sorts issues if only given one neighbour, on the right' do
+ params = { move_after_id: issue1.id }
+
+ service(params).execute(issue3)
+
+ expect(issue3.relative_position).to be < issue1.relative_position
+ end
end
end
describe '#execute' do
- let(:issue1) { create(:issue, project: project, relative_position: 10) }
- let(:issue2) { create(:issue, project: project, relative_position: 20) }
- let(:issue3) { create(:issue, project: project, relative_position: 30) }
+ let_it_be(:issue1, reload: true) { create(:issue, project: project, relative_position: 10) }
+ let_it_be(:issue2) { create(:issue, project: project, relative_position: 20) }
+ let_it_be(:issue3, reload: true) { create(:issue, project: project, relative_position: 30) }
context 'when ordering issues in a project' do
- let(:parent) { project }
-
before do
- parent.add_developer(user)
+ project.add_developer(user)
end
it_behaves_like 'issues reorder service'
end
context 'when ordering issues in a group' do
- let(:project) { create(:project, namespace: group) }
-
before do
group.add_developer(user)
end