@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
JavaScript
;
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