From abc82a2508d102bb30789bce4a8b4ba56011683a Mon Sep 17 00:00:00 2001 From: Toon Claes Date: Thu, 18 May 2017 21:06:38 +0200 Subject: [PATCH] Fix ProjectCacheWorker for plain READMEs The ProjectCacheWorker refreshes cache periodically, but it runs outside Rails context. So include the ActionView helpers so the `content_tag` method is available. --- app/helpers/markup_helper.rb | 3 +++ spec/workers/project_cache_worker_spec.rb | 12 ++++++++++++ 2 files changed, 15 insertions(+) diff --git a/app/helpers/markup_helper.rb b/app/helpers/markup_helper.rb index 0009cad86c4..941cfce8370 100644 --- a/app/helpers/markup_helper.rb +++ b/app/helpers/markup_helper.rb @@ -1,6 +1,9 @@ require 'nokogiri' module MarkupHelper + include ActionView::Helpers::TagHelper + include ActionView::Context + def plain?(filename) Gitlab::MarkupHelper.plain?(filename) end diff --git a/spec/workers/project_cache_worker_spec.rb b/spec/workers/project_cache_worker_spec.rb index c23ffdf99c0..a4ba5f7c943 100644 --- a/spec/workers/project_cache_worker_spec.rb +++ b/spec/workers/project_cache_worker_spec.rb @@ -45,6 +45,18 @@ describe ProjectCacheWorker do worker.perform(project.id, %w(readme)) end + + context 'with plain readme' do + it 'refreshes the method caches' do + allow(MarkupHelper).to receive(:gitlab_markdown?).and_return(false) + allow(MarkupHelper).to receive(:plain?).and_return(true) + + expect_any_instance_of(Repository).to receive(:refresh_method_caches). + with(%i(readme)). + and_call_original + worker.perform(project.id, %w(readme)) + end + end end end