Files
prism/test/test_assets_manifest.rb
T

44 lines
1.5 KiB
Ruby

require 'minitest/autorun'
require 'prism'
require 'tmpdir'
class AssetsManifestTest < Minitest::Test
def test_lookup_returns_the_fingerprinted_path
manifest = Prism::Assets::Manifest.new('application.css' => 'application-deadbeef.css')
assert_equal 'application-deadbeef.css', manifest.lookup('application.css')
end
def test_lookup_accepts_symbol_or_string
manifest = Prism::Assets::Manifest.new('application.css' => 'application-deadbeef.css')
assert_equal 'application-deadbeef.css', manifest.lookup(:'application.css')
end
def test_lookup_raises_on_unknown_asset
manifest = Prism::Assets::Manifest.new
error = assert_raises(Prism::Assets::Manifest::AssetNotFound) { manifest.lookup('missing.css') }
assert_match(/missing\.css/, error.message)
end
def test_key_predicate
manifest = Prism::Assets::Manifest.new('a.js' => 'a-11111111.js')
assert manifest.key?('a.js')
refute manifest.key?('b.js')
end
def test_save_and_load_round_trip
Dir.mktmpdir do |dir|
path = File.join(dir, 'manifest.json')
original = Prism::Assets::Manifest.new('a.css' => 'a-cafef00d.css', 'b.js' => 'b-0ff1ce00.js')
original.save(path)
loaded = Prism::Assets::Manifest.load(path)
assert_equal original.to_h, loaded.to_h
end
end
def test_load_of_missing_file_returns_an_empty_manifest
manifest = Prism::Assets::Manifest.load('/no/such/manifest.json')
refute manifest.key?('anything.css')
end
end