@@ -33,6 +33,7 @@ export async function run( {
33
33
middleware = [ ] ,
34
34
retries = 0 ,
35
35
runId,
36
+ testUrl : testUrls = [ ] ,
36
37
verbose
37
38
} ) {
38
39
if ( ! browserNames . length ) {
@@ -76,6 +77,7 @@ export async function run( {
76
77
baseUrl,
77
78
middleware,
78
79
quiet : ! verbose ,
80
+ testUrls,
79
81
report : async ( message ) => {
80
82
switch ( message . type ) {
81
83
case "testEnd" : {
@@ -107,10 +109,7 @@ export async function run( {
107
109
const reportId = message . id ;
108
110
const report = reports [ reportId ] ;
109
111
touchBrowser ( report . browser ) ;
110
- const { failed, total } = reportEnd (
111
- message . data ,
112
- reports [ reportId ]
113
- ) ;
112
+ const { failed, total } = reportEnd ( message . data , reports [ reportId ] ) ;
114
113
report . total = total ;
115
114
116
115
// Handle failure
@@ -243,10 +242,19 @@ export async function run( {
243
242
}
244
243
}
245
244
246
- function queueRun ( browser , isolatedFlag ) {
245
+ function queueRun ( browser , { isolatedFlag, testUrl } = { } ) {
247
246
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
+ } ;
250
258
251
259
const url = buildTestUrl ( {
252
260
baseUrl,
@@ -255,7 +263,8 @@ export async function run( {
255
263
isolatedFlag,
256
264
jsdom : browser . browser === "jsdom" ,
257
265
port,
258
- reportId
266
+ reportId,
267
+ testUrl
259
268
} ) ;
260
269
261
270
const options = {
@@ -268,6 +277,7 @@ export async function run( {
268
277
isolatedFlag,
269
278
reportId,
270
279
runId,
280
+ testUrl,
271
281
tunnelId,
272
282
verbose
273
283
} ;
@@ -278,7 +288,17 @@ export async function run( {
278
288
for ( const browser of browsers ) {
279
289
if ( isolatedFlags . length > 0 ) {
280
290
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 } ) ;
282
302
} ) ;
283
303
} else {
284
304
queueRun ( browser ) ;
@@ -306,11 +326,9 @@ export async function run( {
306
326
] ;
307
327
console . error (
308
328
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 } )`
314
332
)
315
333
) ;
316
334
}
0 commit comments