@@ -33,6 +33,7 @@ export async function run( {
3333 middleware = [ ] ,
3434 retries = 0 ,
3535 runId,
36+ testUrl : testUrls = [ ] ,
3637 verbose
3738} ) {
3839 if ( ! browserNames . length ) {
@@ -76,6 +77,7 @@ export async function run( {
7677 baseUrl,
7778 middleware,
7879 quiet : ! verbose ,
80+ testUrls,
7981 report : async ( message ) => {
8082 switch ( message . type ) {
8183 case "testEnd" : {
@@ -107,10 +109,7 @@ export async function run( {
107109 const reportId = message . id ;
108110 const report = reports [ reportId ] ;
109111 touchBrowser ( report . browser ) ;
110- const { failed, total } = reportEnd (
111- message . data ,
112- reports [ reportId ]
113- ) ;
112+ const { failed, total } = reportEnd ( message . data , reports [ reportId ] ) ;
114113 report . total = total ;
115114
116115 // Handle failure
@@ -243,10 +242,19 @@ export async function run( {
243242 }
244243 }
245244
246- function queueRun ( browser , isolatedFlag ) {
245+ function queueRun ( browser , { isolatedFlag, testUrl } = { } ) {
247246 const fullBrowser = getBrowserString ( browser , headless ) ;
248- const reportId = generateHash ( `${ hashValue } -${ isolatedFlag } -${ fullBrowser } ` ) ;
249- reports [ reportId ] = { browser, flags, headless, id : reportId , isolatedFlag } ;
247+ const reportId = generateHash (
248+ `${ hashValue } -${ isolatedFlag } -${ testUrl } -${ fullBrowser } `
249+ ) ;
250+ reports [ reportId ] = {
251+ browser,
252+ flags,
253+ headless,
254+ id : reportId ,
255+ isolatedFlag,
256+ testUrl
257+ } ;
250258
251259 const url = buildTestUrl ( {
252260 baseUrl,
@@ -255,7 +263,8 @@ export async function run( {
255263 isolatedFlag,
256264 jsdom : browser . browser === "jsdom" ,
257265 port,
258- reportId
266+ reportId,
267+ testUrl
259268 } ) ;
260269
261270 const options = {
@@ -268,6 +277,7 @@ export async function run( {
268277 isolatedFlag,
269278 reportId,
270279 runId,
280+ testUrl,
271281 tunnelId,
272282 verbose
273283 } ;
@@ -278,7 +288,17 @@ export async function run( {
278288 for ( const browser of browsers ) {
279289 if ( isolatedFlags . length > 0 ) {
280290 isolatedFlags . forEach ( ( isolatedFlag ) => {
281- queueRun ( browser , isolatedFlag ) ;
291+ if ( testUrls . length > 0 ) {
292+ testUrls . forEach ( ( testUrl ) => {
293+ queueRun ( browser , { isolatedFlag, testUrl } ) ;
294+ } ) ;
295+ } else {
296+ queueRun ( browser , { isolatedFlag } ) ;
297+ }
298+ } ) ;
299+ } else if ( testUrls . length > 0 ) {
300+ testUrls . forEach ( ( testUrl ) => {
301+ queueRun ( browser , { testUrl } ) ;
282302 } ) ;
283303 } else {
284304 queueRun ( browser ) ;
@@ -306,11 +326,9 @@ export async function run( {
306326 ] ;
307327 console . error (
308328 chalk . red (
309- `No tests were run for page with flags "${
310- reportFlags . join ( "&" )
311- } " in ${
312- getBrowserString ( report . browser )
313- } (${ report . id } )`
329+ `No tests were run for page with flags "${ reportFlags . join (
330+ "&"
331+ ) } " in ${ getBrowserString ( report . browser ) } (${ report . id } )`
314332 )
315333 ) ;
316334 }
0 commit comments