Stub DetectRepositoryLanguagesWorker for all tests

It performs an expensive operation, but isn't required in
most of tests
This commit is contained in:
Igor 2019-09-03 06:19:21 +00:00 committed by Lin Jen-Shin
parent ab27d66a7f
commit 8dcddb9886
4 changed files with 13 additions and 1 deletions

View File

@ -456,6 +456,10 @@ class Repository
def after_import
expire_content_cache
# This call is stubbed in tests due to being an expensive operation
# It can be reenabled for specific tests via:
#
# allow(DetectRepositoryLanguagesWorker).to receive(:perform_async).and_call_original
DetectRepositoryLanguagesWorker.perform_async(project.id)
end

View File

@ -5,6 +5,8 @@ shared_examples 'languages and percentages JSON response' do
let(:expected_languages) { project.repository.languages.map { |language| language.values_at(:label, :value)}.to_h }
before do
allow(DetectRepositoryLanguagesWorker).to receive(:perform_async).and_call_original
allow(project.repository).to receive(:languages).and_return(
[{ value: 66.69, label: "Ruby", color: "#701516", highlight: "#701516" },
{ value: 22.98, label: "JavaScript", color: "#f1e05a", highlight: "#f1e05a" },

View File

@ -148,6 +148,12 @@ RSpec.configure do |config|
.with(:force_autodevops_on_by_default, anything)
.and_return(false)
# Stub this call due to being an expensive operation
# It can be reenabled for specific tests via:
#
# allow(DetectRepositoryLanguagesWorker).to receive(:perform_async).and_call_original
allow(DetectRepositoryLanguagesWorker).to receive(:perform_async).and_return(true)
Gitlab::ThreadMemoryCache.cache_backend.clear
end

View File

@ -45,7 +45,7 @@ module ProjectForksHelper
# not reset the @exists variable of this forked_project.repository
# so we have to explicitly call this method to clear the @exists variable.
# of the instance we're returning here.
forked_project.repository.after_import
forked_project.repository.expire_content_cache
end
forked_project