UNPKG

@serenity-js/webdriverio

Version:

Adapter that integrates @serenity-js/web with the latest stable version of WebdriverIO, enabling Serenity/JS reporting and using the Screenplay Pattern to write web and mobile test scenarios

56 lines 2.02 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TagPrinter = void 0; const index_js_1 = require("@serenity-js/core/lib/model/index.js"); /** * @package */ class TagPrinter { tagsFor(capability) { const desiredCapabilities = this.desired(capability); return [ this.browserTagFor(desiredCapabilities), this.platformTagFor(desiredCapabilities), ]; } browserTagFor(capabilities) { return new index_js_1.BrowserTag(this.browserNameFrom(capabilities), this.browserVersionFrom(capabilities)); } platformTagFor(capabilities) { return new index_js_1.PlatformTag(this.platformNameFrom(capabilities), this.platformVersionFrom(capabilities)); } browserNameFrom(capabilities) { return capabilities['browserName'] || capabilities['browser'] || (capabilities['appium:app'] && capabilities['appium:app'].replace('sauce-storage:', '')) || 'unknown'; } browserVersionFrom(capabilities) { return capabilities['deviceName'] // mobile web || capabilities['appium:deviceName'] || capabilities['browserVersion'] // W3C format || capabilities['version'] // JSONWP format || capabilities['browser_version']; // BrowserStack } platformNameFrom(capabilities) { return capabilities['platformName'] || capabilities['appium:platformName'] || capabilities['platform'] || capabilities['os'] || 'unknown'; } platformVersionFrom(capabilities) { return capabilities['appium:platformVersion'] || capabilities['os_version']; } desired(capabilities) { return this.isW3C(capabilities) ? capabilities.alwaysMatch : capabilities; } isW3C(capabilities) { return Boolean(capabilities['alwaysMatch']); } } exports.TagPrinter = TagPrinter; //# sourceMappingURL=TagPrinter.js.map