diff --git a/lib/buildTestUrl.js b/lib/buildTestUrl.js index 348200f..a8c51d9 100644 --- a/lib/buildTestUrl.js +++ b/lib/buildTestUrl.js @@ -1,9 +1,8 @@ -import { generateModuleId } from "./generateHash.js"; - export function buildTestUrl( { baseUrl, browserstack, flags, + flagHook, run, jsdom, port, @@ -19,9 +18,9 @@ export function buildTestUrl( { for ( const flag of allFlags ) { const [ key, value ] = flag.split( "=" ); - // Special handling for the module flag - if ( key === "module" ) { - query.append( "moduleId", generateModuleId( value ) ); + // Allow for custom flag handling + if ( flagHook ) { + query.append.apply( query, flagHook( key, value ) ); } else { query.append( key, value ?? "true" ); } @@ -38,5 +37,7 @@ export function buildTestUrl( { // BrowserStack supplies a custom domain for local testing, // which is especially necessary for iOS testing. const host = browserstack ? "bs-local.com" : "localhost"; - return `http://${ host }:${ port }${ baseUrl }${ testUrl }?${ query }`; + return `http://${ host }:${ port }${ baseUrl }${ testUrl }${ + query.size > 0 ? `?${ query }` : "" + }`; } diff --git a/reporter.js b/reporter.js index 8e2e83e..ceef537 100644 --- a/reporter.js +++ b/reporter.js @@ -113,10 +113,10 @@ export function reportTest( test, { fullBrowser, id } ) { } } -export function reportEnd( result, { fullBrowser, id, url } ) { +export function reportEnd( result, { descriptiveUrl, fullBrowser, id } ) { console.log( `\n\nTests finished in ${ prettyMs( result.runtime ) } ` + - `at ${ chalk.yellow( url ) } ` + + `at ${ chalk.yellow( descriptiveUrl ) } ` + `in ${ chalk.yellow( fullBrowser ) } (${ chalk.bold( id ) })...` ); console.log( diff --git a/run.js b/run.js index bd04451..e754fdf 100644 --- a/run.js +++ b/run.js @@ -6,7 +6,7 @@ import { localTunnel } from "./browserstack/local.js"; import { reportEnd, reportTest } from "./reporter.js"; import { createTestServer } from "./createTestServer.js"; import { buildTestUrl } from "./lib/buildTestUrl.js"; -import { generateHash } from "./lib/generateHash.js"; +import { generateHash, generateModuleId } from "./lib/generateHash.js"; import { getBrowserString } from "./lib/getBrowserString.js"; import { cleanupAllBrowsers, touchBrowser } from "./browsers.js"; import { @@ -27,6 +27,7 @@ export async function run( { concurrency, debug, flag: flags = [], + flagHook = defaultFlagHook, hardRetries, headless, middleware = [], @@ -248,15 +249,21 @@ export async function run( { `${ hashValue }-${ run }-${ testUrl }-${ fullBrowser }` ); - const url = buildTestUrl( { + const urlOptions = { baseUrl, browserstack, flags, run, jsdom: browser.browser === "jsdom", port, - reportId, testUrl + }; + + const descriptiveUrl = buildTestUrl( urlOptions ); + const url = buildTestUrl( { + ...urlOptions, + flagHook, + reportId } ); const options = { @@ -274,8 +281,9 @@ export async function run( { verbose }; - reports[ reportId ] = { + const report = { browser, + descriptiveUrl, flags, fullBrowser, headless, @@ -285,6 +293,8 @@ export async function run( { url }; + reports[ reportId ] = report; + addRun( url, browser, options ); } @@ -363,3 +373,12 @@ export async function run( { } } } + +function defaultFlagHook( key, value ) { + + // Convert module flag to module ID + if ( key === "module" ) { + return [ "moduleId", generateModuleId( value ) ]; + } + return [ key, value ]; +} diff --git a/selenium/createDriver.js b/selenium/createDriver.js index df12047..fd90ad8 100644 --- a/selenium/createDriver.js +++ b/selenium/createDriver.js @@ -81,7 +81,7 @@ export default async function createDriver( { browserName, headless, url, verbos .build(); if ( verbose ) { - const driverCapabilities = await driver.getCapabilities(); + const driverCapabilities = driver.getCapabilities(); const name = driverCapabilities.getBrowserName(); const version = driverCapabilities.getBrowserVersion(); console.log( `\nDriver created for ${ name } ${ version }` ); diff --git a/test/jquery b/test/jquery index 543b347..ad7c370 160000 --- a/test/jquery +++ b/test/jquery @@ -1 +1 @@ -Subproject commit 543b347cb0a0176a7e3805d3fa952505e69bfae7 +Subproject commit ad7c3706f3f59bc962e424aae0425ad3e967e090 diff --git a/test/jquery-migrate b/test/jquery-migrate index 62d2ffc..61c6fc9 160000 --- a/test/jquery-migrate +++ b/test/jquery-migrate @@ -1 +1 @@ -Subproject commit 62d2ffc4e5a89929feaecd6350dd3d35432a6b71 +Subproject commit 61c6fc90a46066c04ad3394c38164767a50ff62c diff --git a/test/jquery-ui b/test/jquery-ui index 01c6658..7b91cff 160000 --- a/test/jquery-ui +++ b/test/jquery-ui @@ -1 +1 @@ -Subproject commit 01c6658ebb4350533cd21b36d6acf72dbeb7780d +Subproject commit 7b91cffe580073045e6c5cd36537f3e10e8406ae