Skip to content

Commit 27a682c

Browse files
mshibuyaclaude
andcommitted
Cover asset_source normalization in the install generator spec
--asset=webpack -> :external (with the entrypoint), --asset=sprockets writes the source with no entrypoint, --asset=importmap falls back to a supported source instead of being written verbatim. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1 parent cf0434e commit 27a682c

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

spec/rails_admin/install_generator_spec.rb

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,4 +68,30 @@
6868
end
6969
expect(File.read(File.join(destination_root, 'config/initializers/rails_admin.rb'))).to include 'config.asset_source ='
7070
end
71+
72+
describe 'asset_source normalization' do
73+
def initializer
74+
File.read(File.join(destination_root, 'config/initializers/rails_admin.rb'))
75+
end
76+
77+
it 'treats --asset=webpack as :external' do
78+
Dir.chdir(destination_root) { run_generator %w[admin --asset=webpack --force] }
79+
expect(initializer).to include 'config.asset_source = :external'
80+
expect(destination_root).to(have_structure do
81+
file('app/javascript/rails_admin.js') { contains 'rails_admin/src/rails_admin/base' }
82+
end)
83+
end
84+
85+
it 'writes :sprockets without generating an entrypoint' do
86+
Dir.chdir(destination_root) { run_generator %w[admin --asset=sprockets --force] }
87+
expect(initializer).to include 'config.asset_source = :sprockets'
88+
expect(File.exist?(File.join(destination_root, 'app/javascript/rails_admin.js'))).to be false
89+
end
90+
91+
it 'falls back to a supported source for the removed --asset=importmap' do
92+
Dir.chdir(destination_root) { run_generator %w[admin --asset=importmap --force] }
93+
expect(initializer).to match(/config\.asset_source = :(propshaft|sprockets|external)\b/)
94+
expect(initializer).not_to include ':importmap'
95+
end
96+
end
7197
end

0 commit comments

Comments
 (0)