| 
									
										
										
										
											2020-09-08 17:51:56 -07:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Copyright (c) Microsoft Corporation. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Licensed under the Apache License, Version 2.0 (the "License"); | 
					
						
							|  |  |  |  * you may not use this file except in compliance with the License. | 
					
						
							|  |  |  |  * You may obtain a copy of the License at | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * http://www.apache.org/licenses/LICENSE-2.0
 | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * Unless required by applicable law or agreed to in writing, software | 
					
						
							|  |  |  |  * distributed under the License is distributed on an "AS IS" BASIS, | 
					
						
							|  |  |  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
					
						
							|  |  |  |  * See the License for the specific language governing permissions and | 
					
						
							|  |  |  |  * limitations under the License. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const requireName = process.argv[2]; | 
					
						
							| 
									
										
										
										
											2023-08-27 07:24:35 -07:00
										 |  |  | const success = process.argv.slice(3); | 
					
						
							| 
									
										
										
										
											2020-09-08 17:51:56 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  | const playwright = require(requireName); | 
					
						
							|  |  |  | const fs = require('fs'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | (async () => { | 
					
						
							|  |  |  |   for (const browserType of success) { | 
					
						
							|  |  |  |     try { | 
					
						
							| 
									
										
										
										
											2020-10-01 11:06:19 -07:00
										 |  |  |       const browser = await playwright[browserType].launch({}); | 
					
						
							| 
									
										
										
										
											2020-09-08 17:51:56 -07:00
										 |  |  |       const context = await browser.newContext({ | 
					
						
							| 
									
										
										
										
											2020-11-02 19:42:05 -08:00
										 |  |  |         recordVideo: { dir: __dirname, size: {width: 320, height: 240} }, | 
					
						
							| 
									
										
										
										
											2020-09-08 17:51:56 -07:00
										 |  |  |       }); | 
					
						
							| 
									
										
										
										
											2020-09-18 17:36:43 -07:00
										 |  |  |       await context.newPage(); | 
					
						
							| 
									
										
										
										
											2024-05-08 20:40:03 +02:00
										 |  |  |       // Wait for 1 second to actually record something.
 | 
					
						
							| 
									
										
										
										
											2020-09-08 17:51:56 -07:00
										 |  |  |       await new Promise(x => setTimeout(x, 1000)); | 
					
						
							| 
									
										
										
										
											2020-09-18 17:36:43 -07:00
										 |  |  |       await context.close(); | 
					
						
							| 
									
										
										
										
											2020-09-08 17:51:56 -07:00
										 |  |  |       await browser.close(); | 
					
						
							| 
									
										
										
										
											2020-09-18 17:36:43 -07:00
										 |  |  |       const videoFile = fs.readdirSync(__dirname).find(name => name.endsWith('webm')); | 
					
						
							|  |  |  |       if (!videoFile) { | 
					
						
							| 
									
										
										
										
											2020-09-08 17:51:56 -07:00
										 |  |  |         console.error(`ERROR: Package "${requireName}", browser "${browserType}" should have created screencast!`); | 
					
						
							|  |  |  |         process.exit(1); | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |     } catch (err) { | 
					
						
							|  |  |  |       console.error(`ERROR: Should be able to launch ${browserType} from ${requireName}`); | 
					
						
							|  |  |  |       console.error(err); | 
					
						
							|  |  |  |       process.exit(1); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | })(); |