Skip to content

Commit 43a14d7

Browse files
committed
test(ServerRendering) test ManifestContainer
1 parent a53538a commit 43a14d7

File tree

4 files changed

+39
-6
lines changed

4 files changed

+39
-6
lines changed

lib/react/server_rendering/manifest_container.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ def initialize
1010
end
1111

1212
def find_asset(logical_path)
13-
asset_path = manifest.assets[logical_path] || raise("No compiled asset for #{logical_path}, was it precompiled?")
13+
asset_path = @manifest.assets[logical_path] || raise("No compiled asset for #{logical_path}, was it precompiled?")
1414
asset_full_path = ::Rails.root.join("public", @manifest.directory, asset_path)
1515
File.read(asset_full_path)
1616
end
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
require "test_helper"
2+
3+
class ManifestContainerTest < ActiveSupport::TestCase
4+
def setup
5+
precompile_assets
6+
7+
# Make a new manifest since assets weren't compiled before
8+
config = Rails.application.config
9+
path = File.join(config.paths['public'].first, config.assets.prefix)
10+
new_manifest = Sprockets::Manifest.new(Rails.application.assets, path, config.assets.manifest)
11+
Rails.application.assets_manifest = new_manifest
12+
13+
@manifest_container = React::ServerRendering::ManifestContainer.new
14+
end
15+
16+
def teardown
17+
clear_precompiled_assets
18+
end
19+
20+
def test_find_asset_gets_asset_contents
21+
application_js_content = @manifest_container.find_asset("application.js")
22+
assert(application_js_content.length > 50000, "It's the compiled file")
23+
end
24+
end

test/react_test.rb

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,9 @@ class ReactTest < ActionDispatch::IntegrationTest
2626

2727
test 'precompiling assets works' do
2828
begin
29-
ENV['RAILS_GROUPS'] = 'assets' # required for Rails 3.2
30-
Dummy::Application.load_tasks
31-
Rake::Task['assets:precompile'].invoke
32-
FileUtils.rm_r(File.expand_path("../dummy/public/assets", __FILE__))
29+
precompile_assets
3330
ensure
34-
ENV.delete('RAILS_GROUPS')
31+
clear_precompiled_assets
3532
end
3633
end
3734

test/test_helper.rb

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,18 @@ def manually_expire_asset(asset_name)
3939
def asset.fresh?(env); false; end
4040
end
4141

42+
def precompile_assets
43+
ENV['RAILS_GROUPS'] = 'assets' # required for Rails 3.2
44+
Dummy::Application.load_tasks
45+
Rake::Task['assets:precompile'].reenable
46+
Rake::Task['assets:precompile'].invoke
47+
end
48+
49+
def clear_precompiled_assets
50+
FileUtils.rm_r(File.expand_path("../dummy/public/assets", __FILE__))
51+
ENV.delete('RAILS_GROUPS')
52+
end
53+
4254
# Load support files
4355
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
4456

0 commit comments

Comments
 (0)