| 
									
										
										
										
											2017-12-26 11:12:08 +08:00
										 |  |  | "use strict"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-08 01:36:27 +08:00
										 |  |  | const path = require("path"); | 
					
						
							| 
									
										
										
										
											2017-12-26 11:12:08 +08:00
										 |  |  | const ProfilingPlugin = require("../lib/debug/ProfilingPlugin"); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe("Profiling Plugin", () => { | 
					
						
							| 
									
										
										
										
											2022-01-18 17:38:06 +08:00
										 |  |  | 	it("should persist the passed output path", () => { | 
					
						
							| 
									
										
										
										
											2019-08-08 01:36:27 +08:00
										 |  |  | 		const outputPath = path.join(__dirname, "invest_in_doge_coin"); | 
					
						
							| 
									
										
										
										
											2017-12-26 11:12:08 +08:00
										 |  |  | 		const plugin = new ProfilingPlugin({ | 
					
						
							| 
									
										
										
										
											2025-04-22 19:09:25 +08:00
										 |  |  | 			outputPath | 
					
						
							| 
									
										
										
										
											2017-12-26 11:12:08 +08:00
										 |  |  | 		}); | 
					
						
							| 
									
										
										
										
											2019-08-08 01:36:27 +08:00
										 |  |  | 		expect(plugin.outputPath).toBe(outputPath); | 
					
						
							| 
									
										
										
										
											2017-12-26 11:12:08 +08:00
										 |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	it("should handle no options", () => { | 
					
						
							|  |  |  | 		const plugin = new ProfilingPlugin(); | 
					
						
							| 
									
										
										
										
											2018-02-25 18:41:05 +08:00
										 |  |  | 		expect(plugin.outputPath).toBe("events.json"); | 
					
						
							| 
									
										
										
										
											2017-12-26 11:12:08 +08:00
										 |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-24 20:17:21 +08:00
										 |  |  | 	it("should handle when unable to require the inspector", () => { | 
					
						
							| 
									
										
										
										
											2017-12-26 11:12:08 +08:00
										 |  |  | 		const profiler = new ProfilingPlugin.Profiler(); | 
					
						
							| 
									
										
										
										
											2018-01-24 20:17:21 +08:00
										 |  |  | 		return profiler.startProfiling(); | 
					
						
							| 
									
										
										
										
											2017-12-26 11:12:08 +08:00
										 |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-24 20:17:21 +08:00
										 |  |  | 	it("should handle when unable to start a profiling session", () => { | 
					
						
							| 
									
										
										
										
											2017-12-26 11:12:08 +08:00
										 |  |  | 		const profiler = new ProfilingPlugin.Profiler({ | 
					
						
							|  |  |  | 			Session() { | 
					
						
							|  |  |  | 				throw new Error("Sean Larkin was here."); | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		}); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-24 20:17:21 +08:00
										 |  |  | 		return profiler.startProfiling(); | 
					
						
							| 
									
										
										
										
											2017-12-26 11:12:08 +08:00
										 |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-24 20:17:21 +08:00
										 |  |  | 	it("handles sending a profiling message when no session", () => { | 
					
						
							| 
									
										
										
										
											2017-12-26 11:12:08 +08:00
										 |  |  | 		const profiler = new ProfilingPlugin.Profiler(); | 
					
						
							| 
									
										
										
										
											2022-01-18 17:38:06 +08:00
										 |  |  | 		return profiler.sendCommand("randy", "is awesome"); | 
					
						
							| 
									
										
										
										
											2017-12-26 11:12:08 +08:00
										 |  |  | 	}); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-24 20:17:21 +08:00
										 |  |  | 	it("handles destroying when no session", () => { | 
					
						
							| 
									
										
										
										
											2017-12-26 11:12:08 +08:00
										 |  |  | 		const profiler = new ProfilingPlugin.Profiler(); | 
					
						
							| 
									
										
										
										
											2018-01-24 20:17:21 +08:00
										 |  |  | 		return profiler.destroy(); | 
					
						
							| 
									
										
										
										
											2017-12-26 11:12:08 +08:00
										 |  |  | 	}); | 
					
						
							|  |  |  | }); |