diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-11-19 08:27:35 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-11-19 08:27:35 +0000 |
commit | 7e9c479f7de77702622631cff2628a9c8dcbc627 (patch) | |
tree | c8f718a08e110ad7e1894510980d2155a6549197 /spec/presenters | |
parent | e852b0ae16db4052c1c567d9efa4facc81146e88 (diff) | |
download | gitlab-ce-7e9c479f7de77702622631cff2628a9c8dcbc627.tar.gz |
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.rb | 16 | ||||
-rw-r--r-- | spec/presenters/packages/detail/package_presenter_spec.rb | 34 | ||||
-rw-r--r-- | spec/presenters/release_presenter_spec.rb | 73 |
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 |