| 
									
										
										
										
											2021-02-11 17:46:54 -08:00
										 |  |  | /** | 
					
						
							|  |  |  |  * Copyright Microsoft Corporation. All rights reserved. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * 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 { folio as baseFolio } from './fixtures'; | 
					
						
							| 
									
										
										
										
											2021-02-13 22:13:51 -08:00
										 |  |  | import { Page } from '..'; | 
					
						
							|  |  |  | import { chromium } from '../index'; | 
					
						
							| 
									
										
										
										
											2021-02-11 17:46:54 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | const fixtures = baseFolio.extend<{ | 
					
						
							| 
									
										
										
										
											2021-02-13 22:13:51 -08:00
										 |  |  |   recorderPageGetter: () => Promise<Page>, | 
					
						
							| 
									
										
										
										
											2021-02-11 17:46:54 -08:00
										 |  |  | }>(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-02-13 22:13:51 -08:00
										 |  |  | fixtures.recorderPageGetter.init(async ({context, toImpl}, runTest) => { | 
					
						
							| 
									
										
										
										
											2021-02-11 17:46:54 -08:00
										 |  |  |   await runTest(async () => { | 
					
						
							|  |  |  |     while (!toImpl(context).recorderAppForTest) | 
					
						
							|  |  |  |       await new Promise(f => setTimeout(f, 100)); | 
					
						
							| 
									
										
										
										
											2021-02-13 22:13:51 -08:00
										 |  |  |     const wsEndpoint = toImpl(context).recorderAppForTest.wsEndpoint; | 
					
						
							|  |  |  |     const browser = await chromium.connectOverCDP({ wsEndpoint }); | 
					
						
							|  |  |  |     const c = browser.contexts()[0]; | 
					
						
							|  |  |  |     return c.pages()[0] || await c.waitForEvent('page'); | 
					
						
							| 
									
										
										
										
											2021-02-11 17:46:54 -08:00
										 |  |  |   }); | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export const folio = fixtures.build(); |