|
1 | 1 | require "test_helper" |
2 | | -require "ostruct" |
3 | 2 | require "minitest/mock" |
4 | 3 |
|
5 | 4 | class Tailwindcss::CommandsTest < ActiveSupport::TestCase |
@@ -227,6 +226,13 @@ def self.root |
227 | 226 | end |
228 | 227 |
|
229 | 228 | private |
| 229 | + # Define Structs outside of methods to avoid redefining them |
| 230 | + ConfigStruct = Struct.new(:engines) |
| 231 | + AssetsStruct = Struct.new(:css_compressor) |
| 232 | + TailwindStruct = Struct.new(:tailwindcss_rails, :assets) |
| 233 | + AppStruct = Struct.new(:config) |
| 234 | + EngineStruct = Struct.new(:name, :root, :css_path) |
| 235 | + |
230 | 236 | def with_rails_app |
231 | 237 | Object.send(:remove_const, :Rails) if Object.const_defined?(:Rails) |
232 | 238 | Object.const_set(:Rails, setup_mock_rails) |
@@ -257,12 +263,10 @@ def const_get(const_name) |
257 | 263 |
|
258 | 264 | mock_rails.const_set(:Engine, mock_engine) |
259 | 265 | mock_rails.root = Pathname.new(@tmp_dir) |
260 | | - mock_rails.application = OpenStruct.new( |
261 | | - config: OpenStruct.new( |
262 | | - tailwindcss_rails: OpenStruct.new(engines: []), |
263 | | - assets: OpenStruct.new(css_compressor: nil) |
264 | | - ) |
265 | | - ) |
| 266 | + tailwind_config = ConfigStruct.new([]) |
| 267 | + assets_config = AssetsStruct.new(nil) |
| 268 | + app_config = TailwindStruct.new(tailwind_config, assets_config) |
| 269 | + mock_rails.application = AppStruct.new(app_config) |
266 | 270 | mock_rails |
267 | 271 | end |
268 | 272 |
|
@@ -290,10 +294,11 @@ def within_engine_configs |
290 | 294 |
|
291 | 295 | def create_test_engines |
292 | 296 | [1, 2, 3].map do |i| |
293 | | - engine = OpenStruct.new |
294 | | - engine.name = "test_engine#{i}" |
295 | | - engine.root = File.join(@tmp_dir, "engine#{i}") |
296 | | - engine.css_path = File.join(@tmp_dir, "app/assets/tailwind/test_engine#{i}/application.css") |
| 297 | + engine = EngineStruct.new( |
| 298 | + "test_engine#{i}", |
| 299 | + File.join(@tmp_dir, "engine#{i}"), |
| 300 | + File.join(@tmp_dir, "app/assets/tailwind/test_engine#{i}/application.css") |
| 301 | + ) |
297 | 302 | FileUtils.mkdir_p(File.dirname(engine.css_path)) |
298 | 303 | FileUtils.touch(engine.css_path) |
299 | 304 | engine |
|
0 commit comments