mirror of https://github.com/webpack/webpack.git
				
				
				
			
		
			
	
	
		
			29 lines
		
	
	
		
			819 B
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			29 lines
		
	
	
		
			819 B
		
	
	
	
		
			JavaScript
		
	
	
	
|  | const crypto = require("crypto"); | ||
|  | const fs = require("fs"); | ||
|  | const path = require("path"); | ||
|  | 
 | ||
|  | it("should result in the correct HTML", () => { | ||
|  | 	const content = fs.readFileSync( | ||
|  | 		path.resolve(__dirname, "index.html"), | ||
|  | 		"utf-8" | ||
|  | 	); | ||
|  | 
 | ||
|  | 	// check minimized
 | ||
|  | 	expect(content).toMatch(/<\/script> <script/); | ||
|  | 
 | ||
|  | 	// check inlined js is minimized
 | ||
|  | 	expect(content).toMatch(/For license information please see inline-/); | ||
|  | 
 | ||
|  | 	// contains references to normal-[contenthash].js
 | ||
|  | 	expect(content).toMatch(/normal-.{20}\.js/); | ||
|  | 
 | ||
|  | 	const [filename] = /normal-.{20}\.js/.exec(content); | ||
|  | 	const normalJs = fs.readFileSync(path.resolve(__dirname, filename)); | ||
|  | 	const hash = crypto.createHash("sha512"); | ||
|  | 	hash.update(normalJs); | ||
|  | 	const digest = hash.digest("base64"); | ||
|  | 
 | ||
|  | 	// SRI has been updated and matched content
 | ||
|  | 	expect(content).toContain(digest); | ||
|  | }); |