diff --git a/fixtures/images/symfony-logo.svg b/fixtures/images/symfony-logo.svg new file mode 100644 index 00000000..f10824ae --- /dev/null +++ b/fixtures/images/symfony-logo.svg @@ -0,0 +1 @@ + diff --git a/fixtures/js/import_svg.js b/fixtures/js/import_svg.js new file mode 100644 index 00000000..30958c4c --- /dev/null +++ b/fixtures/js/import_svg.js @@ -0,0 +1 @@ +import '../images/symfony-logo.svg'; diff --git a/test/functional.js b/test/functional.js index 3d5dc6ce..c2b491ac 100644 --- a/test/functional.js +++ b/test/functional.js @@ -81,6 +81,20 @@ describe('Functional tests using webpack', function() { }); describe('Basic scenarios.', () => { + it('Generates a correct manifest when images are imported from a js file', (done) => { + const config = createWebpackConfig('web/build', 'production'); + config.addEntry('svg', './js/import_svg'); + config.setPublicPath('/build'); + + testSetup.runWebpack(config, (webpackAssert) => { + webpackAssert.assertManifestPath( + 'build/images/symfony-logo.svg', + '/build/images/symfony-logo.579acd4f.svg' + ); + + done(); + }); + }); it('Builds a few simple entries file + manifest.json', (done) => { const config = createWebpackConfig('web/build', 'dev'); @@ -2124,6 +2138,7 @@ module.exports = { 'main.js', 'manifest.json', 'symfony_logo.png', + 'symfony-logo.svg', 'symfony_logo_alt.png', ]); @@ -2132,6 +2147,11 @@ module.exports = { '/build/main.js' ); + webpackAssert.assertManifestPath( + 'build/symfony-logo.svg', + '/build/symfony-logo.svg' + ); + webpackAssert.assertManifestPath( 'build/symfony_logo.png', '/build/symfony_logo.png' @@ -2171,6 +2191,7 @@ module.exports = { expect(path.join(config.outputPath, 'assets')).to.be.a.directory() .with.files([ + 'symfony-logo.svg', 'symfony_logo.png', 'symfony_logo_alt.png', 'Roboto.woff2', @@ -2181,6 +2202,11 @@ module.exports = { '/build/main.js' ); + webpackAssert.assertManifestPath( + 'build/assets/symfony-logo.svg', + '/build/assets/symfony-logo.svg' + ); + webpackAssert.assertManifestPath( 'build/assets/symfony_logo.png', '/build/assets/symfony_logo.png' @@ -2221,6 +2247,7 @@ module.exports = { expect(path.join(config.outputPath, 'images')).to.be.a.directory() .with.files([ + 'symfony-logo.579acd4f.svg', 'symfony_logo.91beba37.png', 'symfony_logo_alt.f880ba14.png', ]); @@ -2235,6 +2262,11 @@ module.exports = { '/build/main.js' ); + webpackAssert.assertManifestPath( + 'build/images/symfony-logo.svg', + '/build/images/symfony-logo.579acd4f.svg' + ); + webpackAssert.assertManifestPath( 'build/images/symfony_logo.png', '/build/images/symfony_logo.91beba37.png' @@ -2314,13 +2346,14 @@ module.exports = { 'runtime.518d4a5c.js', 'main.78f7d83e.js', 'manifest.json', + 'symfony-logo.579acd4f.svg', 'symfony_logo.91beba37.png', 'symfony_logo_alt.f880ba14.png', ]); webpackAssert.assertManifestPath( 'build/main.js', - '/build/main.78f7d83e.js' + '/build/main.31fd3788.js' ); } @@ -2329,6 +2362,11 @@ module.exports = { 'Roboto.woff2', ]); + webpackAssert.assertManifestPath( + 'build/symfony-logo.svg', + '/build/symfony-logo.579acd4f.svg' + ); + webpackAssert.assertManifestPath( 'build/symfony_logo.png', '/build/symfony_logo.91beba37.png' @@ -2407,6 +2445,7 @@ module.exports = { expect(path.join(config.outputPath, 'images')).to.be.a.directory() .with.files([ + 'symfony-logo.579acd4f.svg', 'symfony_logo.91beba37.png', 'symfony_logo_alt.f880ba14.png', ]); @@ -2421,6 +2460,11 @@ module.exports = { '/build/main.js' ); + webpackAssert.assertManifestPath( + 'build/images/symfony-logo.svg', + '/build/images/symfony-logo.579acd4f.svg' + ); + webpackAssert.assertManifestPath( 'build/images/symfony_logo.png', '/build/images/symfony_logo.91beba37.png'