diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-01 03:08:41 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-02-01 03:08:41 +0300 |
commit | 72817fd7c07d1b812623f8d5e27fc7bcecb4eed5 (patch) | |
tree | 2e81b28a062212375bf17d1da0ff836d6b021469 /spec | |
parent | 9db503ef9888c984b287af44d009d884e835ce04 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
-rw-r--r-- | spec/factories/pages_domains.rb | 3 | ||||
-rw-r--r-- | spec/models/pages_domain_spec.rb | 14 | ||||
-rw-r--r-- | spec/models/release_spec.rb | 6 | ||||
-rw-r--r-- | spec/requests/api/releases_spec.rb | 104 |
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 |