mirror of
				https://github.com/microsoft/playwright.git
				synced 2025-06-26 21:40:17 +00:00 
			
		
		
		
	chore: have a socket timeout when downloading browsers (#17187)
This commit is contained in:
		
							parent
							
								
									22c092db10
								
							
						
					
					
						commit
						1e517731ef
					
				| @ -45,6 +45,7 @@ function downloadFile(url: string, destinationPath: string, options: DownloadFil | |||||||
|     headers: options.userAgent ? { |     headers: options.userAgent ? { | ||||||
|       'User-Agent': options.userAgent, |       'User-Agent': options.userAgent, | ||||||
|     } : undefined, |     } : undefined, | ||||||
|  |     timeout: 10_000, | ||||||
|   }, response => { |   }, response => { | ||||||
|     log(`-- response status code: ${response.statusCode}`); |     log(`-- response status code: ${response.statusCode}`); | ||||||
|     if (response.statusCode !== 200) { |     if (response.statusCode !== 200) { | ||||||
|  | |||||||
| @ -0,0 +1,30 @@ | |||||||
|  | /** | ||||||
|  |  * 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 http from 'http'; | ||||||
|  | import type { AddressInfo } from 'net'; | ||||||
|  | import { test, expect } from './npmTest'; | ||||||
|  | 
 | ||||||
|  | test(`playwright cdn should race with a timeout`, async ({ exec }) => { | ||||||
|  |   test.slow(); // This test will timeout on all the 3 fallback CDNs -> 30 seconds duration.
 | ||||||
|  |   const server = http.createServer(() => {}); | ||||||
|  |   await new Promise<void>(resolve => server.listen(0, resolve)); | ||||||
|  |   try { | ||||||
|  |     const result = await exec('npm i --foreground-scripts playwright', { env: { PLAYWRIGHT_DOWNLOAD_HOST: `http://127.0.0.1:${(server.address() as AddressInfo).port}`, DEBUG: 'pw:install' }, expectToExitWithError: true }); | ||||||
|  |     expect(result).toContain(`timed out after 10000ms`); | ||||||
|  |   } finally { | ||||||
|  |     await new Promise(resolve => server.close(resolve)); | ||||||
|  |   } | ||||||
|  | }); | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Max Schmitt
						Max Schmitt