mirror of
				https://github.com/zulip/zulip.git
				synced 2025-10-31 12:03:46 +00:00 
			
		
		
		
	puppeteer_tests: Log page errors.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
		
				
					committed by
					
						 Tim Abbott
						Tim Abbott
					
				
			
			
				
	
			
			
			
						parent
						
							ed8c4fec98
						
					
				
				
					commit
					da9783fd10
				
			| @@ -2,7 +2,7 @@ import {strict as assert} from "assert"; | ||||
| import "css.escape"; | ||||
| import path from "path"; | ||||
|  | ||||
| import type {Browser, ConsoleMessage, ElementHandle, Page} from "puppeteer"; | ||||
| import type {Browser, ConsoleMessage, ConsoleMessageLocation, ElementHandle, Page} from "puppeteer"; | ||||
| import {launch} from "puppeteer"; | ||||
|  | ||||
| import {test_credentials} from "../../var/puppeteer/test_credentials"; | ||||
| @@ -492,25 +492,48 @@ class CommonUtils { | ||||
|         // a screenshot of it when the test fails. | ||||
|         const browser = await this.ensure_browser(); | ||||
|         const page = await this.get_page(); | ||||
|  | ||||
|         page.on("console", (message: ConsoleMessage) => { | ||||
|             const {url, lineNumber, columnNumber} = message.location(); | ||||
|             console.log( | ||||
|                 `${url}:${lineNumber + 1}:${columnNumber}: ${message.type()}: ${message.text()}`, | ||||
|             ); | ||||
|             function context({url, lineNumber, columnNumber}: ConsoleMessageLocation): string { | ||||
|                 if (lineNumber === undefined || columnNumber === undefined) { | ||||
|                     return `${url}`; | ||||
|                 } | ||||
|                 return `${url}:${lineNumber + 1}:${columnNumber + 1}`; | ||||
|             } | ||||
|  | ||||
|             console.log(`${context(message.location())}: ${message.type()}: ${message.text()}`); | ||||
|             if (message.type() === "trace") { | ||||
|                 for (const {url, lineNumber, columnNumber} of message.stackTrace()) { | ||||
|                     console.log(`    at ${url}:${lineNumber + 1}:${columnNumber}`); | ||||
|                 for (const frame of message.stackTrace()) { | ||||
|                     console.log(`    at ${context(frame)}`); | ||||
|                 } | ||||
|             } | ||||
|         }); | ||||
|  | ||||
|         let page_errored = false; | ||||
|         page.on("pageerror", async (error: Error) => { | ||||
|             console.error("Page error:", error); | ||||
|             page_errored = true; | ||||
|  | ||||
|             try { | ||||
|                 // Take a screenshot, and increment the screenshot_id. | ||||
|                 await this.screenshot(page, `failure-${this.screenshot_id}`); | ||||
|                 this.screenshot_id += 1; | ||||
|             } finally { | ||||
|                 console.log("Closing page to stop the test..."); | ||||
|                 await page.close(); | ||||
|             } | ||||
|         }); | ||||
|  | ||||
|         try { | ||||
|             await test_function(page); | ||||
|         } catch (error: unknown) { | ||||
|             console.log(error); | ||||
|  | ||||
|             // Take a screenshot, and increment the screenshot_id. | ||||
|             await this.screenshot(page, `failure-${this.screenshot_id}`); | ||||
|             this.screenshot_id += 1; | ||||
|             if (!page_errored) { | ||||
|                 // Take a screenshot, and increment the screenshot_id. | ||||
|                 await this.screenshot(page, `failure-${this.screenshot_id}`); | ||||
|                 this.screenshot_id += 1; | ||||
|             } | ||||
|  | ||||
|             await browser.close(); | ||||
|             process.exit(1); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user