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:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-11-19 11:27:35 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-11-19 11:27:35 +0300
commit7e9c479f7de77702622631cff2628a9c8dcbc627 (patch)
treec8f718a08e110ad7e1894510980d2155a6549197 /spec/presenters
parente852b0ae16db4052c1c567d9efa4facc81146e88 (diff)
Add latest changes from gitlab-org/gitlab@13-6-stable-eev13.6.0-rc42
Diffstat (limited to 'spec/presenters')
-rw-r--r--spec/presenters/issue_presenter_spec.rb16
-rw-r--r--spec/presenters/packages/detail/package_presenter_spec.rb34
-rw-r--r--spec/presenters/release_presenter_spec.rb73
3 files changed, 110 insertions, 13 deletions
diff --git a/spec/presenters/issue_presenter_spec.rb b/spec/presenters/issue_presenter_spec.rb
index f08cd0f2026..55a6b50ffa7 100644
--- a/spec/presenters/issue_presenter_spec.rb
+++ b/spec/presenters/issue_presenter_spec.rb
@@ -40,4 +40,20 @@ RSpec.describe IssuePresenter do
expect(presenter.issue_path).to eq("/#{group.name}/#{project.name}/-/issues/#{issue.iid}")
end
end
+
+ describe '#project_emails_disabled?' do
+ subject { presenter.project_emails_disabled? }
+
+ it 'returns false when emails notifications is enabled for project' do
+ is_expected.to be(false)
+ end
+
+ context 'when emails notifications is disabled for project' do
+ before do
+ allow(project).to receive(:emails_disabled?).and_return(true)
+ end
+
+ it { is_expected.to be(true) }
+ end
+ end
end
diff --git a/spec/presenters/packages/detail/package_presenter_spec.rb b/spec/presenters/packages/detail/package_presenter_spec.rb
index 8ece27e9b5f..e38bbbe600c 100644
--- a/spec/presenters/packages/detail/package_presenter_spec.rb
+++ b/spec/presenters/packages/detail/package_presenter_spec.rb
@@ -22,7 +22,7 @@ RSpec.describe ::Packages::Detail::PackagePresenter do
end
let(:pipeline_info) do
- pipeline = package.build_info.pipeline
+ pipeline = package.original_build_info.pipeline
{
created_at: pipeline.created_at,
id: pipeline.id,
@@ -56,16 +56,44 @@ RSpec.describe ::Packages::Detail::PackagePresenter do
}
end
- context 'detail_view' do
+ describe '#detail_view' do
context 'with build_info' do
let_it_be(:package) { create(:npm_package, :with_build, project: project) }
- let(:expected_package_details) { super().merge(pipeline: pipeline_info) }
+
+ let(:expected_package_details) do
+ super().merge(
+ pipeline: pipeline_info,
+ pipelines: [pipeline_info]
+ )
+ end
it 'returns details with pipeline' do
expect(presenter.detail_view).to match expected_package_details
end
end
+ context 'with multiple build_infos' do
+ let_it_be(:package) { create(:npm_package, :with_build, project: project) }
+ let_it_be(:build_info2) { create(:package_build_info, :with_pipeline, package: package) }
+
+ it 'returns details with two pipelines' do
+ expect(presenter.detail_view[:pipelines].size).to eq(2)
+ end
+ end
+
+ context 'with package_file_build_infos' do
+ let_it_be(:package) { create(:npm_package, :with_build, project: project) }
+
+ let_it_be(:package_file_build_info) do
+ create(:package_file_build_info, package_file: package.package_files.first,
+ pipeline: package.pipelines.first)
+ end
+
+ it 'returns details with package_file pipeline' do
+ expect(presenter.detail_view[:package_files].first[:pipelines].size).to eq(1)
+ end
+ end
+
context 'without build info' do
let_it_be(:package) { create(:npm_package, project: project) }
diff --git a/spec/presenters/release_presenter_spec.rb b/spec/presenters/release_presenter_spec.rb
index eb4d755205b..b518584569b 100644
--- a/spec/presenters/release_presenter_spec.rb
+++ b/spec/presenters/release_presenter_spec.rb
@@ -12,6 +12,11 @@ RSpec.describe ReleasePresenter do
let(:release) { create(:release, project: project) }
let(:presenter) { described_class.new(release, current_user: user) }
+ let(:base_url_params) { { scope: 'all', release_tag: release.tag } }
+ let(:opened_url_params) { { state: 'opened', **base_url_params } }
+ let(:merged_url_params) { { state: 'merged', **base_url_params } }
+ let(:closed_url_params) { { state: 'closed', **base_url_params } }
+
before do
project.add_developer(developer)
project.add_guest(guest)
@@ -55,15 +60,63 @@ RSpec.describe ReleasePresenter do
subject { presenter.self_url }
it 'returns its own url' do
- is_expected.to match /#{project_release_url(project, release)}/
+ is_expected.to eq(project_release_url(project, release))
+ end
+ end
+
+ describe '#opened_merge_requests_url' do
+ subject { presenter.opened_merge_requests_url }
+
+ it 'returns merge requests url with state=open' do
+ is_expected.to eq(project_merge_requests_url(project, opened_url_params))
+ end
+
+ context 'when release_mr_issue_urls feature flag is disabled' do
+ before do
+ stub_feature_flags(release_mr_issue_urls: false)
+ end
+
+ it { is_expected.to be_nil }
+ end
+ end
+
+ describe '#merged_merge_requests_url' do
+ subject { presenter.merged_merge_requests_url }
+
+ it 'returns merge requests url with state=merged' do
+ is_expected.to eq(project_merge_requests_url(project, merged_url_params))
+ end
+
+ context 'when release_mr_issue_urls feature flag is disabled' do
+ before do
+ stub_feature_flags(release_mr_issue_urls: false)
+ end
+
+ it { is_expected.to be_nil }
+ end
+ end
+
+ describe '#closed_merge_requests_url' do
+ subject { presenter.closed_merge_requests_url }
+
+ it 'returns merge requests url with state=closed' do
+ is_expected.to eq(project_merge_requests_url(project, closed_url_params))
+ end
+
+ context 'when release_mr_issue_urls feature flag is disabled' do
+ before do
+ stub_feature_flags(release_mr_issue_urls: false)
+ end
+
+ it { is_expected.to be_nil }
end
end
- describe '#merge_requests_url' do
- subject { presenter.merge_requests_url }
+ describe '#opened_issues_url' do
+ subject { presenter.opened_issues_url }
- it 'returns merge requests url' do
- is_expected.to match /#{project_merge_requests_url(project)}/
+ it 'returns issues url with state=open' do
+ is_expected.to eq(project_issues_url(project, opened_url_params))
end
context 'when release_mr_issue_urls feature flag is disabled' do
@@ -75,11 +128,11 @@ RSpec.describe ReleasePresenter do
end
end
- describe '#issues_url' do
- subject { presenter.issues_url }
+ describe '#closed_issues_url' do
+ subject { presenter.closed_issues_url }
- it 'returns merge requests url' do
- is_expected.to match /#{project_issues_url(project)}/
+ it 'returns issues url with state=closed' do
+ is_expected.to eq(project_issues_url(project, closed_url_params))
end
context 'when release_mr_issue_urls feature flag is disabled' do
@@ -95,7 +148,7 @@ RSpec.describe ReleasePresenter do
subject { presenter.edit_url }
it 'returns release edit url' do
- is_expected.to match /#{edit_project_release_url(project, release)}/
+ is_expected.to eq(edit_project_release_url(project, release))
end
context 'when a user is not allowed to update a release' do