diff options
author | Stan Hu <stanhu@gmail.com> | 2017-01-26 17:58:42 -0800 |
---|---|---|
committer | James Edwards-Jones <jedwardsjones@gitlab.com> | 2017-02-01 23:09:12 +0000 |
commit | 239743345a23c53b2c41509cefb288450d3bb563 (patch) | |
tree | 92d8869e3d783a7202e7599c74caed404e4ccb5e /spec/services/projects | |
parent | 9677b5387201b2530b5cd18fe2b0bc897eae581e (diff) | |
download | gitlab-ce-239743345a23c53b2c41509cefb288450d3bb563.tar.gz |
Fix GitLab Pages not refreshing upon new content
Due to autoloading and Ruby scoping, the .update file was never being
updated due to this error:
```
NoMethodError: undefined method `pages' for Projects::Settings:Module
from /opt/gitlab/embedded/service/gitlab-rails/app/services/projects/update_pages_configuration_service.rb:50:in `pages_update_file'
from /opt/gitlab/embedded/service/gitlab-rails/lib/gitlab/metrics/instrumentation.rb:157:in `pages_update_file'
from (irb):6
from /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/railties-4.2.7.1/lib/rails/commands/console.rb:110:in `start'
from /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/railties-4.2.7.1/lib/rails/commands/console.rb:9:in `start'
from /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/railties-4.2.7.1/lib/rails/commands/commands_tasks.rb:68:in `console'
from /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/railties-4.2.7.1/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
from /opt/gitlab/embedded/lib/ruby/gems/2.3.0/gems/railties-4.2.7.1/lib/rails/commands.rb:17:in `<top (required)>'
from bin/rails:9:in `require'
```
This error was caught and discarded quietly. This fix exercises this code and fixes the scope problem.
Closes gitlab-com/infrastructure#1058
Diffstat (limited to 'spec/services/projects')
-rw-r--r-- | spec/services/projects/update_pages_configuration_service_spec.rb | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/spec/services/projects/update_pages_configuration_service_spec.rb b/spec/services/projects/update_pages_configuration_service_spec.rb new file mode 100644 index 00000000000..8b329bc21c3 --- /dev/null +++ b/spec/services/projects/update_pages_configuration_service_spec.rb @@ -0,0 +1,24 @@ +require 'spec_helper' + +describe Projects::UpdatePagesConfigurationService, services: true do + let(:project) { create(:empty_project) } + subject { described_class.new(project) } + + describe "#update" do + let(:file) { Tempfile.new('pages-test') } + + after do + file.close + file.unlink + end + + it 'updates the .update file' do + # Access this reference to ensure scoping works + Projects::Settings # rubocop:disable Lint/Void + expect(subject).to receive(:pages_config_file).and_return(file.path) + expect(subject).to receive(:reload_daemon).and_call_original + + expect(subject.execute).to eq({ status: :success }) + end + end +end |