Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Replace OpenStruct with Struct
  • Loading branch information
bopm committed Jun 2, 2025
commit a9c9841095f9c09410aca816ac6adada9b372413
2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PATH
remote: .
specs:
tailwindcss-rails (4.2.2)
tailwindcss-rails (4.2.3)
railties (>= 7.0.0)
tailwindcss-ruby (~> 4.0)

Expand Down
27 changes: 16 additions & 11 deletions test/lib/tailwindcss/commands_test.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
require "test_helper"
require "ostruct"
require "minitest/mock"

class Tailwindcss::CommandsTest < ActiveSupport::TestCase
Expand Down Expand Up @@ -227,6 +226,13 @@ def self.root
end

private
# Define Structs outside of methods to avoid redefining them
ConfigStruct = Struct.new(:engines)
AssetsStruct = Struct.new(:css_compressor)
TailwindStruct = Struct.new(:tailwindcss_rails, :assets)
AppStruct = Struct.new(:config)
EngineStruct = Struct.new(:name, :root, :css_path)

def with_rails_app
Object.send(:remove_const, :Rails) if Object.const_defined?(:Rails)
Object.const_set(:Rails, setup_mock_rails)
Expand Down Expand Up @@ -257,12 +263,10 @@ def const_get(const_name)

mock_rails.const_set(:Engine, mock_engine)
mock_rails.root = Pathname.new(@tmp_dir)
mock_rails.application = OpenStruct.new(
config: OpenStruct.new(
tailwindcss_rails: OpenStruct.new(engines: []),
assets: OpenStruct.new(css_compressor: nil)
)
)
tailwind_config = ConfigStruct.new([])
assets_config = AssetsStruct.new(nil)
app_config = TailwindStruct.new(tailwind_config, assets_config)
mock_rails.application = AppStruct.new(app_config)
mock_rails
end

Expand Down Expand Up @@ -290,10 +294,11 @@ def within_engine_configs

def create_test_engines
[1, 2, 3].map do |i|
engine = OpenStruct.new
engine.name = "test_engine#{i}"
engine.root = File.join(@tmp_dir, "engine#{i}")
engine.css_path = File.join(@tmp_dir, "app/assets/tailwind/test_engine#{i}/application.css")
engine = EngineStruct.new(
"test_engine#{i}",
File.join(@tmp_dir, "engine#{i}"),
File.join(@tmp_dir, "app/assets/tailwind/test_engine#{i}/application.css")
)
FileUtils.mkdir_p(File.dirname(engine.css_path))
FileUtils.touch(engine.css_path)
engine
Expand Down
Loading