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
This commit is contained in:
parent
9677b53872
commit
239743345a
2 changed files with 25 additions and 1 deletions
|
@ -47,7 +47,7 @@ module Projects
|
|||
end
|
||||
|
||||
def pages_update_file
|
||||
File.join(Settings.pages.path, '.update')
|
||||
File.join(::Settings.pages.path, '.update')
|
||||
end
|
||||
|
||||
def update_file(file, data)
|
||||
|
|
|
@ -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
|
Loading…
Reference in a new issue