* @param {import("../../../").MultiStats} stats stats
(stats)
| 14 | * @param {import("../../../").MultiStats} stats stats |
| 15 | */ |
| 16 | validate(stats) { |
| 17 | for (let i = 0; i < 4; i += 2) { |
| 18 | const a = stats.stats[i + 0].toJson({ |
| 19 | assets: true |
| 20 | }); |
| 21 | const b = stats.stats[i + 1].toJson({ |
| 22 | assets: true |
| 23 | }); |
| 24 | expect(Object.keys(a.assetsByChunkName)).toHaveLength(5); |
| 25 | expect(a.assetsByChunkName.main).toEqual(b.assetsByChunkName.main); |
| 26 | expect(a.assetsByChunkName.lazy).toEqual(b.assetsByChunkName.lazy); |
| 27 | expect(a.assetsByChunkName.a).toEqual(b.assetsByChunkName.a); |
| 28 | expect(a.assetsByChunkName.b).toEqual(b.assetsByChunkName.b); |
| 29 | expect(a.assetsByChunkName.a).toEqual(a.assetsByChunkName.b); |
| 30 | } |
| 31 | for (let i = 0; i < 4; i++) { |
| 32 | const statsData = stats.stats[i].toJson({ |
| 33 | assets: true |
| 34 | }); |
| 35 | for (const name of Object.keys(hashedFiles)) { |
| 36 | const asset = statsData.assets.find(hashedFiles[name]); |
| 37 | expect(asset).toBeDefined(); |
| 38 | const content = fs.readFileSync(path.resolve(__dirname, "a", name)); |
| 39 | const hash = createHash("md4") |
| 40 | .update(content) |
| 41 | .digest("hex") |
| 42 | .slice(0, 20); |
| 43 | expect(asset.name.slice(0, 20)).toBe(hash); |
| 44 | } |
| 45 | } |
| 46 | } |
| 47 | }; |