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
path: root/spec
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-02-01 03:08:41 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-02-01 03:08:41 +0300
commit72817fd7c07d1b812623f8d5e27fc7bcecb4eed5 (patch)
tree2e81b28a062212375bf17d1da0ff836d6b021469 /spec
parent9db503ef9888c984b287af44d009d884e835ce04 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
-rw-r--r--spec/factories/pages_domains.rb3
-rw-r--r--spec/models/pages_domain_spec.rb14
-rw-r--r--spec/models/release_spec.rb6
-rw-r--r--spec/requests/api/releases_spec.rb104
4 files changed, 115 insertions, 12 deletions
diff --git a/spec/factories/pages_domains.rb b/spec/factories/pages_domains.rb
index 282783dee3a..7606e806e04 100644
--- a/spec/factories/pages_domains.rb
+++ b/spec/factories/pages_domains.rb
@@ -377,7 +377,8 @@ x6zG6WoibsbsJMj70nwseUnPTBQNDP+j61RJjC/r
trait :instance_serverless do
wildcard { true }
- domain_type { :instance }
+ scope { :instance }
+ usage { :serverless }
end
end
end
diff --git a/spec/models/pages_domain_spec.rb b/spec/models/pages_domain_spec.rb
index b1df13e8c2a..a88db3b87af 100644
--- a/spec/models/pages_domain_spec.rb
+++ b/spec/models/pages_domain_spec.rb
@@ -180,8 +180,12 @@ describe PagesDomain do
expect(subject.wildcard).to eq(false)
end
- it 'defaults domain_type to project' do
- expect(subject.domain_type).to eq('project')
+ it 'defaults scope to project' do
+ expect(subject.scope).to eq('project')
+ end
+
+ it 'defaults usage to pages' do
+ expect(subject.usage).to eq('pages')
end
end
@@ -315,11 +319,11 @@ describe PagesDomain do
end
describe '#update_daemon' do
- context 'when domain_type is instance' do
- it 'does nothing' do
+ context 'when usage is serverless' do
+ it 'does not call the UpdatePagesConfigurationService' do
expect(Projects::UpdatePagesConfigurationService).not_to receive(:new)
- create(:pages_domain, domain_type: :instance)
+ create(:pages_domain, usage: :serverless)
end
end
diff --git a/spec/models/release_spec.rb b/spec/models/release_spec.rb
index 2f84b92b806..85e398c7d5f 100644
--- a/spec/models/release_spec.rb
+++ b/spec/models/release_spec.rb
@@ -53,12 +53,6 @@ RSpec.describe Release do
end
end
- describe 'callbacks' do
- it 'creates a new Evidence object on after_commit', :sidekiq_inline do
- expect { release }.to change(Evidence, :count).by(1)
- end
- end
-
describe '#assets_count' do
subject { release.assets_count }
diff --git a/spec/requests/api/releases_spec.rb b/spec/requests/api/releases_spec.rb
index ae95b54a590..e0f88caeab6 100644
--- a/spec/requests/api/releases_spec.rb
+++ b/spec/requests/api/releases_spec.rb
@@ -9,6 +9,7 @@ describe API::Releases do
let(:guest) { create(:user) }
let(:non_project_member) { create(:user) }
let(:commit) { create(:commit, project: project) }
+ let(:last_release) { project.releases.last }
before do
project.add_maintainer(maintainer)
@@ -709,6 +710,109 @@ describe API::Releases do
expect(response).to have_gitlab_http_status(:conflict)
end
end
+
+ context 'Evidence collection' do
+ let(:params) do
+ {
+ name: 'New release',
+ tag_name: 'v0.1',
+ description: 'Super nice release',
+ released_at: released_at
+ }.compact
+ end
+
+ around do |example|
+ Timecop.freeze { example.run }
+ end
+
+ subject do
+ post api("/projects/#{project.id}/releases", maintainer), params: params
+ end
+
+ context 'historical release' do
+ let(:released_at) { 3.weeks.ago }
+
+ it 'does not execute CreateEvidenceWorker' do
+ expect { subject }.not_to change(CreateEvidenceWorker.jobs, :size)
+ end
+
+ it 'does not create an Evidence object', :sidekiq_inline do
+ expect { subject }.not_to change(Evidence, :count)
+ end
+
+ it 'is a historical release' do
+ subject
+
+ expect(last_release.historical_release?).to be_truthy
+ end
+
+ it 'is not an upcoming release' do
+ subject
+
+ expect(last_release.upcoming_release?).to be_falsy
+ end
+ end
+
+ context 'immediate release' do
+ let(:released_at) { nil }
+
+ it 'sets `released_at` to the current dttm' do
+ subject
+
+ expect(last_release.updated_at).to be_like_time(Time.now)
+ end
+
+ it 'queues CreateEvidenceWorker' do
+ expect { subject }.to change(CreateEvidenceWorker.jobs, :size).by(1)
+ end
+
+ it 'creates Evidence', :sidekiq_inline do
+ expect { subject }.to change(Evidence, :count).by(1)
+ end
+
+ it 'is not a historical release' do
+ subject
+
+ expect(last_release.historical_release?).to be_falsy
+ end
+
+ it 'is not an upcoming release' do
+ subject
+
+ expect(last_release.upcoming_release?).to be_falsy
+ end
+ end
+
+ context 'upcoming release' do
+ let(:released_at) { 1.day.from_now }
+
+ it 'queues CreateEvidenceWorker' do
+ expect { subject }.to change(CreateEvidenceWorker.jobs, :size).by(1)
+ end
+
+ it 'queues CreateEvidenceWorker at the released_at timestamp' do
+ subject
+
+ expect(CreateEvidenceWorker.jobs.last['at']).to eq(released_at.to_i)
+ end
+
+ it 'creates Evidence', :sidekiq_inline do
+ expect { subject }.to change(Evidence, :count).by(1)
+ end
+
+ it 'is not a historical release' do
+ subject
+
+ expect(last_release.historical_release?).to be_falsy
+ end
+
+ it 'is an upcoming release' do
+ subject
+
+ expect(last_release.upcoming_release?).to be_truthy
+ end
+ end
+ end
end
describe 'PUT /projects/:id/releases/:tag_name' do