From 6b243f33d11cec37dc239f99495c7dd831b61416 Mon Sep 17 00:00:00 2001 From: Mike Chau Date: Mon, 27 Jun 2016 15:33:41 -0500 Subject: [PATCH 01/19] Use es5 syntax --- index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/index.js b/index.js index 1e7d89f..480ffa9 100644 --- a/index.js +++ b/index.js @@ -77,13 +77,13 @@ SprocketsStatsWebpackPlugin.prototype.apply = function(compiler) { if (mappings.length > 0) { // loaderUtils.interpolatePath takes a loader context but only uses the // resourcePath property, so let's create a stub - var loaderContextStub = {resourcePath: mod.userRequest}; + var loaderContextStub = { resourcePath: mod.userRequest }; - for (let mapping of mappings) { + for (var i = 0; i < mappings.length; i++) { var re = new RegExp(mapping.test); var match = mod.userRequest.match(re); - if(match) { + if (match) { logicalPath = loaderUtils.interpolateName( loaderContextStub, mapping.logicalPath, From 0a9f1ccea26f9a69ea123193fd096ef3299894dd Mon Sep 17 00:00:00 2001 From: Mike Chau Date: Mon, 27 Jun 2016 15:35:02 -0500 Subject: [PATCH 02/19] Revert removal of logical path mapping in after-emit step --- index.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/index.js b/index.js index 480ffa9..a66772a 100644 --- a/index.js +++ b/index.js @@ -111,6 +111,24 @@ SprocketsStatsWebpackPlugin.prototype.apply = function(compiler) { var walker = walk.walk(outputAssetsPath); var assets = stats.toJson().assets; + assets.forEach(function(asset) { + var hashedAssetName = asset.name; + var assetName; + var assetExt; + var filename; + + if ((asset.chunks && asset.chunks.length > 0) && + (asset.chunkNames && asset.chunkNames.length > 0) + ) { + assetName = asset.chunkNames.slice(-1)[0]; + assetExt = hashedAssetName.split('.').pop(); + + filename = assetName + '.' + assetExt; + + sprockets[hashedAssetName].logical_path = filename; + } + }); + walker.on('file', function(rootPath, fileStat, next) { var fullPath = path.join(rootPath, fileStat.name); var filename = (path.relative(outputPath, fullPath)); From d6d345046e1f3bc3df83233997428cff6a93a27e Mon Sep 17 00:00:00 2001 From: Mike Chau Date: Mon, 27 Jun 2016 15:36:14 -0500 Subject: [PATCH 03/19] Move example to examples/01_basic --- .../main-26ae530c61260c72c117.js | 1 - example/build/sprockets-manifest.json | 31 ------------------ .../assets/01-test/images/maru-01-test.jpg | Bin .../build/assets/01-test/main-01-test.css | 0 .../build/assets/01-test/main-01-test.js | 1 + .../01_basic/build/sprockets-manifest.json | 31 ++++++++++++++++++ {example => examples/01_basic}/package.json | 2 +- .../01_basic}/src/assets/images/maru.jpg | Bin .../src/assets/stylesheets/application.css | 0 {example => examples/01_basic}/src/index.js | 0 .../01_basic}/test/SprocketsManifest.test.js | 0 .../test/fixtures/sprockets-manifest.json | 0 .../01_basic}/webpack.config.js | 14 ++++---- package.json | 6 ++-- 14 files changed, 43 insertions(+), 43 deletions(-) delete mode 100644 example/build/assets/26ae530c61260c72c117/main-26ae530c61260c72c117.js delete mode 100644 example/build/sprockets-manifest.json rename example/build/assets/26ae530c61260c72c117/images/maru-6d18eff577039c3cd85aa19b82571845.jpg => examples/01_basic/build/assets/01-test/images/maru-01-test.jpg (100%) rename example/build/assets/26ae530c61260c72c117/main-f170406bbf80db11a0f7afdee504fa52.css => examples/01_basic/build/assets/01-test/main-01-test.css (100%) create mode 100644 examples/01_basic/build/assets/01-test/main-01-test.js create mode 100644 examples/01_basic/build/sprockets-manifest.json rename {example => examples/01_basic}/package.json (92%) rename {example => examples/01_basic}/src/assets/images/maru.jpg (100%) rename {example => examples/01_basic}/src/assets/stylesheets/application.css (100%) rename {example => examples/01_basic}/src/index.js (100%) rename {example => examples/01_basic}/test/SprocketsManifest.test.js (100%) rename {example => examples/01_basic}/test/fixtures/sprockets-manifest.json (100%) rename {example => examples/01_basic}/webpack.config.js (80%) diff --git a/example/build/assets/26ae530c61260c72c117/main-26ae530c61260c72c117.js b/example/build/assets/26ae530c61260c72c117/main-26ae530c61260c72c117.js deleted file mode 100644 index 5ef5fa4..0000000 --- a/example/build/assets/26ae530c61260c72c117/main-26ae530c61260c72c117.js +++ /dev/null @@ -1 +0,0 @@ -!function(o){function e(t){if(r[t])return r[t].exports;var n=r[t]={exports:{},id:t,loaded:!1};return o[t].call(n.exports,n,n.exports,e),n.loaded=!0,n.exports}var r={};return e.m=o,e.c=r,e.p="/assets/26ae530c61260c72c117/",e(0)}([function(o,e,r){o.exports=r(3)},function(o,e){},function(o,e,r){o.exports=r.p+"images/maru-6d18eff577039c3cd85aa19b82571845.jpg"},function(o,e,r){var t=r(2);r(1),console.log("hello world!",t)}]); \ No newline at end of file diff --git a/example/build/sprockets-manifest.json b/example/build/sprockets-manifest.json deleted file mode 100644 index a5d6558..0000000 --- a/example/build/sprockets-manifest.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "assets": { - "images/maru.jpg": "images/maru-6d18eff577039c3cd85aa19b82571845.jpg", - "main.js": "main-26ae530c61260c72c117.js", - "main.css": "main-f170406bbf80db11a0f7afdee504fa52.css" - }, - "files": { - "images/maru-6d18eff577039c3cd85aa19b82571845.jpg": { - "logical_path": "images/maru.jpg", - "size": 48416, - "digest": "6d18eff577039c3cd85aa19b82571845", - "mtime": "2016-06-21T08:40:31.275Z" - }, - "main-26ae530c61260c72c117.js": { - "integrity": "sha384-qNGoZqjcdOcN459HxyvHZ5iMTV7hA2akUt50kAsWfG2Kabx9EaFnyBagc7bKL/bn", - "size": 424, - "digest": "663749fe8d2219622d050e3ea2111ced", - "logical_path": "main.js", - "mtime": "2016-06-21T08:40:31.275Z" - }, - "main-f170406bbf80db11a0f7afdee504fa52.css": { - "integrity": "sha384-lkGaxwmX5qUkXJGM8wX4uMLH+AO5QZKlhbZdtQS0niV3w5EeOnJ0HsNDSEcvFFu1", - "size": 21, - "digest": "f170406bbf80db11a0f7afdee504fa52", - "logical_path": "main.css", - "mtime": "2016-06-21T08:40:31.275Z" - } - }, - "hash": "26ae530c61260c72c117", - "publicPath": "/assets/26ae530c61260c72c117/" -} \ No newline at end of file diff --git a/example/build/assets/26ae530c61260c72c117/images/maru-6d18eff577039c3cd85aa19b82571845.jpg b/examples/01_basic/build/assets/01-test/images/maru-01-test.jpg similarity index 100% rename from example/build/assets/26ae530c61260c72c117/images/maru-6d18eff577039c3cd85aa19b82571845.jpg rename to examples/01_basic/build/assets/01-test/images/maru-01-test.jpg diff --git a/example/build/assets/26ae530c61260c72c117/main-f170406bbf80db11a0f7afdee504fa52.css b/examples/01_basic/build/assets/01-test/main-01-test.css similarity index 100% rename from example/build/assets/26ae530c61260c72c117/main-f170406bbf80db11a0f7afdee504fa52.css rename to examples/01_basic/build/assets/01-test/main-01-test.css diff --git a/examples/01_basic/build/assets/01-test/main-01-test.js b/examples/01_basic/build/assets/01-test/main-01-test.js new file mode 100644 index 0000000..8efd0d5 --- /dev/null +++ b/examples/01_basic/build/assets/01-test/main-01-test.js @@ -0,0 +1 @@ +!function(t){function o(r){if(e[r])return e[r].exports;var n=e[r]={exports:{},id:r,loaded:!1};return t[r].call(n.exports,n,n.exports,o),n.loaded=!0,n.exports}var e={};return o.m=t,o.c=e,o.p="/assets/01-test/",o(0)}([function(t,o,e){t.exports=e(3)},function(t,o){},function(t,o,e){t.exports=e.p+"images/maru-01-test.jpg"},function(t,o,e){var r=e(2);e(1),console.log("hello world!",r)}]); \ No newline at end of file diff --git a/examples/01_basic/build/sprockets-manifest.json b/examples/01_basic/build/sprockets-manifest.json new file mode 100644 index 0000000..ee43177 --- /dev/null +++ b/examples/01_basic/build/sprockets-manifest.json @@ -0,0 +1,31 @@ +{ + "assets": { + "images/maru.jpg": "images/maru-01-test.jpg", + "main.js": "main-01-test.js", + "main.css": "main-01-test.css" + }, + "files": { + "images/maru-01-test.jpg": { + "logical_path": "images/maru.jpg", + "size": 48416, + "digest": "6d18eff577039c3cd85aa19b82571845", + "mtime": "2016-06-27T20:29:37.753Z" + }, + "main-01-test.js": { + "integrity": "sha384-9WCBflot2kBNysprVPr2Cspm01ivh4eg4OOLQPBOFPA/V96H3eWOFreCuQedp892", + "size": 386, + "digest": "bfe15df886795b3cfdba39725fe0761a", + "logical_path": "main.js", + "mtime": "2016-06-27T20:29:37.753Z" + }, + "main-01-test.css": { + "integrity": "sha384-lkGaxwmX5qUkXJGM8wX4uMLH+AO5QZKlhbZdtQS0niV3w5EeOnJ0HsNDSEcvFFu1", + "size": 21, + "digest": "f170406bbf80db11a0f7afdee504fa52", + "logical_path": "main.css", + "mtime": "2016-06-27T20:29:37.753Z" + } + }, + "hash": "b755adbdb70b9401cd09", + "publicPath": "/assets/01-test/" +} \ No newline at end of file diff --git a/example/package.json b/examples/01_basic/package.json similarity index 92% rename from example/package.json rename to examples/01_basic/package.json index 2ae4682..8e44885 100644 --- a/example/package.json +++ b/examples/01_basic/package.json @@ -14,7 +14,7 @@ "css-loader": "^0.23.1", "extract-text-webpack-plugin": "^0.9.1", "file-loader": "^0.8.5", - "sprockets-stats-webpack-plugin": "file:../", + "sprockets-stats-webpack-plugin": "file:../../", "sri-stats-webpack-plugin": "^0.7.0", "style-loader": "^0.13.0", "url-loader": "^0.5.7", diff --git a/example/src/assets/images/maru.jpg b/examples/01_basic/src/assets/images/maru.jpg similarity index 100% rename from example/src/assets/images/maru.jpg rename to examples/01_basic/src/assets/images/maru.jpg diff --git a/example/src/assets/stylesheets/application.css b/examples/01_basic/src/assets/stylesheets/application.css similarity index 100% rename from example/src/assets/stylesheets/application.css rename to examples/01_basic/src/assets/stylesheets/application.css diff --git a/example/src/index.js b/examples/01_basic/src/index.js similarity index 100% rename from example/src/index.js rename to examples/01_basic/src/index.js diff --git a/example/test/SprocketsManifest.test.js b/examples/01_basic/test/SprocketsManifest.test.js similarity index 100% rename from example/test/SprocketsManifest.test.js rename to examples/01_basic/test/SprocketsManifest.test.js diff --git a/example/test/fixtures/sprockets-manifest.json b/examples/01_basic/test/fixtures/sprockets-manifest.json similarity index 100% rename from example/test/fixtures/sprockets-manifest.json rename to examples/01_basic/test/fixtures/sprockets-manifest.json diff --git a/example/webpack.config.js b/examples/01_basic/webpack.config.js similarity index 80% rename from example/webpack.config.js rename to examples/01_basic/webpack.config.js index 34a650e..af5ba3c 100644 --- a/example/webpack.config.js +++ b/examples/01_basic/webpack.config.js @@ -21,11 +21,11 @@ module.exports = { }, "output": { - "path": path.join(PROJECT_DIR, "build", "assets", "[hash]"), - "publicPath": "/assets/[hash]/", - "filename": "[name]-[hash].js", - "chunkFilename": "chunk-[id].[name]-[hash].js", - "sourceMapFilename": "debug/[file]-[hash].id-[id].map", + "path": path.join(PROJECT_DIR, "build", "assets", "01-test"), + "publicPath": "/assets/01-test/", + "filename": "[name]-01-test.js", + "chunkFilename": "chunk-[id].[name]-01-test.js", + "sourceMapFilename": "debug/[file]-01-test.map", "pathInfo": "false" }, @@ -51,7 +51,7 @@ module.exports = { }, { "test": /\.jpg$/, - "loader": "url?limit=10&name=images/[name]-[hash].[ext]" + "loader": "url?limit=10&name=images/[name]-01-test.[ext]" } ] }, @@ -70,7 +70,7 @@ module.exports = { }), new webpack.optimize.OccurenceOrderPlugin(), new webpack.optimize.AggressiveMergingPlugin(), - new ExtractTextPlugin("[name]-[contenthash].css"), + new ExtractTextPlugin("[name]-01-test.css"), new SriStatsPlugin({ customStatsKey: "rails" }), diff --git a/package.json b/package.json index f583563..b5e8af1 100644 --- a/package.json +++ b/package.json @@ -9,9 +9,9 @@ ], "scripts": { "test": "ava", - "build:integration": "cd example && npm run reinstall && npm run build", - "test:all": "npm run test && npm run build:integration && ava ./example/test/SprocketsManifest.test.js", - "test:ci": "npm run test && ava ./example/test/SprocketsManifest.test.js", + "build:integration": "cd examples/01_basic && npm run reinstall && npm run build", + "test:all": "npm run test && npm run build:integration && ava ./examples/01_basic/test/SprocketsManifest.test.js", + "test:ci": "npm run test && ava ./examples/01_basic/test/SprocketsManifest.test.js", "lint": "eslint ./test ./lib index.js", "check": "npm run lint && npm run test" }, From d86c2c29ba7c4e0e1bfdb5812ae2f81b693710a7 Mon Sep 17 00:00:00 2001 From: Mike Chau Date: Mon, 27 Jun 2016 15:52:54 -0500 Subject: [PATCH 04/19] Fix module-asset mappings loop --- index.js | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/index.js b/index.js index a66772a..e33df0a 100644 --- a/index.js +++ b/index.js @@ -71,17 +71,23 @@ SprocketsStatsWebpackPlugin.prototype.apply = function(compiler) { }); compilation.plugin('module-asset', function(mod, filename) { - var logicalPath = ""; + var logicalPath = ''; var filenameKey = Object.keys(mod.assets).slice(-1)[0]; if (mappings.length > 0) { + /* eslint-disable vars-on-top */ // loaderUtils.interpolatePath takes a loader context but only uses the // resourcePath property, so let's create a stub var loaderContextStub = { resourcePath: mod.userRequest }; + var i; + /* eslint-enable vars-on-top */ - for (var i = 0; i < mappings.length; i++) { + for (i = 0; i < mappings.length; i++) { + /* eslint-disable vars-on-top */ + var mapping = mappings[i]; var re = new RegExp(mapping.test); var match = mod.userRequest.match(re); + /* eslint-enable vars-on-top */ if (match) { logicalPath = loaderUtils.interpolateName( @@ -158,6 +164,7 @@ SprocketsStatsWebpackPlugin.prototype.apply = function(compiler) { Object.keys(output.files).forEach(function(filename) { var asset = output.files[filename]; + output.assets[asset.logical_path] = filename; }); From 11131cb38e8c99c75c94556b6c6fb02338d7d3de Mon Sep 17 00:00:00 2001 From: Mike Chau Date: Mon, 27 Jun 2016 16:16:33 -0500 Subject: [PATCH 05/19] Fix 01_basic integration test --- .../01_basic/build/sprockets-manifest.json | 6 ++-- .../01_basic/test/SprocketsManifest.test.js | 4 ++- .../test/fixtures/sprockets-manifest.json | 28 +++++++++---------- examples/01_basic/webpack.config.js | 4 +-- 4 files changed, 22 insertions(+), 20 deletions(-) diff --git a/examples/01_basic/build/sprockets-manifest.json b/examples/01_basic/build/sprockets-manifest.json index ee43177..81be56e 100644 --- a/examples/01_basic/build/sprockets-manifest.json +++ b/examples/01_basic/build/sprockets-manifest.json @@ -9,21 +9,21 @@ "logical_path": "images/maru.jpg", "size": 48416, "digest": "6d18eff577039c3cd85aa19b82571845", - "mtime": "2016-06-27T20:29:37.753Z" + "mtime": "2016-06-27T21:15:32.625Z" }, "main-01-test.js": { "integrity": "sha384-9WCBflot2kBNysprVPr2Cspm01ivh4eg4OOLQPBOFPA/V96H3eWOFreCuQedp892", "size": 386, "digest": "bfe15df886795b3cfdba39725fe0761a", "logical_path": "main.js", - "mtime": "2016-06-27T20:29:37.753Z" + "mtime": "2016-06-27T21:15:32.625Z" }, "main-01-test.css": { "integrity": "sha384-lkGaxwmX5qUkXJGM8wX4uMLH+AO5QZKlhbZdtQS0niV3w5EeOnJ0HsNDSEcvFFu1", "size": 21, "digest": "f170406bbf80db11a0f7afdee504fa52", "logical_path": "main.css", - "mtime": "2016-06-27T20:29:37.753Z" + "mtime": "2016-06-27T21:15:32.625Z" } }, "hash": "b755adbdb70b9401cd09", diff --git a/examples/01_basic/test/SprocketsManifest.test.js b/examples/01_basic/test/SprocketsManifest.test.js index 30fd37d..77d0d90 100644 --- a/examples/01_basic/test/SprocketsManifest.test.js +++ b/examples/01_basic/test/SprocketsManifest.test.js @@ -12,8 +12,10 @@ test('generated sprockets manifest matches expected', function(t) { t.truthy(Date.parse(file.mtime), 'not a valid date'); - file.mtime = '2016-06-21T07:42:09.623Z'; + file.mtime = '2016-06-27T20:53:11.389Z'; }); + actualManifest.hash = 'test'; + t.deepEqual(actualManifest, expectedManifest, 'manifests not equal'); }); diff --git a/examples/01_basic/test/fixtures/sprockets-manifest.json b/examples/01_basic/test/fixtures/sprockets-manifest.json index 81d98fc..9a142f7 100644 --- a/examples/01_basic/test/fixtures/sprockets-manifest.json +++ b/examples/01_basic/test/fixtures/sprockets-manifest.json @@ -1,31 +1,31 @@ { "assets": { - "images/maru.jpg": "images/maru-6d18eff577039c3cd85aa19b82571845.jpg", - "main.js": "main-26ae530c61260c72c117.js", - "main.css": "main-f170406bbf80db11a0f7afdee504fa52.css" + "images/maru.jpg": "images/maru-01-test.jpg", + "main.js": "main-01-test.js", + "main.css": "main-01-test.css" }, "files": { - "images/maru-6d18eff577039c3cd85aa19b82571845.jpg": { + "images/maru-01-test.jpg": { "logical_path": "images/maru.jpg", "size": 48416, "digest": "6d18eff577039c3cd85aa19b82571845", - "mtime": "2016-06-21T07:42:09.623Z" + "mtime": "2016-06-27T20:53:11.389Z" }, - "main-26ae530c61260c72c117.js": { - "integrity": "sha384-qNGoZqjcdOcN459HxyvHZ5iMTV7hA2akUt50kAsWfG2Kabx9EaFnyBagc7bKL/bn", - "size": 424, - "digest": "663749fe8d2219622d050e3ea2111ced", + "main-01-test.js": { + "integrity": "sha384-9WCBflot2kBNysprVPr2Cspm01ivh4eg4OOLQPBOFPA/V96H3eWOFreCuQedp892", + "size": 386, + "digest": "bfe15df886795b3cfdba39725fe0761a", "logical_path": "main.js", - "mtime": "2016-06-21T07:42:09.623Z" + "mtime": "2016-06-27T20:53:11.389Z" }, - "main-f170406bbf80db11a0f7afdee504fa52.css": { + "main-01-test.css": { "integrity": "sha384-lkGaxwmX5qUkXJGM8wX4uMLH+AO5QZKlhbZdtQS0niV3w5EeOnJ0HsNDSEcvFFu1", "size": 21, "digest": "f170406bbf80db11a0f7afdee504fa52", "logical_path": "main.css", - "mtime": "2016-06-21T07:42:09.623Z" + "mtime": "2016-06-27T20:53:11.389Z" } }, - "hash": "26ae530c61260c72c117", - "publicPath": "/assets/26ae530c61260c72c117/" + "hash": "test", + "publicPath": "/assets/01-test/" } diff --git a/examples/01_basic/webpack.config.js b/examples/01_basic/webpack.config.js index af5ba3c..51ba1f2 100644 --- a/examples/01_basic/webpack.config.js +++ b/examples/01_basic/webpack.config.js @@ -59,6 +59,8 @@ module.exports = { "plugins": [ new webpack.NoErrorsPlugin(), new CleanPlugin(["build"]), + new webpack.optimize.OccurenceOrderPlugin(), + new webpack.optimize.AggressiveMergingPlugin(), new webpack.optimize.DedupePlugin(), new webpack.optimize.UglifyJsPlugin({ output: { @@ -68,8 +70,6 @@ module.exports = { warnings: false } }), - new webpack.optimize.OccurenceOrderPlugin(), - new webpack.optimize.AggressiveMergingPlugin(), new ExtractTextPlugin("[name]-01-test.css"), new SriStatsPlugin({ customStatsKey: "rails" From 7bb7f1f3ef3c916468a296022ffe60f38635a609 Mon Sep 17 00:00:00 2001 From: Mike Chau Date: Mon, 27 Jun 2016 16:18:19 -0500 Subject: [PATCH 06/19] Remove examples/01_basic/build --- .../assets/01-test/images/maru-01-test.jpg | Bin 48416 -> 0 bytes .../build/assets/01-test/main-01-test.css | 1 - .../build/assets/01-test/main-01-test.js | 1 - .../01_basic/build/sprockets-manifest.json | 31 ------------------ 4 files changed, 33 deletions(-) delete mode 100644 examples/01_basic/build/assets/01-test/images/maru-01-test.jpg delete mode 100644 examples/01_basic/build/assets/01-test/main-01-test.css delete mode 100644 examples/01_basic/build/assets/01-test/main-01-test.js delete mode 100644 examples/01_basic/build/sprockets-manifest.json diff --git a/examples/01_basic/build/assets/01-test/images/maru-01-test.jpg b/examples/01_basic/build/assets/01-test/images/maru-01-test.jpg deleted file mode 100644 index 63917eb9b150c5b367b654d15251f7da2e194406..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48416 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

relW_&Y8h(7F<}`sUKIChIb{wGP@@* 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 oh$@Uy2iz)Ph#)w>n2oho5w^q@ov~2T^UMQ Date: Mon, 27 Jun 2016 16:19:48 -0500 Subject: [PATCH 07/19] Remove test:ci, generated bundles no longer use webpack hash for testing --- .gitignore | 1 + .travis.yml | 2 +- package.json | 1 - 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 73ecdc8..76ff3bb 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules *.log *.swp +examples/*/build/* diff --git a/.travis.yml b/.travis.yml index c6fa5b8..06026c1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,4 +26,4 @@ cache: - example/node_modules script: - - npm run test:ci + - npm run test:all diff --git a/package.json b/package.json index b5e8af1..b336bc1 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,6 @@ "test": "ava", "build:integration": "cd examples/01_basic && npm run reinstall && npm run build", "test:all": "npm run test && npm run build:integration && ava ./examples/01_basic/test/SprocketsManifest.test.js", - "test:ci": "npm run test && ava ./examples/01_basic/test/SprocketsManifest.test.js", "lint": "eslint ./test ./lib index.js", "check": "npm run lint && npm run test" }, From d85c429837252c80a2b9eef136847c6530041d7d Mon Sep 17 00:00:00 2001 From: Mike Chau Date: Mon, 27 Jun 2016 16:20:55 -0500 Subject: [PATCH 08/19] Travis: Test with node v0.12 --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 06026c1..049a96d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,7 @@ language: node_js node_js: + - 0.12 - 4 - 5 - 6 From 2f18395ee2b706aa6f050519691c0e1d3ceb3885 Mon Sep 17 00:00:00 2001 From: Mike Chau Date: Mon, 27 Jun 2016 19:03:40 -0500 Subject: [PATCH 09/19] Add integration test for simple scenario (01 test) --- .gitignore | 2 + package.json | 11 ++- .../simple/src/assets/images/maru.jpg | Bin 0 -> 48416 bytes .../src/assets/stylesheets/application.css | 3 + .../integration/scenarios/simple/src/index.js | 5 ++ .../scenarios/simple/webpack.config.js | 82 ++++++++++++++++++ test/integration/simple.test.js | 40 +++++++++ tmp/01-test/build/.keep | 0 8 files changed, 142 insertions(+), 1 deletion(-) create mode 100644 test/integration/scenarios/simple/src/assets/images/maru.jpg create mode 100644 test/integration/scenarios/simple/src/assets/stylesheets/application.css create mode 100644 test/integration/scenarios/simple/src/index.js create mode 100644 test/integration/scenarios/simple/webpack.config.js create mode 100644 test/integration/simple.test.js create mode 100644 tmp/01-test/build/.keep diff --git a/.gitignore b/.gitignore index 76ff3bb..95eb8b3 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,5 @@ node_modules *.log *.swp examples/*/build/* +/tmp/*/build/* +!/tmp/*/build/.keep diff --git a/package.json b/package.json index b336bc1..b971eb5 100644 --- a/package.json +++ b/package.json @@ -34,10 +34,18 @@ "homepage": "https://github.com/mikechau/sprockets-stats-webpack-plugin#readme", "devDependencies": { "ava": "^0.15.2", + "css-loader": "^0.23.1", "eslint": "^2.13.1", "eslint-config-mc": "^0.6.5", "eslint-plugin-ava": "^2.5.0", "eslint-plugin-import": "^1.8.1", + "extract-text-webpack-plugin": "^1.0.1", + "file-loader": "^0.9.0", + "memory-fs": "^0.3.0", + "remove-webpack-plugin": "^1.1.1", + "sri-stats-webpack-plugin": "^0.7.3", + "style-loader": "^0.13.1", + "url-loader": "^0.5.7", "webpack": "^1.13.1" }, "dependencies": { @@ -48,7 +56,8 @@ }, "ava": { "files": [ - "test/**/*.js" + "test/**/*.test.js", + "!test/integration/scenarios/**/*" ], "failFast": true, "verbose": true diff --git a/test/integration/scenarios/simple/src/assets/images/maru.jpg b/test/integration/scenarios/simple/src/assets/images/maru.jpg new file mode 100644 index 0000000000000000000000000000000000000000..63917eb9b150c5b367b654d15251f7da2e194406 GIT binary patch literal 48416 zcmb@tWmp_t(*`)W26qV#!QCymyE_c-?he7--Q6962X}W1?ydm>WGBz_e*1pAe|Gn} z_P&@ich{*?NBVSicTMqU_0J9fMOs`+8~_Fa9T*(|@MjPFtCWa{fugd4xRk6Ir~&{0 zXA%+>76V5C0Br4CoRlSmi8ZyfiD6~{&;SU)KQJK{PXK!cvuk?SHPs;$1 zB>-T7{;#e7UGx8f!y7v|xq$TEKpz$pQ)goU0E`L5t=(N5Kyt8b5XS&o|HJG5awk<~ z5s-Wk#F5PZ<%@qg@LzuLmpg$b0n&N+t8e}f2Z#O3f&X%Xzud*t<8QwJ5qk$uCrfh+ z7h+~^Zf;^B6MLX3v5Kd&i>a+Mv6P*$y_18zlaY(52}t+f@%?QDK>b(o?}~i^HRPiH zNBaL`@%KFZYwlj@pY;X9n*6Wqza1I7I=TJl2n?JR0Qi48{;!Q}8~{L}1OR}1`>%{G z1^~zh?G@yd|H>$t0RR+60H7!P&n_T9%)`x|9*q#ga3~PxM)7a|8TITzq)@m z03rbJzX1EE1P6zJfQEzs0R{>R5*ii;7WVH44*nAY92_D%EGz;t0^%nm5a19{P?3>P z|MI^^{x%1-f`){IMuLNd`>XN)4S)IpsIXv7;Gz&>WvLryZ92xYHq;kXoO}eNE?f>{*7211GL$HY8TGKy zfbeuk6X}vh_KA`RDnq)-OmH$3W3xoZHF~r?)eM^;ipD_73GJUU^#{%i0cS6EBMiMZ z7cZX&7Va43u@#thzk=TtmZ{g(#n7F#_?Qc94SPZxwKYUZ*q|XnsV$k(RB1FvRI+ho zUbGzYUC+H8Gvpe07j2)%N%*y#PSxUr#SXW88fJ$U9pz?1C$*5AiljtIluKpMq6fnT zpeB741!^&+SGa*Y-qN$IskWO0g-1iiTDj`_TMrwzVZWQxFs3BUlL-*99=Qwe|pX>TXe&chm?wMz7(bDae36&3m9*IRjXN}SZ!ypw)$;v284e8M3Y6HR{uhO=> zs^LqoB&}oK&u0^{oJPx<&SR|AG`VUyLab>5Sy0nNA|&}{ciIaV^f}|eVbya96LeL| z1JVl3cqtZ5NX;WjsSq;K(Xq^keg*QFQrBOv@*hY#84n$80uuT+o&Uz6t{(}Hp4U4+ri?z`r;83 zSYr#2tXFJLgxRdI*Ijj(0?Om6P(VpW;-nJgo-uDMN2PD5UX-@}0mwdzHHl40af!;t zBPIt($$%>WnA0f+Ag#hNSj2yj+kQPGGYqf6=3R2;+v2mUvaG#(cU@{Hcn_!LjuXSQ zQQ@r7?-R3Ls8{xS^|q3`@9H(3KF|A9a@qXu;}c+S<#Mmq-|sKxOjR`+{sq`qDLgnx zoS$GePiLE?NmYyvd1@3fPlk?6|ML4pFs)0$+q`*qJ2xlKasSc%=(TB9fZSYx>O`hj z;N8C{>vZvDM5|UuXe~5jb}U3CgRPMglG@d>vQitu++Cv)W>Q8-eTeT`WBfrkjmm&m zZK-QU2U-HDF(I2rOuV9{cwX^awUPXm(CLF7QtGip-G=hUCz{p}Pm3nU6e8P6^Q!v= z+-S@OLvSEUpJBCDowaWItXaKE;v5FPGEi8M;qj9>r^cjL&QaN+KyU7{%jt>$zn&Z+ znM_lNb?&`+f04ew(%SQa+rXKD$}`W30rH8r0Qy61tbM8Ts4u6F-O47-{gJf`&+xsu z2oNy{j3%Vp&C9Y~J}qtc>bR=4H|GpT6tu-zXXa@rXdyG<1L9$2#Q5#nywzjPHI~lV zCem_JWQLiai41oXTJGrr$2HMN!?O`Bn5(d?*EcxoktGw+Eutk8NtWYmbcg$`18(z5 zeByq*B2&(Lg;oX6-*xEC;4h6=`RM00rOgG8E%f;H_{jn77xRvE5FZ{m?(hk=WtKdb zhP(Hd1lVJke|OeDv(}yO{gxu)eD&8LvWs7}j?L3ru%c{dux>oy;(am6^to0`NC;CM zj1!ceAFR@j5R3jA31sHeAxS>5J!79fZ+rbc9jiSes4N||@!~dqAcp(tU|5D#iOOz> z$}(r6TwAQa+@&UmwW7@cmTy4h!jJIC%a4Ej7hkR(o?^wMi}8|ECQWzO#wYcy4daPC zEldKeqD2q8YBrem2iiQkZnqYE`ZnyE>FzAg9XHQczwp(!wbsMaSGb>?z58cRSG~u- zJ+@bK(_Vf#+u6^r_&L9tYY;6Fs243T3Sun!;$1OZXQ^GhPBTi3r7Svi`30o~=B}dA z%OWBU5G!dt4hiSHE>`S2&de8^pS-<}eH)S~VKa@8?^;WqwNIm=lo3`|EtIx$Xu{>G zsc*TJVV>VA}+hBN3-Oe+p z;1AxFD;Avp_TlN45_cl(NBkt$?n@Sa;a% zg8B*UVRdn({MdxnMV({T-rwJUx!+5a8`ZUGJPHsYJWPj9-_Pyr@?CF#53kE^_A8A= z+Rl2hw`gni(-4R#MaKOcr7=gK-`lYGI2_V|e{7l@YVT~E$KBKBd^|beufFzt?#a{r z2jG5R3Yu2KJHpOZE&Hp+`iIHm9Fd=+AKYmr^$o~D*>Jyp2pBB+AT!#BnfqqAc)g6d zzMv?}8y07xWtd=OL6(Z4lP}7~=QpH~uF*GU2c8U5Yu=9aGQaG-XLR@6oj3QlL0su$ z9LMk3>O8!?`i6$h-LIVZMGg4{9-KY!_f%P)+?eGVLELBhw)Ma1`OS>JT~3G1|LXBw zv`=e%=`F~0J<_ht%@O3D4ij6gh8oLx9N!4e;j;}b)4-=-$!Mo%UfkjM?I+;WE57kU z?ddZo#o9 zN86N^Lf6!IMpqdMi(BLs(1YHyfKmIt!)W87Xc47} z5v7vo;$P(@f4GKC`7Ce*-6av5kh6}X*WI}nJU{54>rU^NWu?>;q|8XPm2{Q2E!(|Q z%mlj#DsUFjD3$EC@UwTkeL9$5)%OFFI9coe1EBHTUcT~|?LmC}1E@rwDvN(1s`BLU zws`Yi_9>mN3%I0FzTZdL7Lzr;X^a@a|F|=IsyQu=QLZ=c@WVr7fo`#~aQG!hoW~3r~6NaLb%GH`g-% zr(=@t{en`hV9NIW7H=C^Td8cMX=H%UO1#TTybTk^AX6ZiHxLi@tWIRtdA8AD&0D~# zcf#vEHJv4}h9paI44P#9;CEZpnM*tm%c& z_%}?}iznDmd!L}Um6GNAC^h~_?t`Jnu;V^FFSwUcIWK+BEYy>f=Q5g$%a_-T)5F7q z<3*xFdg~?3!-JKQxm`(~#3MP{j?Qm*c-=~2m^tlXI3L{wV|gk;hfC{xT+$zzlK0?` zqzV&jr?YW_?j9`9O&8Uhw};Dpe623+j7PI4$4z;{mvd#+Ev}=b8=?H!OH_ouc3$ig zmd+B?zp~v(xY}hMH~i;bHm~EPW&-w`H77i+HH>R*<=1N{=3L5;+*_-3&>PJ4ovv4l zt$v=VQ?z1&HOc|8=AhKlGDL?Q*W1{A9%C!I*%0abztRblU{Mx81=c{cV%`u2gHI+Q z25GVnWUf;Vu_wZZt>YJ@?ST!qNt`w$&P6wl&_j|uN4kUR%X-_QB2io-;3-jfd{LILwvYqAr)4> zo~EUYl$RlnGkW1G88tx(BxX~zER&C|!ar3E*U#+4qHCotsAJSyVU!X#5CT&o<>7)V zd7IRQ?_H}YpEa0#s8Dv|QGyq_g965I;B+HlvA%AqvyN=2ZM{LSU%|1n*d~TnrY<>L z5c(`|24tyUoL`H?Q%BI;a4lQvnyZXlUgoYY)X>z zXn+|Z79ZWKByI%JSAQ6OKbq{9BZ$VBMg>6=H52Ar$(! zK+Wv+7|dYV?=EzTqk$&1SjdCMe!}C|4}5PaXlCO_m6{Q9%QWr0h?SQtel&RWN5M`N z4m5Iw2&QREKmuzgZ%82N^jF8V6GO@ceJZ;x1nDZ>Wdn=`@$42ZEDEli9N!L`RajwL zo@&_=C+=`m4smEx-M~Ywa0^4Y?_F@NA_(SMuGpgLp~AP{x&U@aF!7B|{ES=~T9MI7 z5iOC)o9k0@Q`KH(%ZrUtHteknz*`Zgeel;v%G#+)N$T*-Nw5)brV2H4%<%fxR!p_- zs*b~GkrdP~qHjW#4dPQAHo@RJu}#p*4KP*ApN7UX*N-4A1~oGW$$%k<$&xjg?#ecF z%6z(kkd#S|nv9fmGcq#?lWNG5UyxZOJ{wLuvqiM07w4qsGBP<_4Dzv3Y$FaHIAdy< znen!HB4HuGIKy1VjN+pIzu_LQtX-`X{B@1{lJ-&lbw{IV#3ZyW@{oR zp2TQl!oiLC(u9hdp~9U`1d5F?p#Z=jz#$=_AVDFMe?ljqcnAa}Dij(z2{a0`5C$8@@!#EU_uI+scM;MuaP&Eew#P1we62o{Dl&*81#w7Y$GYZuR_P3q=gg@nksbS4QLrY|X&I^YQty5dBdLCFcYAd>uDmArbTQg!ks>QGO7)oM-#qTs7Z@Wql2!29HZUi-;nf=mv zX;nWoHSGY|ano^X|BAY-da1(A!02YrEQaxs z0$)`(jfM^@N8MH3rY_+7cQrukv1QkG+_;fCzF9Nl-^VDOo8&ji1{x4|V(uYZmikn4 zqE{uQBMbWsa+x@?M*Q8EqIm_|uj}Pry{BkKYavVpCW4qLslts_wEw`V;aVYAtDyvF%ZmH8YJ4et&k*kWKs2I5NjJ!4WsAdb{(Q*FP_xqD7fx&-bD2m zNQdy;oC|rl<~L&n&1xeI)Ifn)E{rR$Z3)>#zGCTr-X z+MPVE^x{kCXa@5VS7!RePAQ{=?v(wA517QcShf|1AVz9 z*8DRDIt5_-mr57Y73=j=H8~4oR|13b$Gy)eRh#M|`@*i;u3~cz$~h$}Tp{FF?d7gR zDz)p0A@bYbh{Imp)c-H|r%QP&Z`D4z#>t!LB(DDqLM^4;%_%{4iQKz8JmkA}=-;-x z!?)%}3A4Ap1T|3@g_UkrDfkEVy!3dEf`?L zjAO-X%TN=A3}MraV(`T(V{)&{_W#9VwN^+&%s_b+53R|Zib@wDWbiU|jceZe5$SbFC zE1b{tk{wcy?Mf~R(`>{yBLB4-GKdk(S{Pk6FRXGx+F1_I7T20QWo?=huFgq^Q+!hp z9)Y}AY#0^s9F%Od=`}`(#T&E)Z81uS9_;m5UjBS5qMIAzky`oD-+)=-O6=G{F7;_>9QasHJ-W5rwluf5rGFCWGRCyZNk8eo$Tz2A58gIn; ziZo{+yww&*BsSJ2YI_>!pPW`wRG{%R)|9L+xmdrD*C_0TH%<+fP?o7c{>ok^oqBvbC8H8)|Buwp40Gc+-~CDT^qYCmy%Etq=~VX-QqTYgXNpi*}1 zDBhzZZCIb8qqhmN!A8nab(qYb30qbHOK%QZ*-ntS!8q_rc!8n4>-Yy5F{uR7F*l1# z(BGZ|RR;U@XVLefTbdiNBXKgn$x?D;{s(M5~)2WNMqz^Qu45d66lQ zPTo2CbJ>Cosh#_n=b6YL#-v@7R{5z&cA2Hivnil0#3;52_Ert?$Kl*yeLEy&7`-fp zLS@3UjJ8!dghZ%A`c}CNvEt%)(qG`?W0|;-(peG0J7Wc2P%oC}Ru)Gk`#$m%Vk2w| z@HQT@Gc`s(*;Hj0uRk&8g#t6w9DY)O-(Uu1ei)BdIfI=3{~aVij8El3UK$?jsV&u+ zeZQsyoGZ!cr;!{;d{llArAh+J)m#|tIKQb(Vd87+u~U%2-_(qSE1A2I2rn-v?Ov7? z)kK>QS^Cg9a~(y-UipwRY3qMpVY1>cS0&*=FI^fPVa3d;NY5s3wIEkg;6wWZpd2Fl zM1(ORZ{e|&B&RT#&bJ`Jo4e&(S+7ge-QQox? zbQRN_u?!hA_31$p`iNAbm$vs9I`w*4S>QuW$YgnD-W<73LidHp_@b~VgYOKCZV#}wb`uaPUgX*cL>GvP8+ zzU@9r7kw+Bk;fj=VSF8|FhPuqaHN#cA|nb{7Yh=?kj)R$TnlAFWJt`dL*IixT9gUf zd0eg0!|JB+V?-z*Ak*3BQZJ-SSv-C%z+{E!8@QL@3WBY??Gk{Q81mpfh$HAX&%B$U zu*Ih#WB$(L@v*S}jw^&@c1}ZwKswrZZQ8M=TRp)uox!_qJZNrdN7+wS6(lAXp}v4; z$347@p=*yZS-PjKmE`y(d;2j?p1gLpaF|y6yB&!q1ui~W2%EoOFdQW!O~p5kB#g=d zW0p9CSWcDDXC&QpOcAg|qNUZx@dmgxsW9N`GD$S>(dF3}WBt4FAr~FXS3QFejfFkZ z(o{uqU$uQ_v3(y6*J!7h;T6!f`sa=gKdu&Y(Wb#U)#_b3c~pLjyPg%vRDLV|rQuEd zi{N4}O@^q0@e-?=q)}#}4;L({ucdXK5<*emc?*;)cmMaq4!8a*<*5W2JEt>=R)hr#4OLY79p1wRhkiE zM_HsTX+XN0Of?;Vi!P-6^rofD0^RySPaVg;_x9O;044q;n$1CcJdHB*ePJBZZjF?S zJ*AkCbE8ip#5Ooldzd%^$Poi?B)7b$&dSPaJ-Ix!cmoCxLS{^(($+8h%eqRum0Z6g zBi!&i38n8=Z&o5>sRykh_5wo>3d+BQTYb?yv3zG;?%yJ)jdYs4-26Pzy8~LF#_A}V z@tTjAw_0K(;&cyP`R+?{oSRE%Jk6UvI(t_-`K6BupsUP=xJf3q0z%b|tZ@4(5oG!; zM`%OHRCgObKxM-*{HE9yCzQIsHVvw7;M`%oet3$5P@c(4p74iRkalJQhJ57=dET0H zkuBvHh~wDS^u~hF(SXD4sg0@aoL&J_f7)1a;PXB;X%aS02zl(SW{fDb+q?<~4fmTX zV#A!;Vx^UXQEX7H=V|$ISx^#Uq8bMC5PpZ6Do0Lowv3cocm((|wn<@Vjv+e^w@qZ9_l5`ksV zNW`M!lqseOHBPUO7EVXcPVa}}5 z?j9uqlKj)H9EGbG2WEf>U&95$Q>gl}d0S;0Z(##$?wQqEC1E%aiDxN(tr?lS%wkM) zi~IVcz`<%I#v?o}A_lKK;Pzq1S34U$Mg{7z!}W1obrXo4S6)|%|E@mvy-W1nF7|3K z`!mjSTm-FSw5E(q_>lglrZO)n%G(2tf1 zzjde!O68JH3~{XISFh;ZTG(TK9$6fdkY6=~EUg~@C7P0f-ApBLR&mGPG(fNb9E!H4 z#~@7gob>R&kod|53#zP67S&%GgjTb95(Vw zLUF3wi|n8?&6d$nHm$23HX8I`jBtbx{R4>pp7Fy!$|H924*PkMEg$crDQwnE8qW6zpQmc1h-j!WC`k!uxe743*IkdiZ(~Ksr<- zl>sO^r?a*@!HveH*Y zgQ^c|Gt4_n3@%(g7to=G;)IHdKPK`XcuXeIaspTB7}z)Q6_ix4;ZSwLc5jRx5+o|9 z*M8Hd=B`HLC5uy`%LS{cHt)uw^+ZX*vJ(~$72%D}+F&_hRizf!61h#6E?NY%)UeYD z7q)mrp0`@fcFB|YV;dyPsiT)vc+khkeL7?6S=gOhWGqsKqC(njjN8ZIafdTxVcg^6 zH*@GkYUmyQ?uhhxH( z#SV7Zt`8?cude(bdEf*R5Gvm*s$SHu_H@Vj{BlPksK5D-7COX5P@dZ zLfd}v6(-PARJa?v{{x`QL87lTp21k=-X5dPA!~TuxsO{8aO_B{2VPs*qb!L-^9yu+ ze^}r_^eW7m8Tt9#Q`=M7-%~tjy{Zufyj3RA;rh(c;BhwLG5)w`9l2aftKRdgMvGQ@ zw)%_mQp!#xJdVqtFOBI#8c8r?VT&&k`@K+xF(sffXv+MCGeXy$2OS$|Q57^oKI5LOXldZ6D6H_`_AB8Jx0gx@1OTuJvoW=`shKZh~d9$<{S%evM$EQr9^?gBd~f zXqjV~b6I;zpCpxC=Q)gCBPBgiN-reh^WHh_b&eIk8HL_oh`T*Qoc5L{k9cJlK8X2i zetkdQVte&78vm%efbaRGv6-@Q=qG;e!q8Y9&TOimlF8J9qh7f9rF}@Zv@pxN^ijyo ziYlIF?-%@UaK@&H)$hKYui0*dIzaOCIkUS5z2BmpZU@+Y!AG#;f{u=`+*PycBG&j< zVZ8VUT39l4H3l}c4d%9wSOsE7D;jq$ckG{wl6baLX8A_cTzzYUTPL%xzjoK1b^uxI zy#tq!wA$Td57+b{8oSr|w^4sf_m&;-n7cljAZXSYeyh=rX)Q`EN}0*|Ik%8;yoIEf zF&Wiqg>*{9M6cl|y+@M>v$;f`35GV52E?;mxqN%g1qlzlzNS(G{LoP|9T9X*>d z)gL)qquvU%-@NWRF0lP1)))7mMr2+izP_*VR8{5MbT-utD|#a3eDH-asYp|}!Jm-& z((}4Fz8gHcH@oobUB+z@Q!uT$iB!T^SJjT6z2&@yUbzO5Q$AAY5-WK#X0&y{q}Hq}pb1*A{I)JsD~Zk*Ik`s#s_(8ZocZU|zhmO{LU;TIxsjcE#(qvei4?XD zRKi9Pj1s9Wn`Zg_(g0y?$S2KDlws@XaKiy z&ffcaJIgEiXWH+spceyE-|dS_f63FI=f`u9@>}gtKhMs)XK9Y6Pmm_|M<0%VzJ<|N zz1Cv>>Uj(M((BW6bM6E;B=*`KXK}a%aVAo5wr%uYj_K;^g6;m%edU>(M>gxNK)3O9 z(W&P?8F(NM%GFTwr*d9$>wvxMIq!a}d2jL_QEaj)S|{h`+}P;YPBR)Sv)OiTBlZ=| zS6k>+ySVzXrf0U%J$oYEv$FZ1!3}!ky&gZWKi$Y1)S(urs_oIKx{BCjIJr-I{Iqnz zjl5hp&fn+u)`V}y+4H070`zhtQ+wjtfzaNX@hchiEN}}_?djSD+sV@)=UpPdqoaF4 zN^G-r>`r6LAZ2N3_RjtIs^lr^uD6)59g@HJwX=4cH$R9F`4YirWtG-;qqDo04OOp4 zH$vx*D&<$tz{dFbfi(2V!`ChJv*)K5r{1#OWY>-kg5P4V*}fVF`=|D;=WSn+H+p^{ zbg%er1;JRqPfm2tHeRm(?tO$f>wv=FEa;3&>v*vV-9PAjn^DYn^yTh&(F2`{6<6Q4 zoX&jDUjnOf#d#VGwQif490JP^SH4@Xv{&#@P;>dOVG4-^wXL8#zUd!8z2cXu7rR<) zSAPvZow_&|cr57iUcace2@_<7e-tIr?;&i#u z$k$1>0*dj|qXNJ|L4Ht(ACx8eZ+;{w{}B}p5(S-@gjom*gGq^$<*N~yqp)({KLLJF zwxl4~7Ah)Z>|5G#cqeA(RR|grlWqex(4bGZUT{zCx{-SL2%fe=M`ic(o=yQO*=mAq z&6Iy2_WI!{%O605M$c#gK3-Qf4LTRv!S@W@SjjOYiz(b9Hk0W1bsj>bFu7{Yh6v!0 z_I!5&eAAs~k{gAiXi=F>QCTC6<(0R{`rYQ_9)U=>*?-}PL^6me5-zq`Av{@9>f|Oo zx6VOP82`XReWC?VjhuhJs{PHZwU@kI4VT^d+ZbhZdtJ*!8ag#g9xzXS=t;q|(1Ae9 zee%VHZJ&qcpxJtWswnR_Me*+ldZGnFyr@3^Knx9KNbX`bHe-;I>$93_Y_y|DB!xVk zmj{cN#FK(}S`^xXFN;eV5wv8_Nufvs7(%KN9{uD;NEAx(Cj~ZtoLuFy-H~PaG zL%&z0zNA-G%?@R%_9kry)Jd#@-fXQ%G&puJ9{b^all?AlD@ z*GR z*7}w4v*5|cFlmyLXldP!d#_4`qdT2pEN9Nly>!N6H;y4a#x4oh%$*Z{wlQr}!6o1(;BZ(Qh(B%FbX_D>U7Yrl9KRJ^ z%`!OeINj3kpxg*&0?GlJl+?CGaB}U~P zUlPg8q|yHEW6~@A@q5wYU;}U{3MV~1l}@w4PF7aNxn?#BA;AZ0y8-YT6Zz-<0f4XBg>+z(T{mvs3mAah z7UTc8Eig#1zX|Rj{Oh*RQ9y1>34@eL2#V#avJs}RV_?C*jtl&+jcK+evskCX$EYepD=m;{Kl9p*twB(aI2%#CqM?rs z7DvwH!^YO8QRhU(%COVH+6NAZsm-Q2`OKM6(u6L zc3#@(RL|=Q4T6I$tErLI3O~1g2|P|w&1p2d&aAAY zZwwPnlqQpFZm(E_!9W`W(T-$uGkJ~plsR1E*&I*KxlFG{3)iC6eilhjtC|y~a3I z!*CUK8l{+M$+7Y^2W8(;wO1aTf(6ls`ZO1r+qqYY{PIpD%zUp1H;ZJ8$=paH+1$j! z3!BB;n_}_w1ZB;_6h7lDY-Rm*<%Y6oV~m8ZeQnwo7rZ755i!j#jTp6ci>eFy%Oor; z9V{%YEIe4E<^6hdj3a$dRL?IAlc~AYeo-#-}hus79i`OZ%D&Rk{8^MxfXsUo~09Vd;2g&<}+^cB<8JB4QGiA9WG zC#WT2X)J?T)vci&8QS;Lh&3)YWB(iDqU`7>=yIL7Gchs9xix;y!Gn<@nEZvAnaN~E5(|r&>{tfNb<7LnjqhE<8^Tjm)S>a-i}7!< zp}U4#pQ@N1Yb^TFmpqE^n)PWjMsJK!M17x4Z~Z~ON(z)l0S*Zc1q%ZO0}cuE*HwYi zC{Rh5A<9 zC%*z(5d0{TZ>xR7IrVT`Y8K@ZrqLk9)YMLH=|x@rAoB#)*{rH$8dJUxlwx5g_E)HW zuw{^BYD+JY(ZQ}!cxbLxVf6UfwJ^VVmz7tX)0Mb9nrEVD+t~yit`gme;G-kvatjk)BYWNQdO>W zT9mpu+`L@@Ida@bqj8w;U2$20Ue1gZx>cti?`SAw4`peeL?MvY=+Z$QkD=yvRWV=0 zN3Q)lJ63m`aY!G0NT1TZ7HK^n^`Q$(cPcS&`-C+N-1|krSE0Dr{&zDJvsP&8#%ii3 ze&eK`qz=xX)4S=ygrrmPiNvcmBZI*{bRN}F!i@?0*|=YyaC3Z=-2a}34x5*pfyt4g ztTcLExNiAe5RR`VO@me=rk>KL2bXE53}qmed|wkrS6i-}wa%w*;qg62(5svi_2fc; zHfpz%HvZ9H4%q$q4`2%@ZkF$4$WM)Y6pT&V6*&>zzwaRb`=*qy|A{MHi8oLWrPYt9 zxx6y2**=pZ7Dg^1F-teVRXE8)wGe!19$k;Ziy`wAlLzLQdg*Y5sc4syQuEugWPeun_ZBQU z-KrE{{0G->&jlF;6Nj`wT7?zSQJ9mkOPtWQ08j@V*#s_Jc}}c~cDzt{MB4*7#)^o; zBGzr}zp3t3jGLaRMUD0LP_yY`c~?y$`bUt7XcwY2836jyMzv&-^bScOBYiT`y5^ zF1N!?71)Sb6`gOY7NVl~?sSJzVTK91-hY zE|S$PO+b0DGaK#U$Rb8oC6=2lxrR^!8q-dN^xMI=(mai#jz!(;J z7a9?y3T5w6w+DPAp~6E0^T>k4>LsCZ)pa-NqM6Kf3#WA>tF=fzOvDjLqR=QJ`0EE! ztl+&3OgbIny=SiI*gt?)nJ+_#tRK2MZvH4L5nu`Uzb9!Q3uIP|zD^mT9J1aB$3%0r zpe}WKc&qLVqm)_`m%(ykY_|&+cKvYHftB0Y-XR~am~u7&pP&Gin5G0diPaf~p=ge= ziP|X*HOno=FANPhh08cC52~C*gqmEx^`mQwe&?_mmGjr;wQ5;<&atg~fCy3*|`d)SVk09r13iJ4KllCh&5Y3@`iBVpg+v^7|nt9Pd$P)|h(`DerDW zucrypipW;Csk0MQ^?;Z)5fB3>(YoH_@}_1d(0Ln0LW{!cub!i(mqB@w0>nJ>)Y zCwS~|9m?$TewDUZ%HeDLE4+*O16gf}Q8G%7@Yz{aCu`xtwHh_8sh zweAKjsB1sP0Aij!N_rDAiQ2>lAv`>y1^)nmGV9O_p(`g%(W+dwJI8Wzb)nb0tXjrK zyP~g*rZoe(`(j+EBtZQBA!!agR^G$)2}!M;rP5vVNkkRTqRd)8j15FEuL|}sPLwE! zronAi(_9i4eFiqGQADg~jMa2HdCA;M3&lP!v62K%e)cI&Y;lYxGnWX(jjb}K4o2^< zZdz1k=0VGXY^-K2RvYP``P4V*jXN{jM0OV4O17!xtTqw*xxclKwOk=suus^=T4ezP zRCj?g8+Yvsu%e-(tCB@O171BT&ttI(k*^Ws;EGU)0vy@Wrxy-QbMdtzLhgUKnM(N6 zrZo=?<|N4|=_Okj=w3qqCFioA z%RhEwWFus`Hl7Cq0mHl6{|oIa0AaCIBy!%N)=%S?d%oUs|3(PG!sQ~Mzbtjk$eEb)1(+>l zM#N?n48CNl21`U>ixmg3@iy3eZ~IYoM0ma~Qi*H)ov16AWdAe%AAsUVcg}R~AK5d$I)t*NLHo(z9qt!XrBqQeXle^fe8_59jfhuPT*+9h&?^DB3-1Usdoy>`f_Oas zaDmxhbOM-dmigKvtx8m1Gxx<$O7qkM%<-tl!J)C&e}35?;_KluKGxt;ILm;TdybaX z6o)X#B@1L_-RTzRo(YW+|AiUdCs-ZW0=G4mfX6c9A^xpVYWMJ$=y=Xa&UmE!MGo28 zPgSi^GIZ_bZ`T$k(C=po#GFAsJj^|3Q%KYW^+M_CVmDi!k#zB-RyhL>Dpboln+Mt} zU;8)@O&3|ouv{=JXpv58d^k-{az>>b4mfrAqGP_E)6t2?nddf&Rs6_fsgKucY0DT1 ziU=Nn8;+bEpdZKJh>fxqH44B{IhKf-pp#79#Mp&kcrYK5)zjD&uOd#gT=`V2yK?07 zi%~N|=_&x_$WSGO47)7nFH2h%0;fZ@`R+LJJjHV%-&v3&mTHu8!|+ zp*r2rfy8vhal}9ZXL<55>RC8#R{?!=U*)Svmcdk`a`N&l&)YC7`HXLyA zd8dMsjhdrvmcLZ)>^hvY3DG(!xWrhxfs_r5W8u~Mt zf-icJ*M;`)(tKa|@C#KgdpV$Ko!0 zV?R0mmZlLCMJnE(hKaBjAO5 z4)>v>)f;wug%0qPOnW*A$lSt#-yuo&h-#upi1h@r0? z#p-pkx@yYM3I?K3>zNHrO*CA9aS5P*zH;6fi3m6Lnj{y8;m#}9GB{C?5HO(QH#n;b zWy0+PY4ndzc~Es&GmUiM$L^u{e{e$65pBhRen2ni9}v5CiF5|;G98C%iactypcpwm zxhh**wAFb}$f5opOuYqHUBR}ki`zmLEZkie?jGDBSa5gu;O_2jL4vzOaCZq1++BjZ z<+1lW=iXbtU{-6@#;oe2_iuQ(=FrEfQm3m`Rb!-OI&)WGiDZC>-+-gP`y09&MJWZt z9gxgJA^9G3=%K1K#4F}pvs%oky1d70$fVmREZ7Ph6%Av_`dC+I(L>=(xo)I1!otX= zFT5&QraoL=$k;%o5$&~AEg!eZ%e>!loo<$f4RIMT zWHo$DA30@J8XfHALY7;mdzGPFDL6$ET?(-wm=E&zTPv)-R8%CCnN~`WWt7F`1RxO} zn28lClBi3F#(B}TTGF8(mOzn$&x_Ke&U;=9SMWj*+qOf$(z_(=7K2+v7_26(+nv{I zYHG0l{DYtz<6JbI!XlFp9@SX6hJP{hO~?9}GcXd&QE;oQ{gR`cl{iFiytEoM1p?mGs3QVO{y}gU$0Y&R%}}g&#>`-W3Zf@W z398eeh=^4R`l?Ar=q^4&DY!PqQW=@#2=@soZ5-V#&Od0J^MK;E%V#>~(2-VnE5zr_U|wOtY&z?6M-w+>h!nKv^hf;q>4u2~bzzmWxCpMBTURZPJP7`yIB%6c_}J_IVgJ`9e|(e zZgdr&XOl7YxAUetbSnPAoO2OjN2`o9OHxN8OGhhRbB&d{Nl8O>d(-P>Yrgfo{3U|DfKy@CC$shjuAhqdH1XnUe~xR zJYVelE-hCL5fzX+{tT7*Gd%>(aY$V5#IHo7lJRjHb{&=m@$i(IkU44sa|Sb(;U=PW zOfFMaLQ1)yrT(Bk)D=-b4`(CHB>(EpJ{vEpO7vIVZOF#K6nru+!wvO7ehwD%Y=Up| z6yi@aK}!-&xuP_bT$)j}w;A%2PhrCo1`AAQAQB+nnF<{21ZfVbpE~W!X;Q`1+7+$7b20 zVJlNoPw&Bmz&$mNbY)NnnR>-Gp%qP5 z535L_?0W7h-B?Har`jN7xiw{06M1>`dMB5Y&aDTZDu^j+{TBBzrD*&%*)D!N(jp@R zD>TU~IGQ)Y^d%`#<><+>B+_BdZyY#J_TzTrZNkU1=0k$F;)b$z(%rcqUc4P+U-~;n z<`}(h@?;dTLh62*H&A73Qm(!=JD<5n$=x!Ydux)|6ou{F#a|i&HS46-3{oy{r^KgZ zKED(^;ZOeJ@m*xuX2OD-N$Gpsg+sgmuNkZ_e3~n<*6%GC&)~h4|42%-z)yV3|BqYw zU$hD2r=TRF{8=9Z6ASA5NawD0SpHWrf)pmp)9xJ{{ev=uLu}|%^voNdNG{?MMp_ml zwe%5ftW-dTBW0NCN*VNkO~6o37bspXh4PLYT;$H0fli(`&({;cv#Fie!UP$)7G zNBmesFyj0sDl=W)rBiR^_4LFy$`bBS_^ScF)HNR>m0R@gn`rK2Hv;*AvNSD*`HD4v3pcyuqoV59skz88n&ewVFt>vEf|MGB#eK>7tAO@+ae%B<7TC}-?N8_9zNr+e^~r;O_cWr4 z^vyLJ2WMbpAPhGSg=0D-Hu411V-$uz{X8_H}%rUsuNY3b1rz;b-BP$co# zY}|>c7d2aq9=bP8JDGT z$5Cv|lwap_Gos)k_6C(>lWm_sddN=Ogbe^)F8JRvAIQs=N?3scP`yj&S>_~giRdQV zZz0N5->Gt=_oaiV5s#&x@M64ES_Yqv#%_e93nM18sKwC{kE07=&^N{F8x>O2gB%*X z@ZnnnF$p`5#Me+HgM;xX2TR6q)RgeX*mexeu#@z$j>0^`p*4Xbu!P!uyW~X)qar?$ z>iUR+6-;SEtd>E38Cf^f!-JLY=uvkJFm^9Q)Cs`~p~09#bHQ-PxOuEwk)uhU-x9<( z2BrO_&~UiAN92d!=y-X=w&0IR%;10m5pq`C6^t`m={{!Q>)(;rvK0#2kk0}qXiNHDGK?7U^eiNpYox1eUu_=B7me)QoUBLRs}B} zb7XUU#{v)Dh;_k-wkoE2Fciy5WKar;k<>z3RL7<_!Q-k=7|+*mVPPUqmeO}mNuccn z5s#u_pDi?+!L5Fjh^ydjsXU+Cy(=N;JA79qNkNh?p&q<*Eg`uq#ySz*{vlk4qPmgQ zEn%dpX><17Ox8uIQB7FysS^0yy?OqkRF&tg{G%JDREKY}}CU^qWKCajyoy-jVv%D!I&0f><5SMi}i$2iD%a07?qONwqTF~nb z9|Hct{@a6ZB3Xnn$fE)RWP$hF4-%+qeHK>{-q_^}4FH^wi@<)k}cy-((FDscn^e4v7iB0s5u&TU)2n1l>)nCbU~)@>U&l^KKG zVfK8)Lv5U=Vn;)Pmx#XTcUJ75PlS9$Z$BD8o!*HksROG(b-10t39H+*44oF`@iuMFIZ`9Nd(J9AEX>m@S_Kj}(um&9Gnxc87^rBQ7| zt-<{Iab23GDURENiZ_xtt9IfVv^yFOA?lt6cY)GtwC86S7KvJMH6`<+b3e<3l04ie zR@SuP zqkxgo)d+j4T?#UZA0p*pk*bbM9KRWD5}PgN@xC>Ek5P_tfQZrK zo3OWjXAa9i7h4NCv?{Q|M=kxLdm>|W!^}wh1xokU>hH$p92HtINQERMLGl$z?WAXHP7u@H65W_@bdO2tur$=k667cI+C#u~d#^12543AM5!C2PuOZN57 zo4EdLv_*+IOeZ<-z2B*0o6zEk|MXY0`p1yLuw(=oUy;_Mi;%6>eMK!4Fl*6p+#ez2 zhW(X`S`8_LN@pGUH$s$V2z`Vb&ngC@Wqg%o*>_aJfq{O1x6!7a%2j?ZNlY}tixAAz zFVc>ho(`kAnW9Nk3G`$>9utNH?e4o!d3zC#ee(=Q7ILQf785!rHS`Z65LVa!G)~Oj!e@H}sYEz{tTIJi6)NUr&i}Dt;q;{oZ1Vp^ntW zC_|Q2KJkX8d38gKWn=s0ut9AnCozgiUSE}uY2RblIeU+hzwrV1n4V`~;9}`o8hz@K zv|s%16m!77cVDSTZ-$4gCcq<15uybzM8n^y!Rs-6bW|2lmhr1WY-T6hag|=?lq;Ky zelX4Uze+9rGXWS$JHl39L}c17iFX1R$ysro(p#t~1ub%AoIyYKRfVdA6{ zmH_i=sY!sc?SP8{g{1fFC1f=C%JT`&WCbQ9gi_R0j}q&{lFJFbyWZdYxXFO9-zNZ^dU{F;H@f4-xz|D0nBSFP&@YWJU;w!MI5j z=<^KH0%q`s*jvRv&LQ`-&kD_z7qh>1vfOP7BYyky}~<_)-FdgRMO-dYXp|SYrr^nkYu%KOOQUSXgmN_X78<)Mrw!vp`LY^ zVXJ}>o|_F?!;CEChPH`B3~GvbL~j)KgaTT&xZl$xuGw@yab?&r%4Mh{Xmo- znvowmXjkU4seX|Sj>q|q?$09Mw2a=r$z(soyqBoIZM_rWnZiq>8%H7{f(FrNGI#xx zL=CoSDrB66E!ziv8z%}xJLFtGVKSrv?@tnjip$a$K82;FURBLOD6J;B*7Mw*-95`N>MzcIyUje z+{@93d^wzLUtg}@th|?RNGt~g_|}e^(_xKsu$gS~4te7PR1f0M^c3qfpFNb{p8>>Q zu8O9oi88=HI4jb{HHspfM)l6D9tPokp+k9SlZ53*eg7b;f#E*Ye#!_UfI*r#pBZ2X z2DML%0;0=F@i0go+;Yb<6!ByDBu?yH$Fi7fD~a{>DLmH8s2|IKBC1K%io&18^N0Bw zcumP^P?}5d+8D2HIR_Efh7bUlYw^TiEgT#cSruLxFR3A+DxSXsWwBnpr%;M7bO|3j zuR3b`)0&AMIt`+u?f30bB-+5yoyN3KH0UEVxeCGhNoP@1oI<89)QUe$+&Ct`Of`Ok&c z*qOJ3!lpT1Y}z27s>X0b`+FNVb<#h3Kk$i#w^(CZ(>f|$UOMR5c=V~J?{l5E}A zB%qhzHza{21XCkfnmgy%{e3x}Qn-rj_8yo&0_U}fH_NvKdg!(1lR{$4V<#lWyyybV zA9RLt11Kp)h7QE$@Vng4w3wa}g2|G-rAT5d)~j=9NN34Kh;cKf{EL-S{~!o~j-50G zYC9zz56k_0vwCdYib@Wwvos*6j4V7Z8VeH^`U7oSe5(v8(8bpnb?UkiG{1|T)YHH| z!peQJ&YpP^Tg@!Om)rr9WYCEg#uC)Zh>f+=&jQ~sGCzNG#X0&(5;%5z%ml}8x6w5f zvnne3069$L;KPKWof_1Nsg*5z_G1A3TD-Ia{yU=U6rid&{tHb;dYi1lOsrH@C0$!# zYAQ`$6vQ%gH%CH9zI1~oQG0@KN$<|gbu@Jx@DJh@EhrDRYGCPOS&T%7V)|`X@-+=D z!oIA+X4&H%7ya4Nz(f3h5Mn^2azJptVs~tV0rYH+bTUn`aCr zE?=ypKy9*oTpP!e5Svt%cR08o%Zl)RZuq-X)~5H~^bPU+5gKo7@amOS z(Y5i#IPa^8DF}(8T4L^Zydrz~@P5RdLlQy}`OS>{qfxemf=1%}A;$&0Xr}4SY&LP4 zyR_Y+o{RW+c`J!ERfTJR=LYEunNSPwrd4wxx^A3F;<=-Fz3|w`&9@z^La?S$j;*72 zlbsSu_Uu0h*j!A}+i3yQOfnTeStap12DvG5QM`eLZayJ#7XY2(k`1*rr}fU=C~Zeh z50BW3AA#S?J7%!`5y|Wd<2XsA69Gf`u>p$k7j^?axcBT{CP@CRGtd6U%< zoQf(87jg$~YLNA-h4JfKdf_gh-Y<3si7s7$^?tAM=|g6M7;Vmm39b2oQmdwpqf|U} zD7^Pm{VmgR5}A94jxF~kfSE`&p!jtgY3`RZVvxn5bdHrUD~uhcr$3}H>*p4a3|3+E z-JEhbGw`p~&UhmE);u)EMAGO+|wt;TLmav@1KnaPAV?35AtB@gw#G!L-PgHc?@gCs)AENeXzevssLg56|d&{IQbj z8)6eSHYc>55uuOCP=pk3c>)P9&@X%-WYb*n{|+qZ3U}ad;#9?s7eW|g+&jjd+O zZ)I-eE4@F3QC?~8smhBxd zH(%W1H_jFt>oS)HfmN|FpQA0=t=Zks_bfhJWrkHF?iVnwH*`(wKL~uv^obH@b&^M^ z^8#h$_T7g{u~#Nun~Q%CqJNz$LTAD_KhW$TFL-KQ^%2|Rm)Y*~DH2ZXV(7`*zgfkf zTj2RjM)AV`3CAN~&N4+5?5c-cy<93_e>j#2Vkp<{9$fu4X-WGFGbYObk}X@0$bo`O1RfI1SM)=1$VGT#u6xL8E7<{SN}B=|});MM%ppygGj= zqTVU_p z01KCX{`O^G@%-x#bgp8Gf@ETxqt*x>CVRfD)b770C_}aQ#`?HV_8hyGs&e0PR8b;O z!`H&{PYHC@K1n>LsEb%J7m8pim2vm}8s=sf{>A_%t^fNT-N@%2(1u0wgH4$=Cw4RH z8UIA)Bq5t*g5BH~#T%9?!(cABySNMGkJ<;okH^;P?byi%xVmUR&7p>l!)G!el4oEd z`RCKn`7C`#JH)(gt6M~V-Ys_Y4Kdvghn(G{$rHRsu*)Tg+5lW_kaFav%l~bz2UhgX zF&)gNF_L0f9;@9~rPx=#b|o0A>Lw`>kM)LQ*Vqo2-QU`@kd?rB3|Y*droDa6jNP&y zJZX)Kpcxs*$S=lBTPh~qm3}Te{Qd!`4>v*GI@C$o0&ChG^ZmSseG|psBu89Eb~Vb% z5c^ZYSZ$DSKhh1C%&0t-K4EhH{qRw$-yqAlvOlu&C+=|tvEfs=X76u9UnNaF<8jhM za{2NX=9_`%=<#e(^D84fd^uO2hqsXrfEeYTaWhWupjFV_myV{U?*s|FIVy~wkM!Rd z>{fTt4jo~GXI@Cvj>tP}0rnobU2_;8mTq6#BFwFpFKFJg((mZYx;3e&8wO`(uA}FY zY<4YG40^SMF>o;b5ZR;^Tv_G0)Q4o~$y$LqbS%^ZqGI9Fm4VWZ395{(59(P$N-)x2 z79-7x;V;PbBJ3s!I^(=w36>O`mFr#+J@P4tQwiC2s0y?j(>n zMpUw+=-EIWM;2s31=QqCd=%!oX{!%VIiy>KL ztr`-VB2)z~JG8(tXBw9jX$9B@(>FY|XAsY(rzfXR{I|KX1_3V?^+^IJ6xey<>|NUj zhW%X@Zw6_uRXj58JbCGfHQLQ_6Z4+sG3$^k3Ss^fE$o8U>t zh*k9)?hHB81`dA{y^Kh%^=I@Nxa-&gMn`%AoR%E79RCwlj zp3L~$ij@@j#9I2H$5YbwyE6?@`D84u97?Q)G)cRN6k=W!xO|}U8@;j%R&K@2@otz; zjlK!r)To{r{H;VP4%YZwS6Sc>%mYZFNlaE^8;y8tg?i;&PmSj4LJGKN9??11nn zF2yzMIk(onst4UyP(GANPUNiu+qO;q+(-(uFD`X$Vo!hp>8e>Lo;R9u$Z3E2LFOD@ zu|t?$WPF7;Mc=5UT}RxW0HU+VnV@S3H8FwUY*bZuSOvAexV^;ZQ?aZ$HyZzH9-Db#$yL~ysYJX2-V`9U*4ek;n$4Pe!fJ8; zRKw5H5luUv99_^$sm0@F|00Hk_yV=4l>!tiEhRpJX~?-Mp?NWz@J$Mha`L7yFSq^F z8cS$N8~f?1zgC&n+B)EFt2uQT>c)oL8Cd$3pITYH$9|xWh@YiOu^e8#18`D-(Uh7PIAal+ zz2gqs_SD2$77`L^E^`J&36!|$uL>sSZew-+%Ivt z%S)_6JUFukrt{Cl8BgDp{lZN8J@V^$HV1sbS-$lNY(ali!{AzH&lYNz^E`o-srXIR zAmcsqRmX+dPZiRHAw<+C{}mTeK;AslX^qP*E?ruq1hAg%@O8}I2W1TSQP=atmSi6L zn>YA@dMHk^G#68AfrX~XtORyqb}^eAFD}9?(|LqaYzluY3>qAUU<7N^ux;vJYT_1! zDg-yDERZRcUMj^~-x5C59&XTpm!wEDx~uw(uSG*GqqaSGW$Xvd5a%i=x?@5mBuf+A z5SuMF-rP4(!X<)8OBb_%#7Y(x854aZiK_$lB5UFa=E4dS(1Kz!$E#pU3SR8p;uc?3 z*$=-Z(guw+_5SRZq%tMlAB{K{QI%T85>*W|v6N`2g)X<%PQ8fLN-@tMZHwQb4BtpkqI3=}IoKOTk^Lp?cu!DND8-bRS#=a;0oMRBv0y{U!Xh6wAO`6bkPW9r z*_-^uGSyCei9!*r$%Zku>mV{-jG(6oCS{Uql^9J5rGQ%V=Ze5J%&~P_-i%$WWURrt zx##GfZB!L`a|@Y%{hfef2>9v+)H%AK2IhUs@G^GD^CH0Jb6ifmF*~OTo`Y!@XSR*t zBH<`Bd8b&kiyueCR)tozWVS|ex9r-hM=APa+bf8qd)`K{&0da{SUkAS z8)$6W>)KuZ8WPL3YW5#KvR$OuMlmGC6XqZpFY~rhYp3hfTU(Y}gt3IHr2cV!{P2 zY}v3ftC<3z0%P0owA^uWPK0*WU?F+))omqg+lScHc;}us`hjF|u6LB5SO>nTCT8LS zgOaJrLD;a#4!S76dkioYrs6k>hqq%{dB5)TAQOVr&Oyq*Yme;;gvaOn$&XgXO%yvM z3~yhsKj5Ihm*^|PyqDM=x82#DC-QO%;DG^1GjKVHzJ!8_TDT9QP6O=qoBdp$BD}`z z%5kx(C-Jc83LT2Bg!mt^)w#tAZ>0Tn(Pt^{2dCc>?ER9Ml;TC>M-*DV(ettA${0>4 zJ0#RtRXGMUze|o?fPO=KtaJpfA)8X?TH=di7F5%!#R@s$kdfsn%RS@d8E*EW72LhN|RfTXtO@S^yTqzTAM8D zEXy!6cch`5eT!}%wy~bzR@&NK0_FH#Pk?3nwgUap@=a-+*dQwe

relW_&Y8h(7F<}`sUKIChIb{wGP@@* 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 oh$@Uy2iz)Ph#)w>n2oho5w^q@ov~2T^UMQ 0) { + return t.fail(jsonStats.errors); + } + + if(jsonStats.warnings.length > 0) { + return t.fail(jsonStats.warnings) + }; + + t.end(); + }); +}); diff --git a/tmp/01-test/build/.keep b/tmp/01-test/build/.keep new file mode 100644 index 0000000..e69de29 From e06c41017611d6b5a38015f4a18269a09603cf7a Mon Sep 17 00:00:00 2001 From: Mike Chau Date: Mon, 27 Jun 2016 19:09:02 -0500 Subject: [PATCH 10/19] Rename 01_basic to 01_simple --- examples/{01_basic => 01_simple}/package.json | 2 +- .../src/assets/images/maru.jpg | Bin .../src/assets/stylesheets/application.css | 0 examples/{01_basic => 01_simple}/src/index.js | 0 .../test/SprocketsManifest.test.js | 0 .../test/fixtures/sprockets-manifest.json | 0 examples/{01_basic => 01_simple}/webpack.config.js | 0 7 files changed, 1 insertion(+), 1 deletion(-) rename examples/{01_basic => 01_simple}/package.json (83%) rename examples/{01_basic => 01_simple}/src/assets/images/maru.jpg (100%) rename examples/{01_basic => 01_simple}/src/assets/stylesheets/application.css (100%) rename examples/{01_basic => 01_simple}/src/index.js (100%) rename examples/{01_basic => 01_simple}/test/SprocketsManifest.test.js (100%) rename examples/{01_basic => 01_simple}/test/fixtures/sprockets-manifest.json (100%) rename examples/{01_basic => 01_simple}/webpack.config.js (100%) diff --git a/examples/01_basic/package.json b/examples/01_simple/package.json similarity index 83% rename from examples/01_basic/package.json rename to examples/01_simple/package.json index 8e44885..d80b79e 100644 --- a/examples/01_basic/package.json +++ b/examples/01_simple/package.json @@ -4,7 +4,7 @@ "description": "", "main": "index.js", "scripts": { - "build": "NODE_ENV=production webpack --config webpack.config.js --progress --profile --colors", + "build": "npm run reinstall && NODE_ENV=production webpack --config webpack.config.js --progress --profile --colors", "reinstall": "npm uninstall sprockets-stats-webpack-plugin && npm install" }, "author": "", diff --git a/examples/01_basic/src/assets/images/maru.jpg b/examples/01_simple/src/assets/images/maru.jpg similarity index 100% rename from examples/01_basic/src/assets/images/maru.jpg rename to examples/01_simple/src/assets/images/maru.jpg diff --git a/examples/01_basic/src/assets/stylesheets/application.css b/examples/01_simple/src/assets/stylesheets/application.css similarity index 100% rename from examples/01_basic/src/assets/stylesheets/application.css rename to examples/01_simple/src/assets/stylesheets/application.css diff --git a/examples/01_basic/src/index.js b/examples/01_simple/src/index.js similarity index 100% rename from examples/01_basic/src/index.js rename to examples/01_simple/src/index.js diff --git a/examples/01_basic/test/SprocketsManifest.test.js b/examples/01_simple/test/SprocketsManifest.test.js similarity index 100% rename from examples/01_basic/test/SprocketsManifest.test.js rename to examples/01_simple/test/SprocketsManifest.test.js diff --git a/examples/01_basic/test/fixtures/sprockets-manifest.json b/examples/01_simple/test/fixtures/sprockets-manifest.json similarity index 100% rename from examples/01_basic/test/fixtures/sprockets-manifest.json rename to examples/01_simple/test/fixtures/sprockets-manifest.json diff --git a/examples/01_basic/webpack.config.js b/examples/01_simple/webpack.config.js similarity index 100% rename from examples/01_basic/webpack.config.js rename to examples/01_simple/webpack.config.js From 45f1bc2f69ec5237eeca8e86dbe260bc8eb43da8 Mon Sep 17 00:00:00 2001 From: Mike Chau Date: Mon, 27 Jun 2016 19:09:23 -0500 Subject: [PATCH 11/19] Remove test:all npm script --- .travis.yml | 3 --- package.json | 2 -- test/integration/simple.test.js | 6 ------ 3 files changed, 11 deletions(-) diff --git a/.travis.yml b/.travis.yml index 049a96d..dea1d6b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,6 +25,3 @@ cache: directories: - node_modules - example/node_modules - -script: - - npm run test:all diff --git a/package.json b/package.json index b971eb5..ba7b62f 100644 --- a/package.json +++ b/package.json @@ -9,8 +9,6 @@ ], "scripts": { "test": "ava", - "build:integration": "cd examples/01_basic && npm run reinstall && npm run build", - "test:all": "npm run test && npm run build:integration && ava ./examples/01_basic/test/SprocketsManifest.test.js", "lint": "eslint ./test ./lib index.js", "check": "npm run lint && npm run test" }, diff --git a/test/integration/simple.test.js b/test/integration/simple.test.js index fc991d5..f6af762 100644 --- a/test/integration/simple.test.js +++ b/test/integration/simple.test.js @@ -5,17 +5,11 @@ var webpack = require('webpack'); var path = require('path'); var MemoryFS = require("memory-fs"); -var ExtractTextPlugin = require("extract-text-webpack-plugin"); -var SriStatsPlugin = require("sri-stats-webpack-plugin"); -var SprocketsStatsPlugin = require("../../"); - var config = require('./scenarios/simple/webpack.config'); test.cb('generated sprockets manifest matches expected', function(t) { - // var tmpDir = tmp.dirSync(); var fs = new MemoryFS(); var tmpDir = { name: path.resolve(__dirname, '../../tmp/01-test') }; - var webpackDir = '/home/mike/code/github/sprockets-stats-webpack-plugin/tmp/01-test'; var compilier = webpack(config(tmpDir.name)); compilier.outputFileSystem = fs; From 58deaf3e2273013e1a8ead76e10f621e487299c6 Mon Sep 17 00:00:00 2001 From: Mike Chau Date: Mon, 27 Jun 2016 19:16:04 -0500 Subject: [PATCH 12/19] Fix eslint errors --- .eslintignore | 3 +++ test/.eslintrc.json | 3 ++- test/integration/simple.test.js | 12 ++++++------ 3 files changed, 11 insertions(+), 7 deletions(-) create mode 100644 .eslintignore diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 0000000..93c10af --- /dev/null +++ b/.eslintignore @@ -0,0 +1,3 @@ +test/integration/scenarios/*/src/* +test/integration/scenarios/*/webpack.config.js + diff --git a/test/.eslintrc.json b/test/.eslintrc.json index 0ac65bd..a33d0cc 100644 --- a/test/.eslintrc.json +++ b/test/.eslintrc.json @@ -1,6 +1,7 @@ { "extends": "eslint-config-mc/ava", "rules": { - "func-names": 0 + "func-names": 0, + "consistent-return": 0 } } diff --git a/test/integration/simple.test.js b/test/integration/simple.test.js index f6af762..28b37be 100644 --- a/test/integration/simple.test.js +++ b/test/integration/simple.test.js @@ -3,7 +3,7 @@ var test = require('ava'); var webpack = require('webpack'); var path = require('path'); -var MemoryFS = require("memory-fs"); +var MemoryFS = require('memory-fs'); var config = require('./scenarios/simple/webpack.config'); @@ -19,15 +19,15 @@ test.cb('generated sprockets manifest matches expected', function(t) { t.fail(err); } - var jsonStats = stats.toJson(); + var jsonStats = stats.toJson(); // eslint-disable-line vars-on-top - if(jsonStats.errors.length > 0) { + if (jsonStats.errors.length > 0) { return t.fail(jsonStats.errors); } - if(jsonStats.warnings.length > 0) { - return t.fail(jsonStats.warnings) - }; + if (jsonStats.warnings.length > 0) { + return t.fail(jsonStats.warnings); + } t.end(); }); From 0aab1ad95b4a34472c599c6247d2ebcc9f69433d Mon Sep 17 00:00:00 2001 From: Mike Chau Date: Mon, 27 Jun 2016 21:09:47 -0500 Subject: [PATCH 13/19] Update simple integration test --- .../fixtures/01-sprockets-manifest.json | 28 +++++++++ .../scenarios/simple/webpack.config.js | 24 ++++++-- test/integration/simple.test.js | 57 +++++++++++++++++-- 3 files changed, 99 insertions(+), 10 deletions(-) create mode 100644 test/integration/scenarios/simple/fixtures/01-sprockets-manifest.json diff --git a/test/integration/scenarios/simple/fixtures/01-sprockets-manifest.json b/test/integration/scenarios/simple/fixtures/01-sprockets-manifest.json new file mode 100644 index 0000000..66dffd0 --- /dev/null +++ b/test/integration/scenarios/simple/fixtures/01-sprockets-manifest.json @@ -0,0 +1,28 @@ +{ + "assets": { + "../../scenarios/simple/src/assets/images/maru.jpg": "images/maru-01-test.jpg", + "main.js": "main-01-test.js", + "main.css": "main-01-test.css" + }, + "files": { + "images/maru-01-test.jpg": { + "logical_path": "../../scenarios/simple/src/assets/images/maru.jpg", + "size": 48416, + "digest": "6d18eff577039c3cd85aa19b82571845" + }, + "main-01-test.js": { + "integrity": "sha384-9WCBflot2kBNysprVPr2Cspm01ivh4eg4OOLQPBOFPA/V96H3eWOFreCuQedp892", + "size": 386, + "digest": "bfe15df886795b3cfdba39725fe0761a", + "logical_path": "main.js" + }, + "main-01-test.css": { + "integrity": "sha384-lkGaxwmX5qUkXJGM8wX4uMLH+AO5QZKlhbZdtQS0niV3w5EeOnJ0HsNDSEcvFFu1", + "size": 21, + "digest": "f170406bbf80db11a0f7afdee504fa52", + "logical_path": "main.css" + } + }, + "hash": "85acf47b215574899a78", + "publicPath": "/assets/01-test/" +} diff --git a/test/integration/scenarios/simple/webpack.config.js b/test/integration/scenarios/simple/webpack.config.js index 9b56019..de2c2e2 100644 --- a/test/integration/scenarios/simple/webpack.config.js +++ b/test/integration/scenarios/simple/webpack.config.js @@ -8,8 +8,18 @@ var RemoveWebpackPlugin = require("remove-webpack-plugin"); var ExtractTextPlugin = require("extract-text-webpack-plugin"); var SriStatsPlugin = require("sri-stats-webpack-plugin"); var SprocketsStatsPlugin = require("../../../../"); +var merge = require('lodash.merge'); + +module.exports = function(webpackDir, params) { + var opts = merge({ + sprockets: { + write: false + }, + sri: { + runAfterEmit: false + } + }, params); -module.exports = function(webpackDir) { return { "devtool": "false", @@ -57,7 +67,11 @@ module.exports = function(webpackDir) { "plugins": [ new webpack.NoErrorsPlugin(), - new RemoveWebpackPlugin(path.resolve(webpackDir, "build", "sprockets-manifest.json")), + function() { + if (opts.sprockets.write) { + return new RemoveWebpackPlugin(path.resolve(webpackDir, "build", "sprockets-manifest.json")); + } + }, new webpack.optimize.OccurenceOrderPlugin(), new webpack.optimize.AggressiveMergingPlugin(), new webpack.optimize.DedupePlugin(), @@ -71,11 +85,13 @@ module.exports = function(webpackDir) { }), new ExtractTextPlugin("[name]-01-test.css"), new SriStatsPlugin({ - customStatsKey: "rails" + customStatsKey: "rails", + runAfterEmit: opts.sri.runAfterEmit }), new SprocketsStatsPlugin({ customStatsKey: "rails", - saveAs: path.resolve(webpackDir, "build", "sprockets-manifest.json") + saveAs: path.resolve(webpackDir, "build", "sprockets-manifest.json"), + write: opts.sprockets.write }) ] }; diff --git a/test/integration/simple.test.js b/test/integration/simple.test.js index 28b37be..f1bf440 100644 --- a/test/integration/simple.test.js +++ b/test/integration/simple.test.js @@ -4,15 +4,17 @@ var test = require('ava'); var webpack = require('webpack'); var path = require('path'); var MemoryFS = require('memory-fs'); +var fs = require('fs'); var config = require('./scenarios/simple/webpack.config'); +var tmpDir = path.resolve(__dirname, '../../tmp/01-test'); -test.cb('generated sprockets manifest matches expected', function(t) { - var fs = new MemoryFS(); - var tmpDir = { name: path.resolve(__dirname, '../../tmp/01-test') }; +function buildCompiler(t, fs, opts, callback) { + var compilier = webpack(config(tmpDir, opts)); - var compilier = webpack(config(tmpDir.name)); - compilier.outputFileSystem = fs; + if (fs) { + compilier.outputFileSystem = fs; + } compilier.run(function(err, stats) { if (err) { @@ -29,6 +31,49 @@ test.cb('generated sprockets manifest matches expected', function(t) { return t.fail(jsonStats.warnings); } - t.end(); + callback(jsonStats, stats); + }); +} + +test.cb('generates the expected stats', function(t) { + var expectedManifest = require('./scenarios/simple/fixtures/01-sprockets-manifest'); + var counter = 0; + + [true, false].forEach(function(runAfterEmit) { + var memFs = new MemoryFS(); + + buildCompiler(t, memFs, { + sprockets: { + write: false + }, + sri: { + runAfterEmit: runAfterEmit + } + }, function(jsonStats) { + var sprockets = jsonStats.__RESULTS_SPROCKETS; + t.deepEqual(sprockets, expectedManifest); + + counter++; + + if (counter == 2) { + t.end(); + } + }); + }); +}); + +test.cb('writes sprockets-manifest.json', function(t) { + var memFs = new MemoryFS(); + + buildCompiler(t, memFs, { + sprockets: { + write: true + }, + sri: { + runAfterEmit: false + } + }, function() { + var actualManifestPath = path.join(tmpDir, 'build', 'sprockets-manifest.json'); + fs.stat(actualManifestPath, t.end); }); }); From 1c677e014b5e5b8782a0891dc300a7ea0a6abfed Mon Sep 17 00:00:00 2001 From: Mike Chau Date: Mon, 27 Jun 2016 21:11:46 -0500 Subject: [PATCH 14/19] Fix eslint errors --- test/integration/simple.test.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/test/integration/simple.test.js b/test/integration/simple.test.js index f1bf440..da38b18 100644 --- a/test/integration/simple.test.js +++ b/test/integration/simple.test.js @@ -9,11 +9,11 @@ var fs = require('fs'); var config = require('./scenarios/simple/webpack.config'); var tmpDir = path.resolve(__dirname, '../../tmp/01-test'); -function buildCompiler(t, fs, opts, callback) { +function buildCompiler(t, fsys, opts, callback) { var compilier = webpack(config(tmpDir, opts)); - if (fs) { - compilier.outputFileSystem = fs; + if (fsys) { + compilier.outputFileSystem = fsys; } compilier.run(function(err, stats) { @@ -36,6 +36,7 @@ function buildCompiler(t, fs, opts, callback) { } test.cb('generates the expected stats', function(t) { + // eslint-disable-next-line global-require var expectedManifest = require('./scenarios/simple/fixtures/01-sprockets-manifest'); var counter = 0; @@ -50,12 +51,12 @@ test.cb('generates the expected stats', function(t) { runAfterEmit: runAfterEmit } }, function(jsonStats) { - var sprockets = jsonStats.__RESULTS_SPROCKETS; + var sprockets = jsonStats.__RESULTS_SPROCKETS; // eslint-disable-line no-underscore-dangle t.deepEqual(sprockets, expectedManifest); counter++; - if (counter == 2) { + if (counter === 2) { t.end(); } }); From e9a79406bf21f4bdf1cc25e9df7a1c97c6d52cde Mon Sep 17 00:00:00 2001 From: Mike Chau Date: Mon, 27 Jun 2016 21:12:27 -0500 Subject: [PATCH 15/19] Update travis to cache tmp --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index dea1d6b..e912b52 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,3 +25,4 @@ cache: directories: - node_modules - example/node_modules + - tmp From cefb2a0433dda216eec87cc9a63e7088ac480ddd Mon Sep 17 00:00:00 2001 From: Mike Chau Date: Mon, 27 Jun 2016 21:21:55 -0500 Subject: [PATCH 16/19] Fix simple integration tests to correct maru path --- .../scenarios/simple/fixtures/01-sprockets-manifest.json | 4 ++-- test/integration/scenarios/simple/webpack.config.js | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/test/integration/scenarios/simple/fixtures/01-sprockets-manifest.json b/test/integration/scenarios/simple/fixtures/01-sprockets-manifest.json index 66dffd0..36fb750 100644 --- a/test/integration/scenarios/simple/fixtures/01-sprockets-manifest.json +++ b/test/integration/scenarios/simple/fixtures/01-sprockets-manifest.json @@ -1,12 +1,12 @@ { "assets": { - "../../scenarios/simple/src/assets/images/maru.jpg": "images/maru-01-test.jpg", + "images/maru.jpg": "images/maru-01-test.jpg", "main.js": "main-01-test.js", "main.css": "main-01-test.css" }, "files": { "images/maru-01-test.jpg": { - "logical_path": "../../scenarios/simple/src/assets/images/maru.jpg", + "logical_path": "images/maru.jpg", "size": 48416, "digest": "6d18eff577039c3cd85aa19b82571845" }, diff --git a/test/integration/scenarios/simple/webpack.config.js b/test/integration/scenarios/simple/webpack.config.js index de2c2e2..a15c2dc 100644 --- a/test/integration/scenarios/simple/webpack.config.js +++ b/test/integration/scenarios/simple/webpack.config.js @@ -91,7 +91,9 @@ module.exports = function(webpackDir, params) { new SprocketsStatsPlugin({ customStatsKey: "rails", saveAs: path.resolve(webpackDir, "build", "sprockets-manifest.json"), - write: opts.sprockets.write + write: opts.sprockets.write, + outputAssetsPath: path.resolve(webpackDir, "build", "assets", "01-test"), + sourceAssetsPath: path.resolve(__dirname, "./src", "assets") }) ] }; From b7e0c63be47e30d8178262f128393af95ad09512 Mon Sep 17 00:00:00 2001 From: Mike Chau Date: Mon, 27 Jun 2016 21:47:10 -0500 Subject: [PATCH 17/19] Add initial setup for rails integration test --- .../rails/app/assets/images/maru-2.jpg | Bin 0 -> 35664 bytes .../app/assets/javascripts/application.js | 1 + .../src/assets/fonts/lato-regular-webfont.eot | Bin 0 -> 30978 bytes .../scenarios/rails/client/src/index.js | 3 + .../scenarios/rails/client/webpack.config.js | 102 ++++++++++++++++++ 5 files changed, 106 insertions(+) create mode 100644 test/integration/scenarios/rails/app/assets/images/maru-2.jpg create mode 100644 test/integration/scenarios/rails/app/assets/javascripts/application.js create mode 100644 test/integration/scenarios/rails/client/src/assets/fonts/lato-regular-webfont.eot create mode 100644 test/integration/scenarios/rails/client/src/index.js create mode 100644 test/integration/scenarios/rails/client/webpack.config.js diff --git a/test/integration/scenarios/rails/app/assets/images/maru-2.jpg b/test/integration/scenarios/rails/app/assets/images/maru-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5ed00e4be62beca5ed5187bd813aed32e7d2e736 GIT binary patch literal 35664 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

nk%aP)IWAxq!nVrN7@mMO0am=-f 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 Date: Mon, 27 Jun 2016 21:48:35 -0500 Subject: [PATCH 18/19] Rails integration test: Add loader support for eot fonts --- test/integration/scenarios/rails/client/webpack.config.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/integration/scenarios/rails/client/webpack.config.js b/test/integration/scenarios/rails/client/webpack.config.js index 8a6cc29..a0a2898 100644 --- a/test/integration/scenarios/rails/client/webpack.config.js +++ b/test/integration/scenarios/rails/client/webpack.config.js @@ -62,6 +62,10 @@ module.exports = function(webpackDir, params) { { "test": /\.jpg$/, "loader": "url?limit=10&name=images/[name]-02-test.[ext]" + }, + { + "test": /\.eot$/, + "loader": "url?limit=10&name=fonts/[name]-02-test.[ext]" } ] }, From 650a6520b1d03197aec12e0f0bfc92875e2ca92a Mon Sep 17 00:00:00 2001 From: Mike Chau Date: Mon, 27 Jun 2016 21:53:52 -0500 Subject: [PATCH 19/19] Integration simple: mock out hash since webpack hash differs --- test/integration/simple.test.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/integration/simple.test.js b/test/integration/simple.test.js index da38b18..3689ada 100644 --- a/test/integration/simple.test.js +++ b/test/integration/simple.test.js @@ -38,6 +38,9 @@ function buildCompiler(t, fsys, opts, callback) { test.cb('generates the expected stats', function(t) { // eslint-disable-next-line global-require var expectedManifest = require('./scenarios/simple/fixtures/01-sprockets-manifest'); + + expectedManifest.hash = 'test'; + var counter = 0; [true, false].forEach(function(runAfterEmit) { @@ -52,6 +55,8 @@ test.cb('generates the expected stats', function(t) { } }, function(jsonStats) { var sprockets = jsonStats.__RESULTS_SPROCKETS; // eslint-disable-line no-underscore-dangle + sprockets.hash = 'test'; + t.deepEqual(sprockets, expectedManifest); counter++;