summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorOswaldo Ferreira <oswaldo@gitlab.com>2018-02-20 11:56:36 -0300
committerOswaldo Ferreira <oswaldo@gitlab.com>2018-02-20 13:03:06 -0300
commite0e3f1c2750b6db9343d530d00b096bcb1a57677 (patch)
tree1ee744d81f999a06250c11c41c363cf29b5ce52e /spec
parentccc858a5dfdb446d9648db2449d3ee3ef7a2be59 (diff)
downloadgitlab-ce-e0e3f1c2750b6db9343d530d00b096bcb1a57677.tar.gz
Move button list logic to project presenter
Diffstat (limited to 'spec')
-rw-r--r--spec/features/projects/show_project_spec.rb12
-rw-r--r--spec/helpers/projects_helper_spec.rb26
-rw-r--r--spec/presenters/project_presenter_spec.rb31
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