diff options
author | Kamil Trzcinski <ayufan@ayufan.eu> | 2016-02-19 20:12:56 +0100 |
---|---|---|
committer | James Edwards-Jones <jedwardsjones@gitlab.com> | 2017-01-31 22:55:28 +0000 |
commit | 06d96a9a624d31294bdf16a4662aaa7121274061 (patch) | |
tree | dc6c17d67fa7894b632ac51d48f94dbaf6732e12 | |
parent | 8a861c87bf8ba71d5c1a479c8118d9ed6aaf8e88 (diff) | |
download | gitlab-ce-06d96a9a624d31294bdf16a4662aaa7121274061.tar.gz |
Introduce pages_deployed? to Project model
-rw-r--r-- | app/models/project.rb | 6 | ||||
-rw-r--r-- | app/views/projects/pages/_access.html.haml | 2 | ||||
-rw-r--r-- | app/views/projects/pages/_destroy.haml | 2 | ||||
-rw-r--r-- | app/views/projects/pages/_use.html.haml | 2 | ||||
-rw-r--r-- | spec/models/project_spec.rb | 23 | ||||
-rw-r--r-- | spec/services/projects/update_pages_service_spec.rb | 12 |
6 files changed, 30 insertions, 17 deletions
diff --git a/app/models/project.rb b/app/models/project.rb index 73a642e1580..a1034e80b6c 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -1164,9 +1164,11 @@ class Project < ActiveRecord::Base ensure_runners_token! end - def pages_url - return unless Dir.exist?(public_pages_path) + def pages_deployed? + Dir.exist?(public_pages_path) + end + def pages_url # The hostname always needs to be in downcased # All web servers convert hostname to lowercase host = "#{namespace.path}.#{Settings.pages.host}".downcase diff --git a/app/views/projects/pages/_access.html.haml b/app/views/projects/pages/_access.html.haml index 9740877b214..82e20eeebb3 100644 --- a/app/views/projects/pages/_access.html.haml +++ b/app/views/projects/pages/_access.html.haml @@ -1,4 +1,4 @@ -- if @project.pages_url +- if @project.pages_deployed? .panel.panel-default .panel-heading Access pages diff --git a/app/views/projects/pages/_destroy.haml b/app/views/projects/pages/_destroy.haml index 896a86712a1..6a7b6baf767 100644 --- a/app/views/projects/pages/_destroy.haml +++ b/app/views/projects/pages/_destroy.haml @@ -1,4 +1,4 @@ -- if can?(current_user, :remove_pages, @project) && @project.pages_url +- if can?(current_user, :remove_pages, @project) && @project.pages_deployed? .panel.panel-default.panel.panel-danger .panel-heading Remove pages .errors-holder diff --git a/app/views/projects/pages/_use.html.haml b/app/views/projects/pages/_use.html.haml index ee38f45d44d..9db46f0b1fc 100644 --- a/app/views/projects/pages/_use.html.haml +++ b/app/views/projects/pages/_use.html.haml @@ -1,4 +1,4 @@ -- unless @project.pages_url +- unless @project.pages_deployed? .panel.panel-info .panel-heading Configure pages diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index bb4d82a4df1..558674b5b39 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -1068,6 +1068,23 @@ describe Project, models: true do end end + describe '#pages_deployed?' do + let(:project) { create :empty_project } + + subject { project.pages_deployed? } + + context 'if public folder does exist' do + before { FileUtils.mkdir_p(project.public_pages_path) } + after { FileUtils.rmdir(project.public_pages_path) } + + it { is_expected.to be_truthy } + end + + context "if public folder doesn't exist" do + it { is_expected.to be_falsey } + end + end + describe '.search' do let(:project) { create(:empty_project, description: 'kitten mittens') } @@ -1854,16 +1871,10 @@ describe Project, models: true do subject { project.pages_url } before do - FileUtils.mkdir_p(project.public_pages_path) - allow(Settings.pages).to receive(:host).and_return(domain) allow(Gitlab.config.pages).to receive(:url).and_return('http://example.com') end - after do - FileUtils.rmdir(project.public_pages_path) - end - context 'group page' do let(:group_name) { 'Group' } let(:project_name) { 'group.example.com' } diff --git a/spec/services/projects/update_pages_service_spec.rb b/spec/services/projects/update_pages_service_spec.rb index 68e66866340..51da582c497 100644 --- a/spec/services/projects/update_pages_service_spec.rb +++ b/spec/services/projects/update_pages_service_spec.rb @@ -27,9 +27,9 @@ describe Projects::UpdatePagesService do end it 'succeeds' do - expect(project.pages_url).to be_nil + expect(project.pages_deployed?).to be_falsey expect(execute).to eq(:success) - expect(project.pages_url).to_not be_nil + expect(project.pages_deployed?).to be_truthy end it 'limits pages size' do @@ -39,11 +39,11 @@ describe Projects::UpdatePagesService do it 'removes pages after destroy' do expect(PagesWorker).to receive(:perform_in) - expect(project.pages_url).to be_nil + expect(project.pages_deployed?).to be_falsey expect(execute).to eq(:success) - expect(project.pages_url).to_not be_nil + expect(project.pages_deployed?).to be_truthy project.destroy - expect(Dir.exist?(project.public_pages_path)).to be_falsey + expect(project.pages_deployed?).to be_falsey end it 'fails if sha on branch is not latest' do @@ -61,7 +61,7 @@ describe Projects::UpdatePagesService do it 'fails to remove project pages when no pages is deployed' do expect(PagesWorker).to_not receive(:perform_in) - expect(project.pages_url).to be_nil + expect(project.pages_deployed?).to be_falsey project.destroy end |