Skip to content

Commit b6bccbf

Browse files
committed
Quit browserstack driver directly after fail and report status of test back
1 parent c9de28c commit b6bccbf

File tree

1 file changed

+65
-48
lines changed

1 file changed

+65
-48
lines changed

test/index.js

Lines changed: 65 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ const getSeleniumVersion = ({ browser, os, browser_version }) => {
6363
if (os === "Windows" && browser === "ie") return "3.5.2";
6464
if (browser === "firefox" && version(browser_version) >= 94) return "4.0.0";
6565

66-
return "4.0.0-alpha-2";
66+
return "4.8.0";
6767
};
6868

6969
const getAppiumVersion = ({ device, os, os_version }) => {
@@ -328,60 +328,77 @@ const getDeviceName = ({
328328
// Empty global REQUESTS
329329
global.REQUESTS = [];
330330

331-
await navigate({
332-
...browser,
333-
commands,
334-
driver,
335-
});
331+
let errorMessage = null;
336332

337-
// console.log(JSON.stringify(global.REQUESTS, null, 2));
333+
try {
334+
await navigate({
335+
...browser,
336+
commands,
337+
driver,
338+
});
338339

339-
if (browser.supportsSendBeacon) {
340-
log("Testing beacon");
341-
await require("./test-beacon")(browser);
342-
} else if (browser.supportsPushState) {
343-
log("Testing one beacon");
344-
await require("./test-one-beacon")(browser);
345-
}
340+
// console.log(JSON.stringify(global.REQUESTS, null, 2));
346341

347-
if (browser.supportsPushState) {
348-
log("Testing push state");
349-
await require("./test-pushstate")(browser);
350-
} else {
351-
log("Testing no push state");
352-
await require("./test-no-pushstate")(browser);
353-
}
342+
if (browser.supportsSendBeacon) {
343+
log("Testing beacon");
344+
await require("./test-beacon")(browser);
345+
} else if (browser.supportsPushState) {
346+
log("Testing one beacon");
347+
await require("./test-one-beacon")(browser);
348+
}
354349

355-
if (browser.supportsClientHints) {
356-
log("We can't test client hints because they only work on https");
357-
}
350+
if (browser.supportsPushState) {
351+
log("Testing push state");
352+
await require("./test-pushstate")(browser);
353+
} else {
354+
log("Testing no push state");
355+
await require("./test-no-pushstate")(browser);
356+
}
357+
358+
if (browser.supportsClientHints) {
359+
log("We can't test client hints because they only work on https");
360+
}
358361

359-
log("Testing events");
362+
log("Testing events");
360363

361-
// Empty global REQUESTS
362-
global.REQUESTS = [];
364+
// Empty global REQUESTS
365+
global.REQUESTS = [];
363366

364-
commands = [
365-
{ script: "/latest/hello.js", event: "-- event 123 &&" },
366-
{ wait: "/simple.gif", params: { body: { type: "event" } } },
367-
{ script: "/latest/hello.js", event: "function" },
368-
{ script: "/latest/hello.js", event: "metadata" },
369-
{
370-
wait: "/simple.gif",
371-
params: { body: { type: "event" } },
372-
amount: 3,
373-
},
374-
];
375-
376-
await navigate({
377-
...browser,
378-
commands,
379-
driver,
380-
});
381-
382-
await require("./test-events")(browser);
383-
384-
if (driver) await driver.quit();
367+
commands = [
368+
{ script: "/latest/hello.js", event: "-- event 123 &&" },
369+
{ wait: "/simple.gif", params: { body: { type: "event" } } },
370+
{ script: "/latest/hello.js", event: "function" },
371+
{ script: "/latest/hello.js", event: "metadata" },
372+
{
373+
wait: "/simple.gif",
374+
params: { body: { type: "event" } },
375+
amount: 3,
376+
},
377+
];
378+
379+
await navigate({
380+
...browser,
381+
commands,
382+
driver,
383+
});
384+
385+
await require("./test-events")(browser);
386+
} catch (error) {
387+
errorMessage = error.message;
388+
throw error;
389+
} finally {
390+
if (!driver) return;
391+
392+
const reason = errorMessage?.replace(/"/g, "'") || "";
393+
394+
driver.executeScript(
395+
`browserstack_executor: {"action": "setSessionStatus", "arguments": {"status":"${
396+
errorMessage ? "failed" : "passed"
397+
}","reason": "${reason}"}}`
398+
);
399+
400+
await driver.quit();
401+
}
385402
};
386403

387404
for (const [index, browser] of browsers.entries()) {

0 commit comments

Comments
 (0)