diff options
author | Oswaldo Ferreira <oswaldo@gitlab.com> | 2018-02-20 11:56:36 -0300 |
---|---|---|
committer | Oswaldo Ferreira <oswaldo@gitlab.com> | 2018-02-20 13:03:06 -0300 |
commit | e0e3f1c2750b6db9343d530d00b096bcb1a57677 (patch) | |
tree | 1ee744d81f999a06250c11c41c363cf29b5ce52e /spec | |
parent | ccc858a5dfdb446d9648db2449d3ee3ef7a2be59 (diff) | |
download | gitlab-ce-e0e3f1c2750b6db9343d530d00b096bcb1a57677.tar.gz |
Move button list logic to project presenter
Diffstat (limited to 'spec')
-rw-r--r-- | spec/features/projects/show_project_spec.rb | 12 | ||||
-rw-r--r-- | spec/helpers/projects_helper_spec.rb | 26 | ||||
-rw-r--r-- | spec/presenters/project_presenter_spec.rb | 31 |
3 files changed, 37 insertions, 32 deletions
diff --git a/spec/features/projects/show_project_spec.rb b/spec/features/projects/show_project_spec.rb index f5f2bbb49e0..0bd13a17dc9 100644 --- a/spec/features/projects/show_project_spec.rb +++ b/spec/features/projects/show_project_spec.rb @@ -1,8 +1,6 @@ require 'spec_helper' describe 'Project show page', :feature do - include ProjectsHelper - context 'when project pending delete' do let(:project) { create(:project, :empty_repo, pending_delete: true) } @@ -29,6 +27,7 @@ describe 'Project show page', :feature do describe 'empty project' do let(:project) { create(:project, :public, :empty_repo) } + let(:presenter) { project.present(current_user: user) } describe 'as a normal user' do before do @@ -71,13 +70,13 @@ describe 'Project show page', :feature do it '"Add Readme" button linked to new file populated for a readme' do page.within('.project-stats') do - expect(page).to have_link('Add Readme', href: add_special_file_path(project, file_name: 'README.md')) + expect(page).to have_link('Add Readme', href: presenter.add_readme_path) end end it '"Add License" button linked to new file populated for a license' do page.within('.project-stats') do - expect(page).to have_link('Add License', href: add_special_file_path(project, file_name: 'LICENSE')) + expect(page).to have_link('Add License', href: presenter.add_license_path) end end @@ -121,6 +120,7 @@ describe 'Project show page', :feature do describe 'populated project' do let(:project) { create(:project, :public, :repository) } + let(:presenter) { project.present(current_user: user) } describe 'as a normal user' do before do @@ -192,7 +192,7 @@ describe 'Project show page', :feature do expect(project.repository.gitlab_ci_yml).to be_nil page.within('.project-stats') do - expect(page).to have_link('Set up CI/CD', href: add_special_file_path(project, file_name: '.gitlab-ci.yml')) + expect(page).to have_link('Set up CI/CD', href: presenter.add_ci_yml_path) end end @@ -327,7 +327,7 @@ describe 'Project show page', :feature do visit project_path(project) page.within('.project-stats') do - expect(page).to have_link('Set up Koding', href: add_koding_stack_path(project)) + expect(page).to have_link('Set up Koding', href: presenter.add_koding_stack_path) end end end diff --git a/spec/helpers/projects_helper_spec.rb b/spec/helpers/projects_helper_spec.rb index c0251bf7dc0..ffe4266b51a 100644 --- a/spec/helpers/projects_helper_spec.rb +++ b/spec/helpers/projects_helper_spec.rb @@ -264,32 +264,6 @@ describe ProjectsHelper do end end - describe '#license_short_name' do - let(:project) { create(:project) } - - context 'when project.repository has a license_key' do - it 'returns the nickname of the license if present' do - allow(project.repository).to receive(:license_key).and_return('agpl-3.0') - - expect(helper.license_short_name(project)).to eq('GNU AGPLv3') - end - - it 'returns the name of the license if nickname is not present' do - allow(project.repository).to receive(:license_key).and_return('mit') - - expect(helper.license_short_name(project)).to eq('MIT License') - end - end - - context 'when project.repository has no license_key but a license_blob' do - it 'returns LICENSE' do - allow(project.repository).to receive(:license_key).and_return(nil) - - expect(helper.license_short_name(project)).to eq('LICENSE') - end - end - end - describe '#sanitized_import_error' do let(:project) { create(:project, :repository) } diff --git a/spec/presenters/project_presenter_spec.rb b/spec/presenters/project_presenter_spec.rb new file mode 100644 index 00000000000..49822693f3e --- /dev/null +++ b/spec/presenters/project_presenter_spec.rb @@ -0,0 +1,31 @@ +require 'spec_helper' + +describe ProjectPresenter do + let(:user) { create(:user) } + let(:project) { create(:project) } + let(:presenter) { described_class.new(project, current_user: user) } + + describe '#license_short_name' do + context 'when project.repository has a license_key' do + it 'returns the nickname of the license if present' do + allow(project.repository).to receive(:license_key).and_return('agpl-3.0') + + expect(presenter.license_short_name).to eq('GNU AGPLv3') + end + + it 'returns the name of the license if nickname is not present' do + allow(project.repository).to receive(:license_key).and_return('mit') + + expect(presenter.license_short_name).to eq('MIT License') + end + end + + context 'when project.repository has no license_key but a license_blob' do + it 'returns LICENSE' do + allow(project.repository).to receive(:license_key).and_return(nil) + + expect(presenter.license_short_name).to eq('LICENSE') + end + end + end +end |