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/models/issue_spec.rb')
-rw-r--r--spec/models/issue_spec.rb54
1 files changed, 47 insertions, 7 deletions
diff --git a/spec/models/issue_spec.rb b/spec/models/issue_spec.rb
index 884c476932e..edb93ecf4b6 100644
--- a/spec/models/issue_spec.rb
+++ b/spec/models/issue_spec.rb
@@ -5,6 +5,8 @@ require 'spec_helper'
RSpec.describe Issue do
include ExternalAuthorizationServiceHelpers
+ using RSpec::Parameterized::TableSyntax
+
let_it_be(:user) { create(:user) }
let_it_be(:reusable_project) { create(:project) }
@@ -1287,15 +1289,33 @@ RSpec.describe Issue do
end
end
- let(:project) { build_stubbed(:project_empty_repo) }
- let(:issue) { build_stubbed(:issue, relative_position: 100, project: project) }
+ shared_examples 'schedules issues rebalancing' do
+ let(:issue) { build_stubbed(:issue, relative_position: 100, project: project) }
+
+ it 'schedules rebalancing if we time-out when moving' do
+ lhs = build_stubbed(:issue, relative_position: 99, project: project)
+ to_move = build(:issue, project: project)
+ expect(IssueRebalancingWorker).to receive(:perform_async).with(nil, project_id, namespace_id)
+
+ expect { to_move.move_between(lhs, issue) }.to raise_error(ActiveRecord::QueryCanceled)
+ end
+ end
+
+ context 'when project in user namespace' do
+ let(:project) { build_stubbed(:project_empty_repo) }
+ let(:project_id) { project.id }
+ let(:namespace_id) { nil }
+
+ it_behaves_like 'schedules issues rebalancing'
+ end
- it 'schedules rebalancing if we time-out when moving' do
- lhs = build_stubbed(:issue, relative_position: 99, project: project)
- to_move = build(:issue, project: project)
- expect(IssueRebalancingWorker).to receive(:perform_async).with(nil, project.id)
+ context 'when project in a group namespace' do
+ let(:group) { create(:group) }
+ let(:project) { build_stubbed(:project_empty_repo, group: group) }
+ let(:project_id) { nil }
+ let(:namespace_id) { group.id }
- expect { to_move.move_between(lhs, issue) }.to raise_error(ActiveRecord::QueryCanceled)
+ it_behaves_like 'schedules issues rebalancing'
end
end
@@ -1315,6 +1335,26 @@ RSpec.describe Issue do
end
end
+ describe '#supports_time_tracking?' do
+ let_it_be(:project) { create(:project) }
+ let_it_be_with_refind(:issue) { create(:incident, project: project) }
+
+ where(:issue_type, :supports_time_tracking) do
+ :issue | true
+ :incident | true
+ end
+
+ with_them do
+ before do
+ issue.update!(issue_type: issue_type)
+ end
+
+ it do
+ expect(issue.supports_time_tracking?).to eq(supports_time_tracking)
+ end
+ end
+ end
+
describe '#email_participants_emails' do
let_it_be(:issue) { create(:issue) }