@browserstack/testcafe
Version:
Automated browser testing for the modern web development stack.
46 lines • 6 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const testcafe_browser_tools_1 = require("testcafe-browser-tools");
const warning_message_1 = __importDefault(require("../../../notifications/warning-message"));
exports.default = {
canDetectLocalBrowsers: true,
localBrowsersFlags: {},
async openBrowser(browserId) {
if (!this.canDetectLocalBrowsers)
return;
await this.waitForConnectionReady(browserId);
const localBrowserWindow = await testcafe_browser_tools_1.findWindow(browserId);
this.localBrowsersFlags[browserId] = localBrowserWindow !== null;
},
async closeBrowser(browserId) {
delete this.localBrowsersFlags[browserId];
},
async isLocalBrowser(browserId) {
return this.localBrowsersFlags[browserId];
},
// NOTE: we must try to do a local screenshot or resize, if browser is accessible, and emit warning otherwise
async hasCustomActionForBrowser(browserId) {
const isLocalBrowser = this.localBrowsersFlags[browserId];
return {
hasCloseBrowser: true,
hasResizeWindow: !isLocalBrowser,
hasMaximizeWindow: !isLocalBrowser,
hasTakeScreenshot: !isLocalBrowser,
hasCanResizeWindowToDimensions: !isLocalBrowser
};
},
async takeScreenshot(browserId) {
this.reportWarning(browserId, warning_message_1.default.browserManipulationsOnRemoteBrowser);
},
async resizeWindow(browserId) {
this.reportWarning(browserId, warning_message_1.default.browserManipulationsOnRemoteBrowser);
},
async maximizeWindow(browserId) {
this.reportWarning(browserId, warning_message_1.default.browserManipulationsOnRemoteBrowser);
}
};
module.exports = exports.default;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Jyb3dzZXIvcHJvdmlkZXIvYnVpbHQtaW4vcmVtb3RlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUVBQW9EO0FBQ3BELDZGQUFxRTtBQUdyRSxrQkFBZTtJQUNYLHNCQUFzQixFQUFFLElBQUk7SUFFNUIsa0JBQWtCLEVBQUUsRUFBRTtJQUV0QixLQUFLLENBQUMsV0FBVyxDQUFFLFNBQVM7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxzQkFBc0I7WUFDNUIsT0FBTztRQUVYLE1BQU0sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTdDLE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxtQ0FBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXZELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxrQkFBa0IsS0FBSyxJQUFJLENBQUM7SUFDckUsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUUsU0FBUztRQUN6QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWMsQ0FBRSxTQUFTO1FBQzNCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCw2R0FBNkc7SUFDN0csS0FBSyxDQUFDLHlCQUF5QixDQUFFLFNBQVM7UUFDdEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTFELE9BQU87WUFDSCxlQUFlLEVBQWlCLElBQUk7WUFDcEMsZUFBZSxFQUFpQixDQUFDLGNBQWM7WUFDL0MsaUJBQWlCLEVBQWUsQ0FBQyxjQUFjO1lBQy9DLGlCQUFpQixFQUFlLENBQUMsY0FBYztZQUMvQyw4QkFBOEIsRUFBRSxDQUFDLGNBQWM7U0FDbEQsQ0FBQztJQUNOLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFFLFNBQVM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUseUJBQWUsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFFLFNBQVM7UUFDekIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUseUJBQWUsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFFLFNBQVM7UUFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLEVBQUUseUJBQWUsQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmluZFdpbmRvdyB9IGZyb20gJ3Rlc3RjYWZlLWJyb3dzZXItdG9vbHMnO1xuaW1wb3J0IFdBUk5JTkdfTUVTU0FHRSBmcm9tICcuLi8uLi8uLi9ub3RpZmljYXRpb25zL3dhcm5pbmctbWVzc2FnZSc7XG5cblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIGNhbkRldGVjdExvY2FsQnJvd3NlcnM6IHRydWUsXG5cbiAgICBsb2NhbEJyb3dzZXJzRmxhZ3M6IHt9LFxuXG4gICAgYXN5bmMgb3BlbkJyb3dzZXIgKGJyb3dzZXJJZCkge1xuICAgICAgICBpZiAoIXRoaXMuY2FuRGV0ZWN0TG9jYWxCcm93c2VycylcbiAgICAgICAgICAgIHJldHVybjtcblxuICAgICAgICBhd2FpdCB0aGlzLndhaXRGb3JDb25uZWN0aW9uUmVhZHkoYnJvd3NlcklkKTtcblxuICAgICAgICBjb25zdCBsb2NhbEJyb3dzZXJXaW5kb3cgPSBhd2FpdCBmaW5kV2luZG93KGJyb3dzZXJJZCk7XG5cbiAgICAgICAgdGhpcy5sb2NhbEJyb3dzZXJzRmxhZ3NbYnJvd3NlcklkXSA9IGxvY2FsQnJvd3NlcldpbmRvdyAhPT0gbnVsbDtcbiAgICB9LFxuXG4gICAgYXN5bmMgY2xvc2VCcm93c2VyIChicm93c2VySWQpIHtcbiAgICAgICAgZGVsZXRlIHRoaXMubG9jYWxCcm93c2Vyc0ZsYWdzW2Jyb3dzZXJJZF07XG4gICAgfSxcblxuICAgIGFzeW5jIGlzTG9jYWxCcm93c2VyIChicm93c2VySWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxCcm93c2Vyc0ZsYWdzW2Jyb3dzZXJJZF07XG4gICAgfSxcblxuICAgIC8vIE5PVEU6IHdlIG11c3QgdHJ5IHRvIGRvIGEgbG9jYWwgc2NyZWVuc2hvdCBvciByZXNpemUsIGlmIGJyb3dzZXIgaXMgYWNjZXNzaWJsZSwgYW5kIGVtaXQgd2FybmluZyBvdGhlcndpc2VcbiAgICBhc3luYyBoYXNDdXN0b21BY3Rpb25Gb3JCcm93c2VyIChicm93c2VySWQpIHtcbiAgICAgICAgY29uc3QgaXNMb2NhbEJyb3dzZXIgPSB0aGlzLmxvY2FsQnJvd3NlcnNGbGFnc1ticm93c2VySWRdO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBoYXNDbG9zZUJyb3dzZXI6ICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICBoYXNSZXNpemVXaW5kb3c6ICAgICAgICAgICAgICAgICFpc0xvY2FsQnJvd3NlcixcbiAgICAgICAgICAgIGhhc01heGltaXplV2luZG93OiAgICAgICAgICAgICAgIWlzTG9jYWxCcm93c2VyLFxuICAgICAgICAgICAgaGFzVGFrZVNjcmVlbnNob3Q6ICAgICAgICAgICAgICAhaXNMb2NhbEJyb3dzZXIsXG4gICAgICAgICAgICBoYXNDYW5SZXNpemVXaW5kb3dUb0RpbWVuc2lvbnM6ICFpc0xvY2FsQnJvd3NlclxuICAgICAgICB9O1xuICAgIH0sXG5cbiAgICBhc3luYyB0YWtlU2NyZWVuc2hvdCAoYnJvd3NlcklkKSB7XG4gICAgICAgIHRoaXMucmVwb3J0V2FybmluZyhicm93c2VySWQsIFdBUk5JTkdfTUVTU0FHRS5icm93c2VyTWFuaXB1bGF0aW9uc09uUmVtb3RlQnJvd3Nlcik7XG4gICAgfSxcblxuICAgIGFzeW5jIHJlc2l6ZVdpbmRvdyAoYnJvd3NlcklkKSB7XG4gICAgICAgIHRoaXMucmVwb3J0V2FybmluZyhicm93c2VySWQsIFdBUk5JTkdfTUVTU0FHRS5icm93c2VyTWFuaXB1bGF0aW9uc09uUmVtb3RlQnJvd3Nlcik7XG4gICAgfSxcblxuICAgIGFzeW5jIG1heGltaXplV2luZG93IChicm93c2VySWQpIHtcbiAgICAgICAgdGhpcy5yZXBvcnRXYXJuaW5nKGJyb3dzZXJJZCwgV0FSTklOR19NRVNTQUdFLmJyb3dzZXJNYW5pcHVsYXRpb25zT25SZW1vdGVCcm93c2VyKTtcbiAgICB9XG59O1xuIl19