diff --git a/docs/api.json b/docs/api.json index 321aaf0..8a62c59 100644 --- a/docs/api.json +++ b/docs/api.json @@ -15,7 +15,7 @@ "isExported": true, "__visited__": true }, - "originalName": "src\\BrowserStackTunnel.ts", + "originalName": "src/BrowserStackTunnel.ts", "children": [ { "id": 234, @@ -125,7 +125,7 @@ }, "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 3, "character": 25 } @@ -661,7 +661,7 @@ }, "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 4, "character": 26 } @@ -2216,7 +2216,7 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 12, "character": 11 } @@ -2404,12 +2404,12 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 7, "character": 8 }, { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 8, "character": 8 } @@ -2644,12 +2644,12 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 9, "character": 6 }, { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 10, "character": 6 } @@ -2716,7 +2716,7 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 11, "character": 7 } @@ -3882,7 +3882,7 @@ "isExported": true, "__visited__": true }, - "originalName": "src\\CrossBrowserTestingTunnel.ts", + "originalName": "src/CrossBrowserTestingTunnel.ts", "children": [ { "id": 371, @@ -3992,7 +3992,7 @@ }, "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 3, "character": 25 } @@ -4508,7 +4508,7 @@ }, "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 4, "character": 26 } @@ -6020,7 +6020,7 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 12, "character": 11 } @@ -6200,12 +6200,12 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 7, "character": 8 }, { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 8, "character": 8 } @@ -6440,12 +6440,12 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 9, "character": 6 }, { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 10, "character": 6 } @@ -6512,7 +6512,7 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 11, "character": 7 } @@ -7569,7 +7569,7 @@ "isExported": true, "__visited__": true }, - "originalName": "src\\NullTunnel.ts", + "originalName": "src/NullTunnel.ts", "children": [ { "id": 501, @@ -7684,7 +7684,7 @@ }, "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 3, "character": 25 } @@ -8214,7 +8214,7 @@ }, "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 4, "character": 26 } @@ -9618,7 +9618,7 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 12, "character": 11 } @@ -9782,12 +9782,12 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 7, "character": 8 }, { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 8, "character": 8 } @@ -10022,12 +10022,12 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 9, "character": 6 }, { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 10, "character": 6 } @@ -10094,7 +10094,7 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 11, "character": 7 } @@ -10377,7 +10377,7 @@ "isExported": true, "__visited__": true }, - "originalName": "src\\SauceLabsTunnel.ts", + "originalName": "src/SauceLabsTunnel.ts", "children": [ { "id": 602, @@ -10487,7 +10487,7 @@ }, "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 3, "character": 25 } @@ -11053,7 +11053,7 @@ }, "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 4, "character": 26 } @@ -13046,7 +13046,7 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 12, "character": 11 } @@ -13234,12 +13234,12 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 7, "character": 8 }, { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 8, "character": 8 } @@ -13474,12 +13474,12 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 9, "character": 6 }, { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 10, "character": 6 } @@ -13546,7 +13546,7 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 11, "character": 7 } @@ -15048,7 +15048,7 @@ "isExported": true, "__visited__": true }, - "originalName": "src\\SeleniumTunnel.ts", + "originalName": "src/SeleniumTunnel.ts", "children": [ { "id": 929, @@ -17098,7 +17098,7 @@ }, "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 3, "character": 25 } @@ -17629,7 +17629,7 @@ }, "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 4, "character": 26 } @@ -19278,7 +19278,7 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 12, "character": 11 } @@ -19458,12 +19458,12 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 7, "character": 8 }, { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 8, "character": 8 } @@ -19698,12 +19698,12 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 9, "character": 6 }, { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 10, "character": 6 } @@ -19770,7 +19770,7 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 11, "character": 7 } @@ -22545,7 +22545,7 @@ "isExported": true, "__visited__": true }, - "originalName": "src\\TestingBotTunnel.ts", + "originalName": "src/TestingBotTunnel.ts", "children": [ { "id": 1046, @@ -22655,7 +22655,7 @@ }, "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 3, "character": 25 } @@ -23171,7 +23171,7 @@ }, "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 4, "character": 26 } @@ -24763,7 +24763,7 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 12, "character": 11 } @@ -24951,12 +24951,12 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 7, "character": 8 }, { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 8, "character": 8 } @@ -25191,12 +25191,12 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 9, "character": 6 }, { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 10, "character": 6 } @@ -25263,7 +25263,7 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 11, "character": 7 } @@ -26433,7 +26433,7 @@ "isExported": true, "__visited__": true }, - "originalName": "src\\Tunnel.ts", + "originalName": "src/Tunnel.ts", "children": [ { "id": 54, @@ -26540,7 +26540,7 @@ }, "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 3, "character": 25 } @@ -27005,7 +27005,7 @@ }, "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 4, "character": 26 } @@ -28225,7 +28225,7 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 12, "character": 11 } @@ -28403,12 +28403,12 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 7, "character": 8 }, { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 8, "character": 8 } @@ -28633,12 +28633,12 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 9, "character": 6 }, { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 10, "character": 6 } @@ -28705,7 +28705,7 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 11, "character": 7 } @@ -29019,7 +29019,7 @@ { "type": "reference", "name": "WebDriverTunnel", - "id": 1409 + "id": 1393 } ], "implementedTypes": [ @@ -30122,7 +30122,7 @@ }, "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 24, "character": 17 } @@ -30906,11 +30906,6 @@ "type": "reference", "name": "TestingBotProperties", "id": 1156 - }, - { - "type": "reference", - "name": "WebDriverTunnelOptions", - "id": 1378 } ], "implementedBy": [ @@ -30952,7 +30947,7 @@ { "type": "reference", "name": "WebDriverTunnel", - "id": 1409 + "id": 1393 } ] }, @@ -31138,10 +31133,10 @@ "isExported": true, "__visited__": true }, - "originalName": "src\\WebDriverTunnel.ts", + "originalName": "src/WebDriverTunnel.ts", "children": [ { - "id": 1409, + "id": 1393, "name": "WebDriverTunnel", "kind": 128, "kindString": "Class", @@ -31155,7 +31150,7 @@ }, "typeParameter": [ { - "id": 1488, + "id": 1482, "name": "O", "kind": 131072, "kindString": "Type parameter", @@ -31176,7 +31171,7 @@ ], "children": [ { - "id": 1410, + "id": 1404, "name": "constructor", "kind": 512, "kindString": "Constructor", @@ -31186,7 +31181,7 @@ }, "signatures": [ { - "id": 1411, + "id": 1405, "name": "new WebDriverTunnel", "kind": 16384, "kindString": "Constructor signature", @@ -31195,7 +31190,7 @@ }, "parameters": [ { - "id": 1412, + "id": 1406, "name": "options", "kind": 32768, "kindString": "Parameter", @@ -31212,7 +31207,7 @@ "type": { "type": "reference", "name": "WebDriverTunnel", - "id": 1409 + "id": 1393 }, "overwrites": { "type": "reference", @@ -31225,7 +31220,7 @@ { "fileName": "WebDriverTunnel.ts", "line": 93, - "character": 31 + "character": 23 } ], "overwrites": { @@ -31235,7 +31230,7 @@ } }, { - "id": 1489, + "id": 1483, "name": "__typeMap__", "kind": 1024, "kindString": "Property", @@ -31247,7 +31242,7 @@ }, "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 3, "character": 25 } @@ -31262,7 +31257,7 @@ } }, { - "id": 1449, + "id": 1443, "name": "_handle", "kind": 1024, "kindString": "Property", @@ -31298,7 +31293,7 @@ } }, { - "id": 1450, + "id": 1444, "name": "_process", "kind": 1024, "kindString": "Property", @@ -31334,7 +31329,7 @@ } }, { - "id": 1447, + "id": 1441, "name": "_startTask", "kind": 1024, "kindString": "Property", @@ -31376,7 +31371,7 @@ } }, { - "id": 1451, + "id": 1445, "name": "_state", "kind": 1024, "kindString": "Property", @@ -31420,7 +31415,7 @@ } }, { - "id": 1448, + "id": 1442, "name": "_stopTask", "kind": 1024, "kindString": "Property", @@ -31471,7 +31466,7 @@ } }, { - "id": 1431, + "id": 1425, "name": "accessKey", "kind": 1024, "kindString": "Property", @@ -31514,7 +31509,7 @@ } }, { - "id": 1433, + "id": 1427, "name": "architecture", "kind": 1024, "kindString": "Property", @@ -31548,7 +31543,7 @@ } }, { - "id": 1434, + "id": 1428, "name": "auth", "kind": 1024, "kindString": "Property", @@ -31591,7 +31586,7 @@ } }, { - "id": 1446, + "id": 1440, "name": "basePath", "kind": 1024, "kindString": "Property", @@ -31626,7 +31621,53 @@ } }, { - "id": 1430, + "id": 1400, + "name": "driverDirectory", + "kind": 1024, + "kindString": "Property", + "flags": { + "isExported": true, + "__visited__": true + }, + "sources": [ + { + "fileName": "WebDriverTunnel.ts", + "line": 90, + "character": 17 + } + ], + "type": { + "type": "intrinsic", + "name": "string" + } + }, + { + "id": 1401, + "name": "drivers", + "kind": 1024, + "kindString": "Property", + "flags": { + "isExported": true, + "__visited__": true + }, + "sources": [ + { + "fileName": "WebDriverTunnel.ts", + "line": 91, + "character": 9 + } + ], + "type": { + "type": "array", + "elementType": { + "type": "reference", + "name": "WebDriverTunnelDownloadOptions", + "id": 1384 + } + } + }, + { + "id": 1424, "name": "environmentUrl", "kind": 1024, "kindString": "Property", @@ -31664,7 +31705,7 @@ } }, { - "id": 1435, + "id": 1429, "name": "executable", "kind": 1024, "kindString": "Property", @@ -31698,7 +31739,7 @@ } }, { - "id": 1436, + "id": 1430, "name": "hostname", "kind": 1024, "kindString": "Property", @@ -31732,7 +31773,28 @@ } }, { - "id": 1490, + "id": 1399, + "name": "lastUsedPort", + "kind": 1024, + "kindString": "Property", + "flags": { + "isExported": true, + "__visited__": true + }, + "sources": [ + { + "fileName": "WebDriverTunnel.ts", + "line": 89, + "character": 14 + } + ], + "type": { + "type": "intrinsic", + "name": "number" + } + }, + { + "id": 1484, "name": "listenersMap", "kind": 1024, "kindString": "Property", @@ -31743,7 +31805,7 @@ }, "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 4, "character": 26 } @@ -31804,7 +31866,28 @@ } }, { - "id": 1437, + "id": 1402, + "name": "maxConnectAttempts", + "kind": 1024, + "kindString": "Property", + "flags": { + "isExported": true, + "__visited__": true + }, + "sources": [ + { + "fileName": "WebDriverTunnel.ts", + "line": 92, + "character": 20 + } + ], + "type": { + "type": "intrinsic", + "name": "number" + } + }, + { + "id": 1431, "name": "pathname", "kind": 1024, "kindString": "Property", @@ -31838,7 +31921,7 @@ } }, { - "id": 1438, + "id": 1432, "name": "platform", "kind": 1024, "kindString": "Property", @@ -31872,7 +31955,7 @@ } }, { - "id": 1439, + "id": 1433, "name": "port", "kind": 1024, "kindString": "Property", @@ -31906,7 +31989,7 @@ } }, { - "id": 1440, + "id": 1434, "name": "protocol", "kind": 1024, "kindString": "Property", @@ -31940,7 +32023,7 @@ } }, { - "id": 1441, + "id": 1435, "name": "proxy", "kind": 1024, "kindString": "Property", @@ -31983,7 +32066,28 @@ } }, { - "id": 1443, + "id": 1403, + "name": "startupWait", + "kind": 1024, + "kindString": "Property", + "flags": { + "isExported": true, + "__visited__": true + }, + "sources": [ + { + "fileName": "WebDriverTunnel.ts", + "line": 93, + "character": 13 + } + ], + "type": { + "type": "intrinsic", + "name": "number" + } + }, + { + "id": 1437, "name": "tunnelId", "kind": 1024, "kindString": "Property", @@ -32026,7 +32130,7 @@ } }, { - "id": 1442, + "id": 1436, "name": "tunnelProxy", "kind": 1024, "kindString": "Property", @@ -32070,7 +32174,7 @@ } }, { - "id": 1444, + "id": 1438, "name": "url", "kind": 1024, "kindString": "Property", @@ -32104,7 +32208,7 @@ } }, { - "id": 1432, + "id": 1426, "name": "username", "kind": 1024, "kindString": "Property", @@ -32147,7 +32251,7 @@ } }, { - "id": 1445, + "id": 1439, "name": "verbose", "kind": 1024, "kindString": "Property", @@ -32181,7 +32285,96 @@ } }, { - "id": 1452, + "id": 1394, + "name": "webDriverConfigs", + "kind": 1024, + "kindString": "Property", + "flags": { + "isExported": true, + "__visited__": true + }, + "sources": [ + { + "fileName": "WebDriverTunnel.ts", + "line": 87, + "character": 27 + } + ], + "type": { + "type": "reflection", + "declaration": { + "id": 1395, + "name": "__type", + "kind": 65536, + "kindString": "Type literal", + "flags": { + "__visited__": true + }, + "indexSignature": [ + { + "id": 1396, + "name": "__index", + "kind": 8192, + "kindString": "Index signature", + "flags": { + "__visited__": true + }, + "parameters": [ + { + "id": 1397, + "name": "key", + "kind": 32768, + "kindString": "Parameter", + "flags": { + "__visited__": true + }, + "type": { + "type": "intrinsic", + "name": "string" + } + } + ], + "type": { + "type": "reference", + "name": "WebDriverConfig", + "id": 1182 + } + } + ], + "sources": [ + { + "fileName": "WebDriverTunnel.ts", + "line": 87, + "character": 28 + } + ] + } + } + }, + { + "id": 1398, + "name": "webDriverProxy", + "kind": 1024, + "kindString": "Property", + "flags": { + "isExported": true, + "__visited__": true + }, + "sources": [ + { + "fileName": "WebDriverTunnel.ts", + "line": 88, + "character": 16 + } + ], + "type": { + "type": "reference", + "name": "WebDriverProxy", + "id": 1352 + } + }, + { + "id": 1446, "name": "clientUrl", "kind": 262144, "kindString": "Accessor", @@ -32194,7 +32387,7 @@ }, "getSignature": [ { - "id": 1453, + "id": 1447, "name": "__get", "kind": 524288, "kindString": "Get signature", @@ -32229,7 +32422,7 @@ } }, { - "id": 1413, + "id": 1407, "name": "directory", "kind": 262144, "kindString": "Accessor", @@ -32239,7 +32432,7 @@ }, "getSignature": [ { - "id": 1414, + "id": 1408, "name": "__get", "kind": 524288, "kindString": "Get signature", @@ -32276,7 +32469,7 @@ } }, { - "id": 1454, + "id": 1448, "name": "extraCapabilities", "kind": 262144, "kindString": "Accessor", @@ -32289,7 +32482,7 @@ }, "getSignature": [ { - "id": 1455, + "id": 1449, "name": "__get", "kind": 524288, "kindString": "Get signature", @@ -32324,7 +32517,7 @@ } }, { - "id": 1415, + "id": 1409, "name": "isDownloaded", "kind": 262144, "kindString": "Accessor", @@ -32334,7 +32527,7 @@ }, "getSignature": [ { - "id": 1416, + "id": 1410, "name": "__get", "kind": 524288, "kindString": "Get signature", @@ -32366,7 +32559,7 @@ } }, { - "id": 1456, + "id": 1450, "name": "isRunning", "kind": 262144, "kindString": "Accessor", @@ -32379,7 +32572,7 @@ }, "getSignature": [ { - "id": 1457, + "id": 1451, "name": "__get", "kind": 524288, "kindString": "Get signature", @@ -32414,7 +32607,7 @@ } }, { - "id": 1458, + "id": 1452, "name": "isStarting", "kind": 262144, "kindString": "Accessor", @@ -32427,7 +32620,7 @@ }, "getSignature": [ { - "id": 1459, + "id": 1453, "name": "__get", "kind": 524288, "kindString": "Get signature", @@ -32462,7 +32655,7 @@ } }, { - "id": 1460, + "id": 1454, "name": "isStopping", "kind": 262144, "kindString": "Accessor", @@ -32475,7 +32668,7 @@ }, "getSignature": [ { - "id": 1461, + "id": 1455, "name": "__get", "kind": 524288, "kindString": "Get signature", @@ -32510,7 +32703,7 @@ } }, { - "id": 1468, + "id": 1462, "name": "_downloadFile", "kind": 2048, "kindString": "Method", @@ -32521,7 +32714,7 @@ }, "signatures": [ { - "id": 1469, + "id": 1463, "name": "_downloadFile", "kind": 4096, "kindString": "Call signature", @@ -32530,7 +32723,7 @@ }, "parameters": [ { - "id": 1470, + "id": 1464, "name": "url", "kind": 32768, "kindString": "Parameter", @@ -32552,7 +32745,7 @@ } }, { - "id": 1471, + "id": 1465, "name": "proxy", "kind": 32768, "kindString": "Parameter", @@ -32574,7 +32767,7 @@ } }, { - "id": 1472, + "id": 1466, "name": "options", "kind": 32768, "kindString": "Parameter", @@ -32620,7 +32813,7 @@ } }, { - "id": 1473, + "id": 1467, "name": "_makeArgs", "kind": 2048, "kindString": "Method", @@ -32631,7 +32824,7 @@ }, "signatures": [ { - "id": 1474, + "id": 1468, "name": "_makeArgs", "kind": 4096, "kindString": "Call signature", @@ -32645,7 +32838,7 @@ }, "parameters": [ { - "id": 1475, + "id": 1469, "name": "_values", "kind": 32768, "kindString": "Parameter", @@ -32690,7 +32883,7 @@ } }, { - "id": 1476, + "id": 1470, "name": "_makeChild", "kind": 2048, "kindString": "Method", @@ -32701,7 +32894,7 @@ }, "signatures": [ { - "id": 1477, + "id": 1471, "name": "_makeChild", "kind": 4096, "kindString": "Call signature", @@ -32715,7 +32908,7 @@ }, "parameters": [ { - "id": 1478, + "id": 1472, "name": "executor", "kind": 32768, "kindString": "Parameter", @@ -32729,7 +32922,7 @@ } }, { - "id": 1479, + "id": 1473, "name": "values", "kind": 32768, "kindString": "Parameter", @@ -32771,7 +32964,7 @@ } }, { - "id": 1480, + "id": 1474, "name": "_makeOptions", "kind": 2048, "kindString": "Method", @@ -32782,7 +32975,7 @@ }, "signatures": [ { - "id": 1481, + "id": 1475, "name": "_makeOptions", "kind": 4096, "kindString": "Call signature", @@ -32796,7 +32989,7 @@ }, "parameters": [ { - "id": 1482, + "id": 1476, "name": "_values", "kind": 32768, "kindString": "Parameter", @@ -32816,7 +33009,7 @@ "type": { "type": "reflection", "declaration": { - "id": 1483, + "id": 1477, "name": "__type", "kind": 65536, "kindString": "Type literal", @@ -32825,7 +33018,7 @@ }, "children": [ { - "id": 1484, + "id": 1478, "name": "env", "kind": 32, "kindString": "Variable", @@ -32851,7 +33044,7 @@ "title": "Variables", "kind": 32, "children": [ - 1484 + 1478 ] } ] @@ -32878,7 +33071,7 @@ } }, { - "id": 1485, + "id": 1479, "name": "_normalizeEnvironment", "kind": 2048, "kindString": "Method", @@ -32889,7 +33082,7 @@ }, "signatures": [ { - "id": 1486, + "id": 1480, "name": "_normalizeEnvironment", "kind": 4096, "kindString": "Call signature", @@ -32902,7 +33095,7 @@ }, "parameters": [ { - "id": 1487, + "id": 1481, "name": "environment", "kind": 32768, "kindString": "Parameter", @@ -32944,7 +33137,7 @@ } }, { - "id": 1420, + "id": 1414, "name": "_postDownloadFile", "kind": 2048, "kindString": "Method", @@ -32955,7 +33148,7 @@ }, "signatures": [ { - "id": 1421, + "id": 1415, "name": "_postDownloadFile", "kind": 4096, "kindString": "Call signature", @@ -32964,7 +33157,7 @@ }, "parameters": [ { - "id": 1422, + "id": 1416, "name": "data", "kind": 32768, "kindString": "Parameter", @@ -32977,7 +33170,7 @@ } }, { - "id": 1423, + "id": 1417, "name": "options", "kind": 32768, "kindString": "Parameter", @@ -32987,7 +33180,7 @@ "type": { "type": "reference", "name": "WebDriverDowloadFileOptions", - "id": 1405 + "id": 1389 } } ], @@ -33011,7 +33204,7 @@ "sources": [ { "fileName": "WebDriverTunnel.ts", - "line": 210, + "line": 207, "character": 29 } ], @@ -33022,7 +33215,7 @@ } }, { - "id": 1424, + "id": 1418, "name": "_start", "kind": 2048, "kindString": "Method", @@ -33033,7 +33226,7 @@ }, "signatures": [ { - "id": 1425, + "id": 1419, "name": "_start", "kind": 4096, "kindString": "Call signature", @@ -33064,7 +33257,7 @@ "sources": [ { "fileName": "WebDriverTunnel.ts", - "line": 311, + "line": 306, "character": 18 } ], @@ -33075,7 +33268,7 @@ } }, { - "id": 1426, + "id": 1420, "name": "_stop", "kind": 2048, "kindString": "Method", @@ -33086,7 +33279,7 @@ }, "signatures": [ { - "id": 1427, + "id": 1421, "name": "_stop", "kind": 4096, "kindString": "Call signature", @@ -33117,7 +33310,7 @@ "sources": [ { "fileName": "WebDriverTunnel.ts", - "line": 321, + "line": 316, "character": 17 } ], @@ -33128,7 +33321,7 @@ } }, { - "id": 1508, + "id": 1502, "name": "destroy", "kind": 2048, "kindString": "Method", @@ -33138,7 +33331,7 @@ }, "signatures": [ { - "id": 1509, + "id": 1503, "name": "destroy", "kind": 4096, "kindString": "Call signature", @@ -33163,7 +33356,7 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 12, "character": 11 } @@ -33174,7 +33367,7 @@ } }, { - "id": 1417, + "id": 1411, "name": "download", "kind": 2048, "kindString": "Method", @@ -33184,7 +33377,7 @@ }, "signatures": [ { - "id": 1418, + "id": 1412, "name": "download", "kind": 4096, "kindString": "Call signature", @@ -33193,7 +33386,7 @@ }, "parameters": [ { - "id": 1419, + "id": 1413, "name": "forceDownload", "kind": 32768, "kindString": "Parameter", @@ -33227,7 +33420,7 @@ "sources": [ { "fileName": "WebDriverTunnel.ts", - "line": 173, + "line": 176, "character": 10 } ], @@ -33238,7 +33431,7 @@ } }, { - "id": 1491, + "id": 1485, "name": "emit", "kind": 2048, "kindString": "Method", @@ -33248,7 +33441,7 @@ }, "signatures": [ { - "id": 1492, + "id": 1486, "name": "emit", "kind": 4096, "kindString": "Call signature", @@ -33257,7 +33450,7 @@ }, "typeParameter": [ { - "id": 1493, + "id": 1487, "name": "K", "kind": 131072, "kindString": "Type parameter", @@ -33276,7 +33469,7 @@ ], "parameters": [ { - "id": 1494, + "id": 1488, "name": "event", "kind": 32768, "kindString": "Parameter", @@ -33299,7 +33492,7 @@ } }, { - "id": 1495, + "id": 1489, "name": "emit", "kind": 4096, "kindString": "Call signature", @@ -33308,7 +33501,7 @@ }, "parameters": [ { - "id": 1496, + "id": 1490, "name": "event", "kind": 32768, "kindString": "Parameter", @@ -33343,12 +33536,12 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 7, "character": 8 }, { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 8, "character": 8 } @@ -33359,7 +33552,7 @@ } }, { - "id": 1462, + "id": 1456, "name": "getEnvironments", "kind": 2048, "kindString": "Method", @@ -33369,7 +33562,7 @@ }, "signatures": [ { - "id": 1463, + "id": 1457, "name": "getEnvironments", "kind": 4096, "kindString": "Call signature", @@ -33416,7 +33609,7 @@ } }, { - "id": 1497, + "id": 1491, "name": "on", "kind": 2048, "kindString": "Method", @@ -33426,7 +33619,7 @@ }, "signatures": [ { - "id": 1498, + "id": 1492, "name": "on", "kind": 4096, "kindString": "Call signature", @@ -33435,7 +33628,7 @@ }, "typeParameter": [ { - "id": 1499, + "id": 1493, "name": "K", "kind": 131072, "kindString": "Type parameter", @@ -33454,7 +33647,7 @@ ], "parameters": [ { - "id": 1500, + "id": 1494, "name": "type", "kind": 32768, "kindString": "Parameter", @@ -33475,7 +33668,7 @@ } }, { - "id": 1501, + "id": 1495, "name": "listener", "kind": 32768, "kindString": "Parameter", @@ -33516,7 +33709,7 @@ } }, { - "id": 1502, + "id": 1496, "name": "on", "kind": 4096, "kindString": "Call signature", @@ -33525,7 +33718,7 @@ }, "parameters": [ { - "id": 1503, + "id": 1497, "name": "type", "kind": 32768, "kindString": "Parameter", @@ -33538,7 +33731,7 @@ } }, { - "id": 1504, + "id": 1498, "name": "listener", "kind": 32768, "kindString": "Parameter", @@ -33583,12 +33776,12 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 9, "character": 6 }, { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 10, "character": 6 } @@ -33599,7 +33792,7 @@ } }, { - "id": 1505, + "id": 1499, "name": "own", "kind": 2048, "kindString": "Method", @@ -33609,7 +33802,7 @@ }, "signatures": [ { - "id": 1506, + "id": 1500, "name": "own", "kind": 4096, "kindString": "Call signature", @@ -33618,7 +33811,7 @@ }, "parameters": [ { - "id": 1507, + "id": 1501, "name": "handles", "kind": 32768, "kindString": "Parameter", @@ -33655,7 +33848,7 @@ ], "sources": [ { - "fileName": "node_modules\\@theintern\\common\\lib\\Evented.d.ts", + "fileName": "node_modules/@theintern/common/lib/Evented.d.ts", "line": 11, "character": 7 } @@ -33666,7 +33859,7 @@ } }, { - "id": 1428, + "id": 1422, "name": "sendJobState", "kind": 2048, "kindString": "Method", @@ -33676,7 +33869,7 @@ }, "signatures": [ { - "id": 1429, + "id": 1423, "name": "sendJobState", "kind": 4096, "kindString": "Call signature", @@ -33703,7 +33896,7 @@ "sources": [ { "fileName": "WebDriverTunnel.ts", - "line": 325, + "line": 320, "character": 14 } ], @@ -33714,7 +33907,7 @@ } }, { - "id": 1464, + "id": 1458, "name": "start", "kind": 2048, "kindString": "Method", @@ -33724,7 +33917,7 @@ }, "signatures": [ { - "id": 1465, + "id": 1459, "name": "start", "kind": 4096, "kindString": "Call signature", @@ -33766,7 +33959,7 @@ } }, { - "id": 1466, + "id": 1460, "name": "stop", "kind": 2048, "kindString": "Method", @@ -33776,7 +33969,7 @@ }, "signatures": [ { - "id": 1467, + "id": 1461, "name": "stop", "kind": 4096, "kindString": "Call signature", @@ -33832,73 +34025,80 @@ "title": "Constructors", "kind": 512, "children": [ - 1410 + 1404 ] }, { "title": "Properties", "kind": 1024, "children": [ - 1489, - 1449, - 1450, - 1447, - 1451, - 1448, + 1483, + 1443, + 1444, + 1441, + 1445, + 1442, + 1425, + 1427, + 1428, + 1440, + 1400, + 1401, + 1424, + 1429, + 1430, + 1399, + 1484, + 1402, 1431, + 1432, 1433, 1434, - 1446, - 1430, 1435, - 1436, - 1490, + 1403, 1437, + 1436, 1438, + 1426, 1439, - 1440, - 1441, - 1443, - 1442, - 1444, - 1432, - 1445 + 1394, + 1398 ] }, { "title": "Accessors", "kind": 262144, "children": [ + 1446, + 1407, + 1448, + 1409, + 1450, 1452, - 1413, - 1454, - 1415, - 1456, - 1458, - 1460 + 1454 ] }, { "title": "Methods", "kind": 2048, "children": [ - 1468, - 1473, - 1476, - 1480, - 1485, + 1462, + 1467, + 1470, + 1474, + 1479, + 1414, + 1418, 1420, - 1424, - 1426, - 1508, - 1417, + 1502, + 1411, + 1485, + 1456, 1491, - 1462, - 1497, - 1505, - 1428, - 1464, - 1466 + 1499, + 1422, + 1458, + 1460 ] } ], @@ -34091,7 +34291,7 @@ ] }, { - "id": 1405, + "id": 1389, "name": "WebDriverDowloadFileOptions", "kind": 256, "kindString": "Interface", @@ -34100,7 +34300,7 @@ }, "children": [ { - "id": 1406, + "id": 1390, "name": "dontExtract", "kind": 1024, "kindString": "Property", @@ -34120,7 +34320,7 @@ } }, { - "id": 1407, + "id": 1391, "name": "executable", "kind": 1024, "kindString": "Property", @@ -34145,8 +34345,8 @@ "title": "Properties", "kind": 1024, "children": [ - 1406, - 1407 + 1390, + 1391 ] } ], @@ -34161,7 +34361,7 @@ { "type": "reflection", "declaration": { - "id": 1408, + "id": 1392, "name": "__type", "kind": 65536, "kindString": "Type literal", @@ -34180,7 +34380,7 @@ ] }, { - "id": 1400, + "id": 1384, "name": "WebDriverTunnelDownloadOptions", "kind": 256, "kindString": "Interface", @@ -34193,7 +34393,7 @@ }, "children": [ { - "id": 1402, + "id": 1386, "name": "baseUrl", "kind": 1024, "kindString": "Property", @@ -34224,7 +34424,7 @@ } }, { - "id": 1401, + "id": 1385, "name": "name", "kind": 1024, "kindString": "Property", @@ -34245,7 +34445,7 @@ } }, { - "id": 1404, + "id": 1388, "name": "noDownload", "kind": 1024, "kindString": "Property", @@ -34280,7 +34480,7 @@ } }, { - "id": 1403, + "id": 1387, "name": "version", "kind": 1024, "kindString": "Property", @@ -34316,10 +34516,10 @@ "title": "Properties", "kind": 1024, "children": [ - 1402, - 1401, - 1404, - 1403 + 1386, + 1385, + 1388, + 1387 ] } ], @@ -34344,184 +34544,6 @@ "shortText": "WebDriver Tunnel options." }, "children": [ - { - "id": 1385, - "name": "accessKey", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "__visited__": true - }, - "comment": { - "shortText": "[[Tunnel.Tunnel.accessKey|More info]]" - }, - "sources": [ - { - "fileName": "Tunnel.ts", - "line": 659, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "name": "TunnelProperties.accessKey", - "id": 212 - } - }, - { - "id": 1383, - "name": "architecture", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "__visited__": true - }, - "comment": { - "shortText": "[[Tunnel.Tunnel.architecture|More info]]" - }, - "sources": [ - { - "fileName": "Tunnel.ts", - "line": 653, - "character": 14 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "name": "TunnelProperties.architecture", - "id": 210 - } - }, - { - "id": 1384, - "name": "auth", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "__visited__": true - }, - "comment": { - "shortText": "[[Tunnel.Tunnel.auth|More info]]" - }, - "sources": [ - { - "fileName": "Tunnel.ts", - "line": 656, - "character": 6 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "name": "TunnelProperties.auth", - "id": 211 - } - }, - { - "id": 1396, - "name": "basePath", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "__visited__": true - }, - "comment": { - "shortText": "[[Tunnel.Tunnel.basePath|More info]]" - }, - "sources": [ - { - "fileName": "Tunnel.ts", - "line": 692, - "character": 10 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "name": "TunnelProperties.basePath", - "id": 223 - } - }, - { - "id": 1397, - "name": "directory", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "__visited__": true - }, - "sources": [ - { - "fileName": "Tunnel.ts", - "line": 620, - "character": 11 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "name": "DownloadProperties.directory", - "id": 193 - } - }, { "id": 1379, "name": "driverDirectory", @@ -34575,77 +34597,10 @@ "elementType": { "type": "reference", "name": "WebDriverTunnelDownloadOptions", - "id": 1400 + "id": 1384 } } }, - { - "id": 1386, - "name": "executable", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "__visited__": true - }, - "comment": { - "shortText": "[[Tunnel.Tunnel.executable|More info]]" - }, - "sources": [ - { - "fileName": "Tunnel.ts", - "line": 662, - "character": 12 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "name": "TunnelProperties.executable", - "id": 213 - } - }, - { - "id": 1387, - "name": "hostname", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "__visited__": true - }, - "comment": { - "shortText": "[[Tunnel.Tunnel.hostname|More info]]" - }, - "sources": [ - { - "fileName": "Tunnel.ts", - "line": 665, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "name": "TunnelProperties.hostname", - "id": 214 - } - }, { "id": 1381, "name": "maxConnectAttempts", @@ -34677,157 +34632,6 @@ ] } }, - { - "id": 1388, - "name": "pathname", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "__visited__": true - }, - "comment": { - "shortText": "[[Tunnel.Tunnel.pathname|More info]]" - }, - "sources": [ - { - "fileName": "Tunnel.ts", - "line": 668, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "name": "TunnelProperties.pathname", - "id": 215 - } - }, - { - "id": 1389, - "name": "platform", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "__visited__": true - }, - "comment": { - "shortText": "[[Tunnel.Tunnel.platform|More info]]" - }, - "sources": [ - { - "fileName": "Tunnel.ts", - "line": 671, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "name": "TunnelProperties.platform", - "id": 216 - } - }, - { - "id": 1390, - "name": "port", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "__visited__": true - }, - "comment": { - "shortText": "[[Tunnel.Tunnel.port|More info]]" - }, - "sources": [ - { - "fileName": "Tunnel.ts", - "line": 674, - "character": 6 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "name": "TunnelProperties.port", - "id": 217 - } - }, - { - "id": 1391, - "name": "protocol", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "__visited__": true - }, - "comment": { - "shortText": "[[Tunnel.Tunnel.protocol|More info]]" - }, - "sources": [ - { - "fileName": "Tunnel.ts", - "line": 677, - "character": 10 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "name": "TunnelProperties.protocol", - "id": 218 - } - }, - { - "id": 1398, - "name": "proxy", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "__visited__": true - }, - "sources": [ - { - "fileName": "Tunnel.ts", - "line": 621, - "character": 7 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "name": "DownloadProperties.proxy", - "id": 194 - } - }, { "id": 1382, "name": "startupWait", @@ -34858,175 +34662,6 @@ } ] } - }, - { - "id": 1393, - "name": "tunnelId", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "__visited__": true - }, - "comment": { - "shortText": "[[Tunnel.Tunnel.tunnelId|More info]]" - }, - "sources": [ - { - "fileName": "Tunnel.ts", - "line": 683, - "character": 10 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "name": "TunnelProperties.tunnelId", - "id": 220 - } - }, - { - "id": 1392, - "name": "tunnelProxy", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "__visited__": true - }, - "comment": { - "shortText": "[[Tunnel.Tunnel.tunnelProxy|More info]]" - }, - "sources": [ - { - "fileName": "Tunnel.ts", - "line": 680, - "character": 13 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "name": "TunnelProperties.tunnelProxy", - "id": 219 - } - }, - { - "id": 1399, - "name": "url", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "__visited__": true - }, - "sources": [ - { - "fileName": "Tunnel.ts", - "line": 622, - "character": 5 - } - ], - "type": { - "type": "intrinsic", - "name": "string" - }, - "inheritedFrom": { - "type": "reference", - "name": "DownloadProperties.url", - "id": 195 - } - }, - { - "id": 1394, - "name": "username", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "__visited__": true - }, - "comment": { - "shortText": "[[Tunnel.Tunnel.username|More info]]" - }, - "sources": [ - { - "fileName": "Tunnel.ts", - "line": 686, - "character": 10 - } - ], - "type": { - "type": "union", - "types": [ - { - "type": "intrinsic", - "name": "string" - }, - { - "type": "intrinsic", - "name": "undefined" - } - ] - }, - "inheritedFrom": { - "type": "reference", - "name": "TunnelProperties.username", - "id": 221 - } - }, - { - "id": 1395, - "name": "verbose", - "kind": 1024, - "kindString": "Property", - "flags": { - "isExported": true, - "__visited__": true - }, - "comment": { - "shortText": "[[Tunnel.Tunnel.verbose|More info]]" - }, - "sources": [ - { - "fileName": "Tunnel.ts", - "line": 689, - "character": 9 - } - ], - "type": { - "type": "intrinsic", - "name": "boolean" - }, - "inheritedFrom": { - "type": "reference", - "name": "TunnelProperties.verbose", - "id": 222 - } } ], "groups": [ @@ -35034,27 +34669,10 @@ "title": "Properties", "kind": 1024, "children": [ - 1385, - 1383, - 1384, - 1396, - 1397, 1379, 1380, - 1386, - 1387, 1381, - 1388, - 1389, - 1390, - 1391, - 1398, - 1382, - 1393, - 1392, - 1399, - 1394, - 1395 + 1382 ] } ], @@ -35067,9 +34685,23 @@ ], "extendedTypes": [ { - "type": "reference", - "name": "TunnelProperties", - "id": 209 + "type": "reflection", + "declaration": { + "id": 1383, + "name": "__type", + "kind": 65536, + "kindString": "Type literal", + "flags": { + "__visited__": true + }, + "sources": [ + { + "fileName": "WebDriverTunnel.ts", + "line": 32, + "character": 47 + } + ] + } } ] } @@ -35079,7 +34711,7 @@ "title": "Classes", "kind": 128, "children": [ - 1409 + 1393 ] }, { @@ -35087,8 +34719,8 @@ "kind": 256, "children": [ 1371, - 1405, - 1400, + 1389, + 1384, 1378 ] } @@ -35102,7 +34734,7 @@ ] }, { - "id": 1510, + "id": 1504, "name": "\"bin/digdugEnvironments\"", "kind": 1, "kindString": "External module", @@ -35110,10 +34742,10 @@ "isExported": true, "__visited__": true }, - "originalName": "src\\bin\\digdugEnvironments.ts", + "originalName": "src/bin/digdugEnvironments.ts", "children": [ { - "id": 1514, + "id": 1508, "name": "TunnelCtor", "kind": 32, "kindString": "Variable", @@ -35136,7 +34768,7 @@ "defaultValue": " require('../' + tunnelName).default" }, { - "id": 1511, + "id": 1505, "name": "digdugPath", "kind": 32, "kindString": "Variable", @@ -35158,7 +34790,7 @@ "defaultValue": " path.dirname(__dirname)" }, { - "id": 1515, + "id": 1509, "name": "tunnel", "kind": 32, "kindString": "Variable", @@ -35181,7 +34813,7 @@ "defaultValue": " new TunnelCtor()" }, { - "id": 1513, + "id": 1507, "name": "tunnelName", "kind": 32, "kindString": "Variable", @@ -35203,7 +34835,7 @@ "defaultValue": " process.argv[2]" }, { - "id": 1512, + "id": 1506, "name": "tunnels", "kind": 32, "kindString": "Variable", @@ -35225,7 +34857,7 @@ "name": "string" } }, - "defaultValue": " fs\r\n .readdirSync(digdugPath)\r\n .filter(function(name) {\r\n return (\r\n /[A-Z]\\w+Tunnel\\.js$/.test(name) &&\r\n name !== 'NullTunnel.js' &&\r\n name !== 'Tunnel.js' &&\r\n name !== 'SeleniumTunnel.js'\r\n );\r\n })\r\n .map(function(name) {\r\n return name.slice(0, name.length - 3);\r\n })" + "defaultValue": " fs\n .readdirSync(digdugPath)\n .filter(function(name) {\n return (\n /[A-Z]\\w+Tunnel\\.js$/.test(name) &&\n name !== 'NullTunnel.js' &&\n name !== 'Tunnel.js' &&\n name !== 'SeleniumTunnel.js'\n );\n })\n .map(function(name) {\n return name.slice(0, name.length - 3);\n })" } ], "groups": [ @@ -35233,11 +34865,11 @@ "title": "Variables", "kind": 32, "children": [ - 1514, - 1511, - 1515, - 1513, - 1512 + 1508, + 1505, + 1509, + 1507, + 1506 ] } ], @@ -35258,7 +34890,7 @@ "isExported": true, "__visited__": true }, - "originalName": "src\\interfaces.ts", + "originalName": "src/interfaces.ts", "children": [ { "id": 27, @@ -35543,7 +35175,7 @@ "isExported": true, "__visited__": true }, - "originalName": "src\\lib\\WebDriverProxy.ts", + "originalName": "src/lib/WebDriverProxy.ts", "children": [ { "id": 1352, @@ -35632,7 +35264,7 @@ "typeArguments": [ { "type": "intrinsic", - "name": "Object" + "name": "void" } ] } @@ -36228,7 +35860,7 @@ "isExported": true, "__visited__": true }, - "originalName": "src\\lib\\tunnelChildProcesses.ts", + "originalName": "src/lib/tunnelChildProcesses.ts", "children": [ { "id": 36, @@ -36532,7 +36164,7 @@ "isExported": true, "__visited__": true }, - "originalName": "src\\lib\\util.ts", + "originalName": "src/lib/util.ts", "children": [ { "id": 10, @@ -36984,7 +36616,7 @@ "isExported": true, "__visited__": true }, - "originalName": "src\\lib\\webDriverConfig.ts", + "originalName": "src/lib/webDriverConfig.ts", "children": [ { "id": 1217, @@ -37045,7 +36677,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 95, + "line": 102, "character": 31 } ], @@ -37096,7 +36728,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 95, + "line": 102, "character": 22 } ], @@ -37142,7 +36774,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 113, + "line": 118, "character": 14 } ] @@ -37179,7 +36811,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 62, + "line": 68, "character": 15 } ], @@ -37230,7 +36862,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 136, + "line": 141, "character": 16 } ], @@ -37272,7 +36904,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 58, + "line": 64, "character": 16 } ], @@ -37314,7 +36946,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 131, + "line": 136, "character": 9 } ], @@ -37387,7 +37019,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 142, + "line": 147, "character": 21 } ], @@ -37436,7 +37068,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 92, + "line": 99, "character": 31 } ], @@ -37521,7 +37153,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 263, + "line": 256, "character": 63 } ], @@ -37572,7 +37204,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 261, + "line": 254, "character": 29 } ], @@ -37599,7 +37231,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 260, + "line": 253, "character": 22 } ], @@ -37650,7 +37282,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 62, + "line": 68, "character": 15 } ], @@ -37692,7 +37324,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 306, + "line": 297, "character": 16 } ], @@ -37734,7 +37366,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 58, + "line": 64, "character": 16 } ], @@ -37776,7 +37408,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 290, + "line": 281, "character": 9 } ], @@ -37849,7 +37481,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 310, + "line": 301, "character": 21 } ], @@ -37898,7 +37530,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 257, + "line": 250, "character": 29 } ], @@ -37983,7 +37615,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 157, + "line": 162, "character": 31 } ], @@ -38034,7 +37666,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 157, + "line": 162, "character": 22 } ], @@ -38080,7 +37712,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 175, + "line": 178, "character": 14 } ] @@ -38117,7 +37749,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 62, + "line": 68, "character": 15 } ], @@ -38168,7 +37800,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 195, + "line": 198, "character": 16 } ], @@ -38210,7 +37842,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 58, + "line": 64, "character": 16 } ], @@ -38252,7 +37884,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 190, + "line": 193, "character": 9 } ], @@ -38325,7 +37957,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 199, + "line": 202, "character": 21 } ], @@ -38374,7 +38006,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 154, + "line": 159, "character": 32 } ], @@ -38459,7 +38091,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 327, + "line": 318, "character": 37 } ], @@ -38510,7 +38142,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 327, + "line": 318, "character": 28 } ], @@ -38537,7 +38169,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 326, + "line": 317, "character": 22 } ], @@ -38583,7 +38215,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 348, + "line": 337, "character": 14 } ] @@ -38620,7 +38252,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 62, + "line": 68, "character": 15 } ], @@ -38667,7 +38299,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 58, + "line": 64, "character": 16 } ], @@ -38709,7 +38341,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 354, + "line": 343, "character": 9 } ], @@ -38782,7 +38414,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 364, + "line": 350, "character": 21 } ], @@ -38831,7 +38463,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 323, + "line": 314, "character": 35 } ], @@ -38916,7 +38548,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 219, + "line": 222, "character": 37 } ], @@ -38967,7 +38599,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 219, + "line": 222, "character": 28 } ], @@ -38994,7 +38626,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 218, + "line": 221, "character": 13 } ], @@ -39045,7 +38677,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 62, + "line": 68, "character": 15 } ], @@ -39092,7 +38724,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 58, + "line": 64, "character": 16 } ], @@ -39170,7 +38802,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 241, + "line": 234, "character": 21 } ], @@ -39217,7 +38849,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 215, + "line": 218, "character": 31 } ], @@ -39378,7 +39010,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 62, + "line": 68, "character": 15 } ] @@ -39410,7 +39042,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 68, + "line": 74, "character": 19 } ] @@ -39442,7 +39074,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 58, + "line": 64, "character": 16 } ] @@ -39531,7 +39163,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 72, + "line": 78, "character": 6 } ], @@ -39567,7 +39199,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 73, + "line": 79, "character": 9 } ], @@ -39603,7 +39235,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 79, + "line": 85, "character": 12 } ], @@ -39643,7 +39275,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 74, + "line": 80, "character": 10 } ], @@ -39679,7 +39311,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 76, + "line": 82, "character": 5 } ], @@ -39715,7 +39347,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 254, + "line": 247, "character": 15 } ], @@ -39746,7 +39378,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 75, + "line": 81, "character": 9 } ], @@ -39788,7 +39420,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 253, + "line": 246, "character": 40 } ], @@ -40200,7 +39832,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 72, + "line": 78, "character": 6 } ], @@ -40231,7 +39863,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 73, + "line": 79, "character": 9 } ], @@ -40262,7 +39894,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 79, + "line": 85, "character": 12 } ], @@ -40297,7 +39929,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 74, + "line": 80, "character": 10 } ], @@ -40328,7 +39960,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 76, + "line": 82, "character": 5 } ], @@ -40359,7 +39991,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 75, + "line": 81, "character": 9 } ], @@ -40395,7 +40027,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 71, + "line": 77, "character": 39 } ], @@ -40579,9 +40211,9 @@ ], "type": { "type": "stringLiteral", - "value": "3.141.0" + "value": "3.14.0" }, - "defaultValue": "\"3.141.0\"" + "defaultValue": "\"3.14.0\"" }, { "id": 1328, @@ -40618,7 +40250,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 377, + "line": 362, "character": 34 } ], @@ -40673,7 +40305,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 377, + "line": 362, "character": 35 } ] @@ -40702,11 +40334,11 @@ "types": [ { "type": "intrinsic", - "name": "undefined" + "name": "string" }, { "type": "intrinsic", - "name": "string" + "name": "undefined" } ] } @@ -40715,7 +40347,7 @@ "sources": [ { "fileName": "lib/webDriverConfig.ts", - "line": 82, + "line": 88, "character": 30 } ] @@ -40894,7 +40526,7 @@ 1045, 53, 1370, - 1510, + 1504, 26, 1337, 35, diff --git a/package-lock.json b/package-lock.json index a1c44be..00238c2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,42 @@ "any-observable": "^0.3.0" } }, + "@sinonjs/commons": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.4.0.tgz", + "integrity": "sha512-9jHK3YF/8HtJ9wCAbG+j8cD0i0+ATS9A7gXFqS36TblLPNy6rEEc+SB0imo91eCboGaBYGV/MT1/br/J+EE7Tw==", + "dev": true, + "requires": { + "type-detect": "4.0.8" + } + }, + "@sinonjs/formatio": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.1.tgz", + "integrity": "sha512-tsHvOB24rvyvV2+zKMmPkZ7dXX6LSLKZ7aOtXY6Edklp0uRcgGpOsQTTGTcWViFyx4uhWc6GV8QdnALbIbIdeQ==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1", + "@sinonjs/samsam": "^3.1.0" + } + }, + "@sinonjs/samsam": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.1.tgz", + "integrity": "sha512-wRSfmyd81swH0hA1bxJZJ57xr22kC07a1N4zuIL47yTS04bDk6AoCkczcqHEjcRPmJ+FruGJ9WBQiJwMtIElFw==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.0.2", + "array-from": "^2.1.1", + "lodash": "^4.17.11" + } + }, + "@sinonjs/text-encoding": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz", + "integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==", + "dev": true + }, "@theintern/common": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@theintern/common/-/common-0.1.3.tgz", @@ -377,6 +413,12 @@ "@types/node": "*" } }, + "@types/sinon": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-7.0.11.tgz", + "integrity": "sha512-6ee09Ugx6GyEr0opUIakmxIWFNmqYPjkqa3/BuxCBokA0klsOLPgMD5K4q40lH7/yZVuJVzOfQpd7pipwjngkQ==", + "dev": true + }, "@types/statuses": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/@types/statuses/-/statuses-1.3.0.tgz", @@ -494,6 +536,12 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", "dev": true }, + "array-from": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz", + "integrity": "sha1-z+nYwmYoudxa7MYqn12PHzUsEZU=", + "dev": true + }, "array-map": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/array-map/-/array-map-0.0.0.tgz", @@ -1930,8 +1978,7 @@ "ansi-regex": { "version": "2.1.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "aproba": { "version": "1.2.0", @@ -1952,14 +1999,12 @@ "balanced-match": { "version": "1.0.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, "dev": true, - "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -1974,20 +2019,17 @@ "code-point-at": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "concat-map": { "version": "0.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "console-control-strings": { "version": "1.1.0", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -2104,8 +2146,7 @@ "inherits": { "version": "2.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "ini": { "version": "1.3.5", @@ -2117,7 +2158,6 @@ "version": "1.0.0", "bundled": true, "dev": true, - "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -2132,7 +2172,6 @@ "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { "brace-expansion": "^1.1.7" } @@ -2140,14 +2179,12 @@ "minimist": { "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "minipass": { "version": "2.3.5", "bundled": true, "dev": true, - "optional": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" @@ -2166,7 +2203,6 @@ "version": "0.5.1", "bundled": true, "dev": true, - "optional": true, "requires": { "minimist": "0.0.8" } @@ -2247,8 +2283,7 @@ "number-is-nan": { "version": "1.0.1", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "object-assign": { "version": "4.1.1", @@ -2260,7 +2295,6 @@ "version": "1.4.0", "bundled": true, "dev": true, - "optional": true, "requires": { "wrappy": "1" } @@ -2346,8 +2380,7 @@ "safe-buffer": { "version": "5.1.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "safer-buffer": { "version": "2.1.2", @@ -2383,7 +2416,6 @@ "version": "1.0.2", "bundled": true, "dev": true, - "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -2403,7 +2435,6 @@ "version": "3.0.1", "bundled": true, "dev": true, - "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -2447,14 +2478,12 @@ "wrappy": { "version": "1.0.2", "bundled": true, - "dev": true, - "optional": true + "dev": true }, "yallist": { "version": "3.0.3", "bundled": true, - "dev": true, - "optional": true + "dev": true } } }, @@ -3174,6 +3203,12 @@ } } }, + "just-extend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.0.2.tgz", + "integrity": "sha512-FrLwOgm+iXrPV+5zDU6Jqu4gCRXbWEQg2O3SKONsWE4w7AXFRkryS53bpWdaL9cNol+AmR3AEYz6kn+o0fCPnw==", + "dev": true + }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", @@ -3377,6 +3412,12 @@ "wrap-ansi": "^3.0.1" } }, + "lolex": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-4.0.1.tgz", + "integrity": "sha512-UHuOBZ5jjsKuzbB/gRNNW8Vg8f00Emgskdq2kvZxgBJCS0aqquAuXai/SkWORlKeZEiNQWZjFZOqIUcH9LqKCw==", + "dev": true + }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -3588,6 +3629,42 @@ "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", "dev": true }, + "nise": { + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/nise/-/nise-1.4.10.tgz", + "integrity": "sha512-sa0RRbj53dovjc7wombHmVli9ZihXbXCQ2uH3TNm03DyvOSIQbxg+pbqDKrk2oxMK1rtLGVlKxcB9rrc6X5YjA==", + "dev": true, + "requires": { + "@sinonjs/formatio": "^3.1.0", + "@sinonjs/text-encoding": "^0.7.1", + "just-extend": "^4.0.2", + "lolex": "^2.3.2", + "path-to-regexp": "^1.7.0" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "lolex": { + "version": "2.7.5", + "resolved": "https://registry.npmjs.org/lolex/-/lolex-2.7.5.tgz", + "integrity": "sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q==", + "dev": true + }, + "path-to-regexp": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.7.0.tgz", + "integrity": "sha1-Wf3g9DW62suhA6hOnTvGTpa5k30=", + "dev": true, + "requires": { + "isarray": "0.0.1" + } + } + } + }, "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", @@ -4257,6 +4334,21 @@ "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", "dev": true }, + "sinon": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-7.3.2.tgz", + "integrity": "sha512-thErC1z64BeyGiPvF8aoSg0LEnptSaWE7YhdWWbWXgelOyThent7uKOnnEh9zBxDbKixtr5dEko+ws1sZMuFMA==", + "dev": true, + "requires": { + "@sinonjs/commons": "^1.4.0", + "@sinonjs/formatio": "^3.2.1", + "@sinonjs/samsam": "^3.3.1", + "diff": "^3.5.0", + "lolex": "^4.0.1", + "nise": "^1.4.10", + "supports-color": "^5.5.0" + } + }, "slice-ansi": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", diff --git a/package.json b/package.json index d10a1e4..b9bbbf8 100644 --- a/package.json +++ b/package.json @@ -21,12 +21,14 @@ "@types/request": "^2.48.1", "@types/semver": "~5.5.0", "@types/shelljs": "~0.7.9", + "@types/sinon": "^7.0.11", "concurrently": "~3.5.0", "intern": "~4.4.0", "lint-staged": "~7.2.0", "pre-commit": "~1.2.2", "prettier": "~1.13.7", - "shelljs": "~0.8.1" + "shelljs": "~0.8.1", + "sinon": "^7.3.2" }, "scripts": { "build": "npm run clean && concurrently intern-dev-build intern-dev-api", diff --git a/src/WebDriverTunnel.ts b/src/WebDriverTunnel.ts index 75117e6..8be240e 100644 --- a/src/WebDriverTunnel.ts +++ b/src/WebDriverTunnel.ts @@ -29,7 +29,7 @@ export interface WebDriver { /** * WebDriver Tunnel options. */ -export interface WebDriverTunnelOptions extends TunnelProperties { +export interface WebDriverTunnelOptions extends Partial { // The directory that will receive the downloaded WebDriver executables. The // tunnel will create a subdirectory for each browser name. driverDirectory?: string; @@ -84,13 +84,13 @@ interface WebDriverDowloadFileOptions extends DownloadOptions { * * `safari` */ export default class WebDriverTunnel extends Tunnel { - private readonly webDriverConfigs: { [key: string]: WebDriverConfig }; - private webDriverProxy: WebDriverProxy; - private lastUsedPort: number; - private driverDirectory!: string; - private drivers!: WebDriverTunnelDownloadOptions[]; - private maxConnectAttempts!: number; - private startupWait!: number; + readonly webDriverConfigs: { [key: string]: WebDriverConfig }; + webDriverProxy: WebDriverProxy; + lastUsedPort: number; + driverDirectory!: string; + drivers!: WebDriverTunnelDownloadOptions[]; + maxConnectAttempts!: number; + startupWait!: number; constructor(options: WebDriverTunnelOptions) { super( @@ -167,7 +167,10 @@ export default class WebDriverTunnel extends Tunnel { } private isWebDriverDownloaded(config: WebDriverConfig) { - return fileExists(join(this.directory, config.executable)); + return ( + config.noDownload || + fileExists(join(this.directory, config.directory, config.executable)) + ); } download(forceDownload = false): CancellablePromise { @@ -178,19 +181,13 @@ export default class WebDriverTunnel extends Tunnel { resolve => { tasks = Object.keys(webDriverConfigs).map(browserName => { const config = webDriverConfigs[browserName]; - const executable = config.executable; - const subdirectory = config.directory; - - if ( - config.noDownload || - (!forceDownload && - fileExists(join(this.directory, subdirectory, executable))) - ) { + + if (!forceDownload && this.isWebDriverDownloaded(config)) { return Task.resolve(); } return this._downloadFile(config.url, this.proxy, { - directory: subdirectory, + directory: config.directory, dontExtract: config.dontExtract, executable: config.executable } as WebDriverDowloadFileOptions); @@ -229,8 +226,6 @@ export default class WebDriverTunnel extends Tunnel { private createWebDriverChild(browserName: string): Promise { const { startupWait, verbose } = this; - const lastUsedPort = ++this.lastUsedPort; - return new Promise((resolve, reject) => { // Look up the WebDriver config for the given browser name. let webDriver: WebDriver; @@ -251,7 +246,7 @@ export default class WebDriverTunnel extends Tunnel { webDriverConfig.executable ); } - const port = lastUsedPort; + const port = ++this.lastUsedPort; const childExecutor = ( child: ChildProcess, diff --git a/src/lib/WebDriverProxy.ts b/src/lib/WebDriverProxy.ts index 49c696a..260ffb6 100644 --- a/src/lib/WebDriverProxy.ts +++ b/src/lib/WebDriverProxy.ts @@ -69,7 +69,7 @@ export default class WebDriverProxy { } public start() { - return new Promise(resolve => { + return new Promise(resolve => { const { config } = this; const { path, verbose } = config; const proxyServer = express(); diff --git a/src/lib/webDriverConfig.ts b/src/lib/webDriverConfig.ts index 4b995f0..9ba1949 100644 --- a/src/lib/webDriverConfig.ts +++ b/src/lib/webDriverConfig.ts @@ -52,7 +52,13 @@ export abstract class WebDriverConfigBase { protected config: T; protected constructor(config: T) { - this.config = Object.assign({}, config); + this.config = Object.assign( + { + arch: process.arch, + platform: process.platform + }, + config + ); } get noDownload() { @@ -79,13 +85,14 @@ export interface WebDriverConfigOptions { noDownload?: boolean; } -function getWindowsBuildNumber() { +function getWindowsBuildNumber(): string | undefined { if (process.platform === 'win32') { - const ver = execSync('ver') - .toString() - .trim(); - const parts = ver.split('.'); - return parts[2]; + const result: Buffer = execSync('ver'); + if (result) { + const ver = result.toString().trim(); + const parts = ver.split('.'); + return parts[2]; + } } } @@ -98,9 +105,7 @@ export class ChromeDriverConfig super( Object.assign( { - arch: process.arch, baseUrl: 'https://chromedriver.storage.googleapis.com', - platform: process.platform, version: ChromeVersion }, config @@ -160,9 +165,7 @@ export class FirefoxDriverConfig super( Object.assign( { - arch: process.arch, baseUrl: 'https://github.com/mozilla/geckodriver/releases/download', - platform: process.platform, version: FirefoxVersion }, config @@ -219,17 +222,7 @@ export class SafariDriverConfig public readonly executable: string; constructor(config: WebDriverConfigOptions) { - super( - Object.assign( - { - arch: process.arch, - baseUrl: 'https://github.com/mozilla/geckodriver/releases/download', - platform: process.platform, - version: FirefoxVersion - }, - config - ) - ); + super(config); this.name = SAFARI; this.executable = 'safaridriver'; @@ -266,9 +259,7 @@ export class EdgeDriverConfig super( Object.assign( { - arch: process.arch, baseUrl: 'https://download.microsoft.com/download', - platform: process.platform, version: getWindowsBuildNumber() }, config @@ -330,9 +321,7 @@ export class InternetExplorerConfig super( Object.assign( { - arch: process.arch, baseUrl: 'https://selenium-release.storage.googleapis.com', - platform: process.platform, version: InternetExplorerVersion }, config @@ -342,7 +331,7 @@ export class InternetExplorerConfig this.name = INTERNET_EXPLORER; this.executable = 'IEDriverServer.exe'; // Download only when the platform is Windows. - config.noDownload = process.platform !== 'win32'; + this.config.noDownload = this.config.platform !== 'win32'; } get artifact() { diff --git a/tests/unit/WebDriverTunnel.ts b/tests/unit/WebDriverTunnel.ts new file mode 100644 index 0000000..26c1058 --- /dev/null +++ b/tests/unit/WebDriverTunnel.ts @@ -0,0 +1,441 @@ +import WebDriverTunnel, { WebDriver } from '../../src/WebDriverTunnel'; +import * as util from '../../src/lib/util'; +import { WebDriverConfig } from '../../src/lib/webDriverConfig'; +import { createSandbox, SinonSandbox, SinonStub } from 'sinon'; +import * as child_process from 'child_process'; +import { ExecOptions } from 'shelljs'; +import * as tunnelChildProcesses from '../../src/lib/tunnelChildProcesses'; +import { CancellablePromise, Task } from '@theintern/common'; +import { ChildExecutor } from '../../src/Tunnel'; +import { EventEmitter } from 'events'; +import { join } from 'intern/lib/common/path'; +import { fail } from 'assert'; + +type DownloadFileStub = SinonStub>; + +class MockChildProcess extends EventEmitter { + stdout: EventEmitter; + stderr: EventEmitter; + + constructor() { + super(); + this.stdout = new EventEmitter(); + this.stderr = new EventEmitter(); + } +} + +let tunnel: WebDriverTunnel; +let sandbox: SinonSandbox; +let execSyncStub: SinonStub< + [string, (ExecOptions | undefined)?], + Buffer | undefined +>; +let platformStub: SinonStub; +let downloadFileStub: DownloadFileStub; +let webdriverProxyStartStub: SinonStub<[], Promise>; +let webdriverProxyStopStub: SinonStub<[], Promise>; +let childProcess: MockChildProcess; + +const BROWSER_NAMES = [ + 'chrome', + 'firefox', + 'safari', + 'internet explorer', + 'MicrosoftEdge' +]; + +registerSuite('unit/WebDriverTunnel', { + beforeEach() { + sandbox = createSandbox(); + + // Set the platform to a know value. This will make the tests independent of the platform + // on which the tests are running. + platformStub = sandbox.stub(process, 'platform').value('somePlatform'); + + // Stub out execSync. + execSyncStub = sandbox.stub(child_process, 'execSync'); + // Don't spawn any child processes. + sandbox.stub(child_process, 'spawn'); + }, + + afterEach() { + sandbox.restore(); + }, + + tests: { + config: { + 'default config'() { + const tunnel = new WebDriverTunnel({}); + assert.strictEqual(tunnel.driverDirectory, 'webdriver_tunnel'); + assert.strictEqual(tunnel.maxConnectAttempts, 3); + assert.strictEqual(tunnel.startupWait, 1000); + + const webDriverConfigs = tunnel.webDriverConfigs; + assert.strictEqual(5, Object.keys(webDriverConfigs).length); + BROWSER_NAMES.forEach(browserName => + assert.exists(webDriverConfigs[browserName]) + ); + }, + + 'override default config'() { + const tunnel = new WebDriverTunnel({ + driverDirectory: 'some/directory', + maxConnectAttempts: 10, + startupWait: 100 + }); + assert.strictEqual(tunnel.driverDirectory, 'some/directory'); + assert.strictEqual(tunnel.maxConnectAttempts, 10); + assert.strictEqual(tunnel.startupWait, 100); + }, + + port() { + const tunnel = new WebDriverTunnel({ + port: '8675' + }); + assert.strictEqual(tunnel.port, '8675'); + assert.strictEqual(tunnel.lastUsedPort, 8675); + }, + + 'webdriver noDownload configs'() { + // Test the "noDownload" properties of the web driver configs when the platform + // is not win32. + const tunnel = new WebDriverTunnel({}); + const webDriverConfigs = tunnel.webDriverConfigs; + assert.strictEqual(Object.keys(webDriverConfigs).length, 5); + assert.isFalse(webDriverConfigs['chrome'].noDownload); + assert.isFalse(webDriverConfigs['firefox'].noDownload); + assert.isTrue(webDriverConfigs['safari'].noDownload); + assert.isTrue(webDriverConfigs['internet explorer'].noDownload); + assert.isTrue(webDriverConfigs['MicrosoftEdge'].noDownload); + }, + + 'webdriver noDownload configs with Windows'() { + // Test the "noDownload" properties of the web driver configs when the platform + // is win32 and the windows version is 17134. + platformStub.value('win32'); + execSyncStub.returns(Buffer.from('1.1.17134')); + const tunnel = new WebDriverTunnel({}); + const webDriverConfigs = tunnel.webDriverConfigs; + assert.strictEqual(Object.keys(webDriverConfigs).length, 5); + assert.isFalse(webDriverConfigs['chrome'].noDownload); + assert.isFalse(webDriverConfigs['firefox'].noDownload); + assert.isTrue(webDriverConfigs['safari'].noDownload); + assert.isFalse(webDriverConfigs['internet explorer'].noDownload); + assert.isFalse(webDriverConfigs['MicrosoftEdge'].noDownload); + }, + + 'webdriver noDownload configs with Windows Edge > 17134'() { + // Test the "noDownload" properties of the web driver configs when the platform + // is win32 and the windows version is greater than 17134. + platformStub.value('win32'); + execSyncStub.returns(Buffer.from('1.1.17135')); + const tunnel = new WebDriverTunnel({}); + const webDriverConfigs = tunnel.webDriverConfigs; + assert.strictEqual(Object.keys(webDriverConfigs).length, 5); + assert.isFalse(webDriverConfigs['chrome'].noDownload); + assert.isFalse(webDriverConfigs['firefox'].noDownload); + assert.isTrue(webDriverConfigs['safari'].noDownload); + assert.isFalse(webDriverConfigs['internet explorer'].noDownload); + assert.isTrue(webDriverConfigs['MicrosoftEdge'].noDownload); + } + }, + + isDownloaded: { + beforeEach() { + tunnel = new WebDriverTunnel({}); + }, + + tests: { + 'isDownloaded with files not existing'() { + // Test the tunnel "isDownloaded" property when fileExists always returns false. + const tunnel = new WebDriverTunnel({}); + const fileExistsStub = sandbox + .stub(util, 'fileExists') + .returns(false); + assert.isFalse(tunnel.isDownloaded); + + // The tunnel should stop checking when the first check returns false. + assert.strictEqual(1, fileExistsStub.callCount); + }, + + 'isDownloaded with files existing no Windows'() { + // Test the tunnel "isDownloaded" property when fileExists always returns true and + // the platform is not win32. + const tunnel = new WebDriverTunnel({ + platform: 'madeUpPlatform', + basePath: __dirname, + driverDirectory: 'test_directory' + }); + const fileExistsStub = sandbox.stub(util, 'fileExists').returns(true); + assert.isTrue(tunnel.isDownloaded); + + assert.strictEqual(2, fileExistsStub.callCount); + + testFileExistsStubCalledWith( + fileExistsStub, + tunnel.webDriverConfigs['chrome'] + ); + testFileExistsStubCalledWith( + fileExistsStub, + tunnel.webDriverConfigs['firefox'] + ); + }, + + 'isDownloaded with files existing with Windows'() { + // Test the tunnel "isDownloaded" property when fileExists always returns true and + // the platform is win32 and the version number is small. + platformStub.value('win32'); + execSyncStub.returns(Buffer.from('1.1.1')); + const tunnel = new WebDriverTunnel({ + platform: 'win32', + basePath: __dirname, + driverDirectory: 'test_directory' + }); + const fileExistsStub = sandbox.stub(util, 'fileExists').returns(true); + assert.isTrue(tunnel.isDownloaded); + + assert.strictEqual(4, fileExistsStub.callCount); + testFileExistsStubCalledWith( + fileExistsStub, + tunnel.webDriverConfigs['chrome'] + ); + testFileExistsStubCalledWith( + fileExistsStub, + tunnel.webDriverConfigs['firefox'] + ); + testFileExistsStubCalledWith( + fileExistsStub, + tunnel.webDriverConfigs['internet explorer'] + ); + testFileExistsStubCalledWith( + fileExistsStub, + tunnel.webDriverConfigs['MicrosoftEdge'] + ); + }, + + 'isDownloaded with files existing with Windows but no version'() { + // Test the tunnel "isDownloaded" property when fileExists always returns true and + // the platform is win32 but the version check returns undefined. + platformStub.value('win32'); + execSyncStub.returns(undefined); + const tunnel = new WebDriverTunnel({ + platform: 'win32', + basePath: __dirname, + driverDirectory: 'test_directory' + }); + const fileExistsStub = sandbox.stub(util, 'fileExists').returns(true); + assert.isTrue(tunnel.isDownloaded); + + assert.strictEqual(3, fileExistsStub.callCount); + testFileExistsStubCalledWith( + fileExistsStub, + tunnel.webDriverConfigs['chrome'] + ); + testFileExistsStubCalledWith( + fileExistsStub, + tunnel.webDriverConfigs['firefox'] + ); + testFileExistsStubCalledWith( + fileExistsStub, + tunnel.webDriverConfigs['internet explorer'] + ); + } + } + }, + + downloading: { + beforeEach() { + tunnel = new WebDriverTunnel({}); + // stub out the (protected) download method so nothing is actually downloaded. + downloadFileStub = sandbox.stub( + tunnel as any, + '_downloadFile' + ) as DownloadFileStub; + downloadFileStub.returns(Promise.resolve()); + }, + + tests: { + 'download with isWebDriverDownloaded true and no force'() { + // stub out isWebDriverDownloaded to always return true. + const isDownloadedStub = (sandbox.stub( + tunnel as any, + 'isWebDriverDownloaded' + ) as SinonStub).returns(true); + + return tunnel.download(false).then(() => { + assert.isFalse( + downloadFileStub.called, + '_downloadFile was called when it should not have been called' + ); + assert.strictEqual( + isDownloadedStub.callCount, + 5, + 'isWebDriverDownloaded not called the correct number of times' + ); + assert.isTrue( + isDownloadedStub.calledWith(tunnel.webDriverConfigs['chrome']) + ); + assert.isTrue( + isDownloadedStub.calledWith(tunnel.webDriverConfigs['firefox']) + ); + assert.isTrue( + isDownloadedStub.calledWith(tunnel.webDriverConfigs['safari']) + ); + assert.isTrue( + isDownloadedStub.calledWith( + tunnel.webDriverConfigs['internet explorer'] + ) + ); + assert.isTrue( + isDownloadedStub.calledWith( + tunnel.webDriverConfigs['internet explorer'] + ) + ); + }); + }, + + 'download with force'() { + // stub out isWebDriverDownloaded to always return true. + const isDownloadedStub = (sandbox.stub( + tunnel as any, + 'isWebDriverDownloaded' + ) as SinonStub).returns(true); + + return tunnel.download(true).then(() => { + assert.isFalse( + isDownloadedStub.called, + 'isWebDriverDownloaded called when it should not have been called' + ); + + // Make sure _downloadFile was called for each webdriver config. + Object.keys(tunnel.webDriverConfigs).forEach(key => { + testDownloadFileStubCalledWith( + downloadFileStub, + tunnel.webDriverConfigs[key] + ); + }); + }); + } + } + }, + + 'start/stop': { + beforeEach() { + tunnel = new WebDriverTunnel({}); + // stub out the (protected) download method so nothing is actually downloaded. + webdriverProxyStartStub = sandbox + .stub(tunnel.webDriverProxy, 'start') + .returns(Promise.resolve()); + webdriverProxyStopStub = sandbox + .stub(tunnel.webDriverProxy, 'stop') + .returns(Promise.resolve()); + }, + + tests: { + start() { + return (tunnel as any)._start().then(() => { + assert.isTrue(webdriverProxyStartStub.calledOnce); + assert.isFalse(webdriverProxyStopStub.calledOnce); + }); + }, + + stop() { + return (tunnel as any)._stop().then(() => { + assert.isFalse(webdriverProxyStartStub.calledOnce); + assert.isTrue(webdriverProxyStopStub.calledOnce); + }); + } + } + }, + + 'webDriver child factory': { + beforeEach() { + tunnel = new WebDriverTunnel({ + port: '9000' + }); + + childProcess = new MockChildProcess(); + + sandbox.stub(tunnelChildProcesses, 'makeChildWithCommand').callsFake( + (_command: string, executor: ChildExecutor): CancellablePromise => { + return new Task((resolve, reject) => { + executor(childProcess as any, resolve, reject); + }); + } + ); + }, + + tests: (function() { + const tests: { [key: string]: () => Promise } = {}; + BROWSER_NAMES.forEach(browserName => { + tests[`short startupWait with ${browserName}`] = function() { + tunnel.startupWait = 1; + return (tunnel as any) + .createWebDriverChild(browserName) + .then((webdriver: WebDriver) => { + assert.strictEqual(webdriver.name, browserName); + assert.strictEqual(webdriver.port, 9001); + assert.strictEqual(webdriver.failedInitAttempts, 0); + assert.exists((webdriver.handle as any).destroy); + assert.strictEqual( + webdriver.process as MockChildProcess, + childProcess + ); + }); + }; + + tests[ + `long startupWait with ${browserName}, fire stderr` + ] = function() { + tunnel.startupWait = 10000; + const promise = (tunnel as any) + .createWebDriverChild(browserName) + .then( + (webdriver: WebDriver) => { + fail(`task resolved for ${webdriver.name}`); + }, + (error: Error) => { + assert.strictEqual(error.message, 'Forced error'); + } + ); + childProcess.emit('error', new Error('Forced error')); + return promise; + }; + }); + return tests; + })() + } + } +}); + +function testFileExistsStubCalledWith( + fileExistsStub: SinonStub<[string], boolean>, + webDriverConfig: WebDriverConfig +) { + const expectedPath = join( + __dirname, + 'test_directory', + webDriverConfig.directory, + webDriverConfig.executable + ); + assert.isTrue( + fileExistsStub.calledWith(expectedPath), + `File exists not called with ${webDriverConfig.name} path` + ); +} + +function testDownloadFileStubCalledWith( + downloadFileStub: DownloadFileStub, + webDriverConfig: WebDriverConfig +) { + assert.isTrue( + downloadFileStub.calledWith(webDriverConfig.url, undefined, { + directory: webDriverConfig.directory, + dontExtract: webDriverConfig.dontExtract, + executable: webDriverConfig.executable + }), + `_downloadFile not called for "${ + webDriverConfig.name + }" as it should have been` + ); +}