UNPKG

@nova-ui/bits

Version:

SolarWinds Nova Framework

81 lines 3.67 kB
"use strict"; // © 2022 SolarWinds Worldwide, LLC. All rights reserved. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to // deal in the Software without restriction, including without limitation the // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or // sell copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. Object.defineProperty(exports, "__esModule", { value: true }); exports.CameraEngine = void 0; const tslib_1 = require("tslib"); const fs = tslib_1.__importStar(require("fs")); const percy_lens_1 = require("./percy-lens"); const types_1 = require("./types"); const helpers_1 = require("../helpers"); class CameraEngine { constructor(browser, settings) { this.browser = browser; this.settings = settings; this.snapshotsFolderName = "_snapshots"; this.useLens(); } useLens() { if (!this.browser) { throw new Error("Protractor's 'browser' instance is required! Please pass one as an argument to the 'loadFilm()' method"); } this.settings.globalLens = this.browser.params["visual"]; if (this.settings.globalLens && types_1.LENSES.includes(this.settings.globalLens)) { switch (this.settings.globalLens) { case types_1.LensType.Percy: this.currentLensInstance = new percy_lens_1.PercyLens(this.browser, this.settings); break; case types_1.LensType.Eyes: throw new Error(`Eyes lens is not supported any more. Please use Percy lens instead.`); break; } } else { throw new Error("No suitable lenses found! Check the global lens name in your 'protractor.conf.js' file"); } return this; } takePhoto(label) { return tslib_1.__awaiter(this, void 0, void 0, function* () { if (this.browser.params["snapshotsUpload"] === "manual") { if (!fs.existsSync(this.snapshotsFolderName)) { fs.mkdirSync(this.snapshotsFolderName); } yield helpers_1.Helpers.saveScreenShot(`${this.snapshotsFolderName}/${this.cleanFileName(this.settings.currentTestName)}_${this.cleanFileName(label)}.png`); return; } if (!this.settings.fullframe) { return yield this.currentLensInstance.takeSnapshot(label); } if (this.settings.fullframe) { return yield this.currentLensInstance.takeFullScreenSnapshot(label); } }); } getToolConfig() { return this.currentLensInstance.toolConfig(); } cleanFileName(name) { return name.replace(/[\\\/\s]/g, "_"); } } exports.CameraEngine = CameraEngine; //# sourceMappingURL=camera-engine.js.map