diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-04 18:08:46 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-09-04 18:08:46 +0300 |
commit | adf76f8f1d6da3ecbd8aa5d2da68dc8456283e8f (patch) | |
tree | 8f422d83a2690d0fdb3fd0ee55cf225e40fd976a /spec/services/issues | |
parent | 6724a6ee6b0898470e20f294f1328cc01891756a (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/services/issues')
-rw-r--r-- | spec/services/issues/create_service_spec.rb | 31 | ||||
-rw-r--r-- | spec/services/issues/reorder_service_spec.rb | 34 |
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 |