11'use strict'
22
3+ const { getBrowserContext } = require ( '@browserless/test' )
34const PCancelable = require ( 'p-cancelable' )
45const cheerio = require ( 'cheerio' )
56const test = require ( 'ava' )
67
7- const { initBrowserless , runServer, prettyHtml } = require ( './helpers' )
8+ const { runServer, prettyHtml } = require ( './helpers' )
89const getHTML = require ( '..' )
910
10- const getBrowserless = initBrowserless ( test )
11-
1211const wait = async ( promise , prop ) => {
1312 const res = await promise
1413 return prop ? res [ prop ] : res
@@ -37,17 +36,23 @@ test('promise is cancelable', async t => {
3736test ( 'reachable URL' , async t => {
3837 const url = 'https://example.com'
3938 const [ prerenderDisabled , prerenderEnabled ] = await Promise . all ( [
40- getHTML ( url , { prerender : false , getBrowserless } ) ,
39+ getHTML ( url , {
40+ prerender : false ,
41+ getBrowserless : ( ) => getBrowserContext ( t )
42+ } ) ,
4143 getHTML ( url , {
4244 prerender : true ,
43- getBrowserless,
45+ getBrowserless : ( ) => getBrowserContext ( t ) ,
4446 puppeteerOpts : { adblock : false }
4547 } )
4648 ] )
4749
4850 t . is (
4951 await wait (
50- getHTML ( url , { prerender : false , getBrowserless } ) ,
52+ getHTML ( url , {
53+ prerender : false ,
54+ getBrowserless : ( ) => getBrowserContext ( t )
55+ } ) ,
5156 'statusCode'
5257 ) ,
5358 200
@@ -56,7 +61,7 @@ test('reachable URL', async t => {
5661 await wait (
5762 getHTML ( url , {
5863 prerender : true ,
59- getBrowserless,
64+ getBrowserless : ( ) => getBrowserContext ( t ) ,
6065 puppeteerOpts : { adblock : false }
6166 } ) ,
6267 'statusCode'
@@ -82,12 +87,12 @@ test('timeout URL', async t => {
8287 const [ prerenderDisabled , prerenderEnabled ] = await Promise . all ( [
8388 getHTML ( url , {
8489 prerender : false ,
85- getBrowserless,
90+ getBrowserless : ( ) => getBrowserContext ( t ) ,
8691 gotOpts : { timeout : 1000 }
8792 } ) ,
8893 getHTML ( url , {
8994 prerender : true ,
90- getBrowserless,
95+ getBrowserless : ( ) => getBrowserContext ( t ) ,
9196 puppeteerOpts : { timeout : 2000 , adblock : false }
9297 } )
9398 ] )
@@ -102,10 +107,13 @@ test('unreachable URL', async t => {
102107 const url = 'https://notexisturl.dev'
103108
104109 const [ prerenderDisabled , prerenderEnabled ] = await Promise . all ( [
105- getHTML ( url , { prerender : false , getBrowserless } ) ,
110+ getHTML ( url , {
111+ prerender : false ,
112+ getBrowserless : ( ) => getBrowserContext ( t )
113+ } ) ,
106114 getHTML ( url , {
107115 prerender : true ,
108- getBrowserless,
116+ getBrowserless : ( ) => getBrowserContext ( t ) ,
109117 puppeteerOpts : { adblock : false }
110118 } )
111119 ] )
@@ -120,7 +128,7 @@ test('from audio URL', async t => {
120128 const targetUrl =
121129 'https://audiodemos.github.io/vctk_set0/embedadapt_100sample.wav'
122130 const { url, stats, html } = await getHTML ( targetUrl , {
123- getBrowserless,
131+ getBrowserless : ( ) => getBrowserContext ( t ) ,
124132 prerender : false
125133 } )
126134
@@ -131,7 +139,9 @@ test('from audio URL', async t => {
131139
132140test ( 'from image URL' , async t => {
133141 const targetUrl = 'https://kikobeats.com/images/avatar.jpg'
134- const { url, stats, html } = await getHTML ( targetUrl , { getBrowserless } )
142+ const { url, stats, html } = await getHTML ( targetUrl , {
143+ getBrowserless : ( ) => getBrowserContext ( t )
144+ } )
135145
136146 t . is ( stats . mode , 'fetch' )
137147 t . is ( url , targetUrl )
@@ -144,15 +154,19 @@ test('from image URL', async t => {
144154
145155test ( 'from SVG image URL' , async t => {
146156 const targetUrl = 'https://cdn.microlink.io/file-examples/sample.svg'
147- const { stats } = await getHTML ( targetUrl , { getBrowserless } )
157+ const { stats } = await getHTML ( targetUrl , {
158+ getBrowserless : ( ) => getBrowserContext ( t )
159+ } )
148160 t . true ( stats . timing < 3000 )
149161 t . is ( stats . mode , 'fetch' )
150162} )
151163
152164test ( 'from big image URL' , async t => {
153165 const targetUrl =
154166 'https://static.jutarnji.hr/images/live-multimedia/binary/2016/6/17/10/iStock_82744687_XXLARGE.jpg'
155- const { stats } = await getHTML ( targetUrl , { getBrowserless } )
167+ const { stats } = await getHTML ( targetUrl , {
168+ getBrowserless : ( ) => getBrowserContext ( t )
169+ } )
156170 t . true ( stats . timing < 3000 )
157171 t . is ( stats . mode , 'fetch' )
158172} )
@@ -162,7 +176,7 @@ test('from URL with no content type', async t => {
162176 res . end ( '<!doctype html><title>.</title>' )
163177 } )
164178 const { stats } = await getHTML ( targetUrl , {
165- getBrowserless,
179+ getBrowserless : ( ) => getBrowserContext ( t ) ,
166180 prerender : false
167181 } )
168182 t . is ( stats . mode , 'fetch' )
@@ -171,7 +185,9 @@ test('from URL with no content type', async t => {
171185test ( 'from image URL that returns HTML markup' , async t => {
172186 const targetUrl =
173187 'https://www.europapress.es/chance/gente/%7B%7BrutaFoto%7D%7D%7B%7Bfechor%7D%7D_%7B%7BanchoFoto%7D%7D_%7B%7BaltoFoto%7D%7D%7B%7BversionFoto%7D%7D.jpg'
174- const { stats } = await getHTML ( targetUrl , { getBrowserless } )
188+ const { stats } = await getHTML ( targetUrl , {
189+ getBrowserless : ( ) => getBrowserContext ( t )
190+ } )
175191 t . true ( stats . timing < 3000 )
176192 t . is ( stats . mode , 'fetch' )
177193} )
@@ -180,7 +196,7 @@ test('from video URL', async t => {
180196 const targetUrl = 'https://cdn.microlink.io/file-examples/sample.mp4'
181197 const { url, stats, html } = await getHTML ( targetUrl , {
182198 prerender : false ,
183- getBrowserless
199+ getBrowserless : ( ) => getBrowserContext ( t )
184200 } )
185201
186202 t . is ( stats . mode , 'fetch' )
@@ -192,7 +208,7 @@ test('from bad SSL URL', async t => {
192208 const targetUrl = 'https://self-signed.badssl.com/'
193209 const { url, stats, html } = await getHTML ( targetUrl , {
194210 prerender : false ,
195- getBrowserless,
211+ getBrowserless : ( ) => getBrowserContext ( t ) ,
196212 gotOpts : {
197213 https : { rejectUnauthorized : false }
198214 }
0 commit comments