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/event_spec.rb')
-rw-r--r--spec/models/event_spec.rb53
1 files changed, 33 insertions, 20 deletions
diff --git a/spec/models/event_spec.rb b/spec/models/event_spec.rb
index 9579c4c2d27..667f3ddff72 100644
--- a/spec/models/event_spec.rb
+++ b/spec/models/event_spec.rb
@@ -2,7 +2,9 @@
require 'spec_helper'
-RSpec.describe Event do
+RSpec.describe Event, feature_category: :users do
+ let_it_be_with_reload(:project) { create(:project) }
+
describe "Associations" do
it { is_expected.to belong_to(:project) }
it { is_expected.to belong_to(:target) }
@@ -17,8 +19,6 @@ RSpec.describe Event do
end
describe 'Callbacks' do
- let(:project) { create(:project) }
-
describe 'after_create :reset_project_activity' do
it 'calls the reset_project_activity method' do
expect_next_instance_of(described_class) do |instance|
@@ -105,7 +105,7 @@ RSpec.describe Event do
describe 'created_at' do
it 'can find the right event' do
time = 1.day.ago
- event = create(:event, created_at: time)
+ event = create(:event, created_at: time, project: project)
false_positive = create(:event, created_at: 2.days.ago)
found = described_class.created_at(time)
@@ -116,11 +116,11 @@ RSpec.describe Event do
end
describe '.for_fingerprint' do
- let_it_be(:with_fingerprint) { create(:event, fingerprint: 'aaa') }
+ let_it_be(:with_fingerprint) { create(:event, fingerprint: 'aaa', project: project) }
before_all do
- create(:event)
- create(:event, fingerprint: 'bbb')
+ create(:event, project: project)
+ create(:event, fingerprint: 'bbb', project: project)
end
it 'returns none if there is no fingerprint' do
@@ -137,28 +137,43 @@ RSpec.describe Event do
.to contain_exactly(with_fingerprint)
end
end
+
+ describe '.contributions' do
+ let!(:merge_request_event) { create(:event, :created, :for_merge_request, project: project) }
+ let!(:issue_event) { create(:event, :created, :for_issue, project: project) }
+ let!(:work_item_event) { create(:event, :created, :for_work_item, project: project) }
+ let!(:design_event) { create(:design_event, project: project) }
+
+ it 'returns events for MergeRequest, Issue and WorkItem' do
+ expect(described_class.contributions).to contain_exactly(
+ merge_request_event,
+ issue_event,
+ work_item_event
+ )
+ end
+ end
end
describe '#fingerprint' do
it 'is unique scoped to target' do
- issue = create(:issue)
- mr = create(:merge_request)
+ issue = create(:issue, project: project)
+ mr = create(:merge_request, source_project: project)
- expect { create_list(:event, 2, target: issue, fingerprint: '1234') }
+ expect { create_list(:event, 2, target: issue, fingerprint: '1234', project: project) }
.to raise_error(include('fingerprint'))
expect do
- create(:event, target: mr, fingerprint: 'abcd')
- create(:event, target: issue, fingerprint: 'abcd')
- create(:event, target: issue, fingerprint: 'efgh')
+ create(:event, target: mr, fingerprint: 'abcd', project: project)
+ create(:event, target: issue, fingerprint: 'abcd', project: project)
+ create(:event, target: issue, fingerprint: 'efgh', project: project)
end.not_to raise_error
end
end
describe "Push event" do
- let(:project) { create(:project, :private) }
- let(:user) { project.first_owner }
- let(:event) { create_push_event(project, user) }
+ let(:private_project) { create(:project, :private) }
+ let(:user) { private_project.first_owner }
+ let(:event) { create_push_event(private_project, user) }
it do
expect(event.push_action?).to be_truthy
@@ -171,8 +186,6 @@ RSpec.describe Event do
end
describe '#target_title' do
- let_it_be(:project) { create(:project) }
-
let(:author) { project.first_owner }
let(:target) { nil }
@@ -303,11 +316,11 @@ RSpec.describe Event do
end
def visible_to_none_except(*roles)
- visible_to_none.merge(roles.to_h { |role| [role, true] })
+ visible_to_none.merge(roles.index_with { true })
end
def visible_to_all_except(*roles)
- visible_to_all.merge(roles.to_h { |role| [role, false] })
+ visible_to_all.merge(roles.index_with { false })
end
shared_examples 'visibility examples' do