| 
									
										
										
										
											2021-10-27 07:28:53 -08: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. | 
					
						
							|  |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import { start } from '../../packages/playwright-core/lib/outofprocess'; | 
					
						
							| 
									
										
										
										
											2022-04-06 13:57:14 -08:00
										 |  |  | import type { Playwright } from '../../packages/playwright-core/lib/client/playwright'; | 
					
						
							| 
									
										
										
										
											2021-10-27 07:28:53 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-15 11:29:33 -07:00
										 |  |  | export type TestModeName = 'default' | 'driver' | 'service' | 'service2'; | 
					
						
							| 
									
										
										
										
											2021-10-27 07:28:53 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | interface TestMode { | 
					
						
							|  |  |  |   setup(): Promise<Playwright>; | 
					
						
							|  |  |  |   teardown(): Promise<void>; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export class DriverTestMode implements TestMode { | 
					
						
							|  |  |  |   private _impl: { playwright: Playwright; stop: () => Promise<void>; }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   async setup() { | 
					
						
							| 
									
										
										
										
											2022-01-27 14:32:23 -08:00
										 |  |  |     this._impl = await start({ | 
					
						
							| 
									
										
										
										
											2022-04-13 16:13:30 -07:00
										 |  |  |       NODE_OPTIONS: undefined,  // Hide driver process while debugging.
 | 
					
						
							| 
									
										
										
										
											2024-06-01 08:33:46 -07:00
										 |  |  |       PWTEST_UNDER_TEST: 1, | 
					
						
							| 
									
										
										
										
											2022-01-27 14:32:23 -08:00
										 |  |  |     }); | 
					
						
							| 
									
										
										
										
											2021-10-27 07:28:53 -08:00
										 |  |  |     return this._impl.playwright; | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   async teardown() { | 
					
						
							|  |  |  |     await this._impl.stop(); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export class DefaultTestMode implements TestMode { | 
					
						
							|  |  |  |   async setup() { | 
					
						
							|  |  |  |     return require('playwright-core'); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   async teardown() { | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | } |