DEV: Fix test incorrectly removing stylesheet cache of other processes (#25103)

Why this change?

The `can survive cache miss` test in `spec/requests/stylesheets_controller_spec.rb`
was failing because the file was not found on disk for the cache to be
regenerated. This is because a test in
`spec/lib/stylesheet/manager_spec.rb` was removing the entire
`tmp/stylesheet-cache` directory which is incorrect because the folder
in the test environment further segretates the stylesheet caches based
on the process of the test.

What does this change do?

1. Introduce `Stylesheet::Manager.rm_cache_folder` method for the test
   environment to properly clean up the cache folder.

2. Make `Stylesheet::Manager::CACHE_PATH` a private constant since the
   cache path should be obtained from the `Stylesheet::Manager.cache_fullpath` method.
This commit is contained in:
Alan Guo Xiang Tan
2024-01-03 13:15:35 +08:00
committed by GitHub
parent 1a423f3c2d
commit 5530cb574b
3 changed files with 13 additions and 5 deletions

View File

@@ -9,7 +9,9 @@ end
class Stylesheet::Manager
BASE_COMPILER_VERSION = 1
CACHE_PATH ||= "tmp/stylesheet-cache"
CACHE_PATH = "tmp/stylesheet-cache"
private_constant :CACHE_PATH
MANIFEST_DIR ||= "#{Rails.root}/tmp/cache/assets/#{Rails.env}"
THEME_REGEX ||= /_theme\z/
COLOR_SCHEME_STYLESHEET ||= "color_definitions"
@@ -191,6 +193,12 @@ class Stylesheet::Manager
File.join(path, "test_#{ENV["TEST_ENV_NUMBER"].presence || "0"}")
end
if Rails.env.test?
def self.rm_cache_folder
FileUtils.rm_rf(cache_fullpath)
end
end
attr_reader :theme_ids
def initialize(theme_id: nil)