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')
-rw-r--r--spec/models/clusters/applications/cert_manager_spec.rb2
-rw-r--r--spec/models/event_collection_spec.rb83
2 files changed, 55 insertions, 30 deletions
diff --git a/spec/models/clusters/applications/cert_manager_spec.rb b/spec/models/clusters/applications/cert_manager_spec.rb
index bddc09decc3..7e8780f0c90 100644
--- a/spec/models/clusters/applications/cert_manager_spec.rb
+++ b/spec/models/clusters/applications/cert_manager_spec.rb
@@ -54,7 +54,7 @@ describe Clusters::Applications::CertManager do
'kubectl label --overwrite namespace gitlab-managed-apps certmanager.k8s.io/disable-validation=true'
])
expect(subject.postinstall).to eq([
- 'for i in $(seq 1 30); do kubectl apply -f /data/helm/certmanager/config/cluster_issuer.yaml && break; sleep 1s; echo "Retrying ($i)..."; done'
+ 'for i in $(seq 1 30); do kubectl apply -f /data/helm/certmanager/config/cluster_issuer.yaml && break; sleep 1s; echo "Retrying ($i)..."; false; done'
])
end
diff --git a/spec/models/event_collection_spec.rb b/spec/models/event_collection_spec.rb
index efe511042c3..c421ffa000d 100644
--- a/spec/models/event_collection_spec.rb
+++ b/spec/models/event_collection_spec.rb
@@ -4,50 +4,75 @@ require 'spec_helper'
describe EventCollection do
describe '#to_a' do
- let(:project) { create(:project_empty_repo) }
- let(:projects) { Project.where(id: project.id) }
- let(:user) { create(:user) }
+ set(:group) { create(:group) }
+ set(:project) { create(:project_empty_repo, group: group) }
+ set(:projects) { Project.where(id: project.id) }
+ set(:user) { create(:user) }
- before do
- 20.times do
- event = create(:push_event, project: project, author: user)
+ context 'with project events' do
+ before do
+ 20.times do
+ event = create(:push_event, project: project, author: user)
- create(:push_event_payload, event: event)
+ create(:push_event_payload, event: event)
+ end
+
+ create(:closed_issue_event, project: project, author: user)
end
- create(:closed_issue_event, project: project, author: user)
- end
+ it 'returns an Array of events' do
+ events = described_class.new(projects).to_a
- it 'returns an Array of events' do
- events = described_class.new(projects).to_a
+ expect(events).to be_an_instance_of(Array)
+ end
- expect(events).to be_an_instance_of(Array)
- end
+ it 'applies a limit to the number of events' do
+ events = described_class.new(projects).to_a
- it 'applies a limit to the number of events' do
- events = described_class.new(projects).to_a
+ expect(events.length).to eq(20)
+ end
- expect(events.length).to eq(20)
- end
+ it 'can paginate through events' do
+ events = described_class.new(projects, offset: 20).to_a
- it 'can paginate through events' do
- events = described_class.new(projects, offset: 20).to_a
+ expect(events.length).to eq(1)
+ end
- expect(events.length).to eq(1)
- end
+ it 'returns an empty Array when crossing the maximum page number' do
+ events = described_class.new(projects, limit: 1, offset: 15).to_a
- it 'returns an empty Array when crossing the maximum page number' do
- events = described_class.new(projects, limit: 1, offset: 15).to_a
+ expect(events).to be_empty
+ end
+
+ it 'allows filtering of events using an EventFilter' do
+ filter = EventFilter.new(EventFilter::ISSUE)
+ events = described_class.new(projects, filter: filter).to_a
- expect(events).to be_empty
+ expect(events.length).to eq(1)
+ expect(events[0].action).to eq(Event::CLOSED)
+ end
end
- it 'allows filtering of events using an EventFilter' do
- filter = EventFilter.new(EventFilter::ISSUE)
- events = described_class.new(projects, filter: filter).to_a
+ context 'with group events' do
+ let(:groups) { group.self_and_descendants.public_or_visible_to_user(user) }
+ let(:subject) { described_class.new(projects, groups: groups).to_a }
+
+ it 'includes also group events' do
+ subgroup = create(:group, parent: group)
+ event1 = create(:event, project: project, author: user)
+ event2 = create(:event, project: nil, group: group, author: user)
+ event3 = create(:event, project: nil, group: subgroup, author: user)
- expect(events.length).to eq(1)
- expect(events[0].action).to eq(Event::CLOSED)
+ expect(subject).to eq([event3, event2, event1])
+ end
+
+ it 'does not include events from inaccessible groups' do
+ subgroup = create(:group, :private, parent: group)
+ event1 = create(:event, project: nil, group: group, author: user)
+ create(:event, project: nil, group: subgroup, author: user)
+
+ expect(subject).to eq([event1])
+ end
end
end
end