1 | ;
|
2 | var __importDefault = (this && this.__importDefault) || function (mod) {
|
3 | return (mod && mod.__esModule) ? mod : { "default": mod };
|
4 | };
|
5 | Object.defineProperty(exports, "__esModule", { value: true });
|
6 | const lodash_1 = require("lodash");
|
7 | const moment_1 = __importDefault(require("moment"));
|
8 | const capturer_1 = __importDefault(require("./capturer"));
|
9 | const path_pattern_1 = __importDefault(require("../utils/path-pattern"));
|
10 | const get_common_path_1 = __importDefault(require("../utils/get-common-path"));
|
11 | const SCREENSHOT_EXTENSION = 'png';
|
12 | class Screenshots {
|
13 | constructor({ enabled, path, pathPattern, fullPage }) {
|
14 | this.enabled = enabled;
|
15 | this.screenshotsPath = path;
|
16 | this.screenshotsPattern = pathPattern;
|
17 | this.fullPage = fullPage;
|
18 | this.testEntries = [];
|
19 | this.now = moment_1.default();
|
20 | }
|
21 | _addTestEntry(test) {
|
22 | const testEntry = {
|
23 | test: test,
|
24 | screenshots: []
|
25 | };
|
26 | this.testEntries.push(testEntry);
|
27 | return testEntry;
|
28 | }
|
29 | _getTestEntry(test) {
|
30 | return lodash_1.find(this.testEntries, entry => entry.test === test);
|
31 | }
|
32 | _ensureTestEntry(test) {
|
33 | let testEntry = this._getTestEntry(test);
|
34 | if (!testEntry)
|
35 | testEntry = this._addTestEntry(test);
|
36 | return testEntry;
|
37 | }
|
38 | getScreenshotsInfo(test) {
|
39 | return this._getTestEntry(test).screenshots;
|
40 | }
|
41 | hasCapturedFor(test) {
|
42 | return this.getScreenshotsInfo(test).length > 0;
|
43 | }
|
44 | getPathFor(test) {
|
45 | const testEntry = this._getTestEntry(test);
|
46 | const screenshotPaths = testEntry.screenshots.map(screenshot => screenshot.screenshotPath);
|
47 | return get_common_path_1.default(screenshotPaths);
|
48 | }
|
49 | createCapturerFor(test, testIndex, quarantine, connection, warningLog) {
|
50 | const testEntry = this._ensureTestEntry(test);
|
51 | const pathPattern = new path_pattern_1.default(this.screenshotsPattern, SCREENSHOT_EXTENSION, {
|
52 | testIndex,
|
53 | quarantineAttempt: quarantine ? quarantine.getNextAttemptNumber() : null,
|
54 | now: this.now,
|
55 | fixture: test.fixture.name,
|
56 | test: test.name,
|
57 | parsedUserAgent: connection.browserInfo.parsedUserAgent,
|
58 | });
|
59 | return new capturer_1.default(this.screenshotsPath, testEntry, connection, pathPattern, this.fullPage, warningLog);
|
60 | }
|
61 | }
|
62 | exports.default = Screenshots;
|
63 | module.exports = exports.default;
|
64 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyZWVuc2hvdHMvaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBOEI7QUFDOUIsb0RBQTRCO0FBQzVCLDBEQUFrQztBQUNsQyx5RUFBZ0Q7QUFDaEQsK0VBQXFEO0FBR3JELE1BQU0sb0JBQW9CLEdBQUcsS0FBSyxDQUFDO0FBRW5DLE1BQXFCLFdBQVc7SUFDNUIsWUFBYSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRTtRQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFjLE9BQU8sQ0FBQztRQUNsQyxJQUFJLENBQUMsZUFBZSxHQUFNLElBQUksQ0FBQztRQUMvQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEdBQWEsUUFBUSxDQUFDO1FBQ25DLElBQUksQ0FBQyxXQUFXLEdBQVUsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxHQUFHLEdBQWtCLGdCQUFNLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsYUFBYSxDQUFFLElBQUk7UUFDZixNQUFNLFNBQVMsR0FBRztZQUNkLElBQUksRUFBUyxJQUFJO1lBQ2pCLFdBQVcsRUFBRSxFQUFFO1NBQ2xCLENBQUM7UUFFRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVqQyxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRUQsYUFBYSxDQUFFLElBQUk7UUFDZixPQUFPLGFBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsZ0JBQWdCLENBQUUsSUFBSTtRQUNsQixJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQyxTQUFTO1lBQ1YsU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFekMsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVELGtCQUFrQixDQUFFLElBQUk7UUFDcEIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsQ0FBQztJQUNoRCxDQUFDO0lBRUQsY0FBYyxDQUFFLElBQUk7UUFDaEIsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsVUFBVSxDQUFFLElBQUk7UUFDWixNQUFNLFNBQVMsR0FBUyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pELE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRTNGLE9BQU8seUJBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsaUJBQWlCLENBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7UUFDbEUsTUFBTSxTQUFTLEdBQUssSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hELE1BQU0sV0FBVyxHQUFHLElBQUksc0JBQVcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUU7WUFDL0UsU0FBUztZQUNULGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDeEUsR0FBRyxFQUFnQixJQUFJLENBQUMsR0FBRztZQUMzQixPQUFPLEVBQVksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJO1lBQ3BDLElBQUksRUFBZSxJQUFJLENBQUMsSUFBSTtZQUM1QixlQUFlLEVBQUksVUFBVSxDQUFDLFdBQVcsQ0FBQyxlQUFlO1NBQzVELENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxrQkFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUM3RyxDQUFDO0NBQ0o7QUE5REQsOEJBOERDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZmluZCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgQ2FwdHVyZXIgZnJvbSAnLi9jYXB0dXJlcic7XG5pbXBvcnQgUGF0aFBhdHRlcm4gZnJvbSAnLi4vdXRpbHMvcGF0aC1wYXR0ZXJuJztcbmltcG9ydCBnZXRDb21tb25QYXRoIGZyb20gJy4uL3V0aWxzL2dldC1jb21tb24tcGF0aCc7XG5cblxuY29uc3QgU0NSRUVOU0hPVF9FWFRFTlNJT04gPSAncG5nJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU2NyZWVuc2hvdHMge1xuICAgIGNvbnN0cnVjdG9yICh7IGVuYWJsZWQsIHBhdGgsIHBhdGhQYXR0ZXJuLCBmdWxsUGFnZSB9KSB7XG4gICAgICAgIHRoaXMuZW5hYmxlZCAgICAgICAgICAgID0gZW5hYmxlZDtcbiAgICAgICAgdGhpcy5zY3JlZW5zaG90c1BhdGggICAgPSBwYXRoO1xuICAgICAgICB0aGlzLnNjcmVlbnNob3RzUGF0dGVybiA9IHBhdGhQYXR0ZXJuO1xuICAgICAgICB0aGlzLmZ1bGxQYWdlICAgICAgICAgICA9IGZ1bGxQYWdlO1xuICAgICAgICB0aGlzLnRlc3RFbnRyaWVzICAgICAgICA9IFtdO1xuICAgICAgICB0aGlzLm5vdyAgICAgICAgICAgICAgICA9IG1vbWVudCgpO1xuICAgIH1cblxuICAgIF9hZGRUZXN0RW50cnkgKHRlc3QpIHtcbiAgICAgICAgY29uc3QgdGVzdEVudHJ5ID0ge1xuICAgICAgICAgICAgdGVzdDogICAgICAgIHRlc3QsXG4gICAgICAgICAgICBzY3JlZW5zaG90czogW11cbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLnRlc3RFbnRyaWVzLnB1c2godGVzdEVudHJ5KTtcblxuICAgICAgICByZXR1cm4gdGVzdEVudHJ5O1xuICAgIH1cblxuICAgIF9nZXRUZXN0RW50cnkgKHRlc3QpIHtcbiAgICAgICAgcmV0dXJuIGZpbmQodGhpcy50ZXN0RW50cmllcywgZW50cnkgPT4gZW50cnkudGVzdCA9PT0gdGVzdCk7XG4gICAgfVxuXG4gICAgX2Vuc3VyZVRlc3RFbnRyeSAodGVzdCkge1xuICAgICAgICBsZXQgdGVzdEVudHJ5ID0gdGhpcy5fZ2V0VGVzdEVudHJ5KHRlc3QpO1xuXG4gICAgICAgIGlmICghdGVzdEVudHJ5KVxuICAgICAgICAgICAgdGVzdEVudHJ5ID0gdGhpcy5fYWRkVGVzdEVudHJ5KHRlc3QpO1xuXG4gICAgICAgIHJldHVybiB0ZXN0RW50cnk7XG4gICAgfVxuXG4gICAgZ2V0U2NyZWVuc2hvdHNJbmZvICh0ZXN0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRUZXN0RW50cnkodGVzdCkuc2NyZWVuc2hvdHM7XG4gICAgfVxuXG4gICAgaGFzQ2FwdHVyZWRGb3IgKHRlc3QpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U2NyZWVuc2hvdHNJbmZvKHRlc3QpLmxlbmd0aCA+IDA7XG4gICAgfVxuXG4gICAgZ2V0UGF0aEZvciAodGVzdCkge1xuICAgICAgICBjb25zdCB0ZXN0RW50cnkgICAgICAgPSB0aGlzLl9nZXRUZXN0RW50cnkodGVzdCk7XG4gICAgICAgIGNvbnN0IHNjcmVlbnNob3RQYXRocyA9IHRlc3RFbnRyeS5zY3JlZW5zaG90cy5tYXAoc2NyZWVuc2hvdCA9PiBzY3JlZW5zaG90LnNjcmVlbnNob3RQYXRoKTtcblxuICAgICAgICByZXR1cm4gZ2V0Q29tbW9uUGF0aChzY3JlZW5zaG90UGF0aHMpO1xuICAgIH1cblxuICAgIGNyZWF0ZUNhcHR1cmVyRm9yICh0ZXN0LCB0ZXN0SW5kZXgsIHF1YXJhbnRpbmUsIGNvbm5lY3Rpb24sIHdhcm5pbmdMb2cpIHtcbiAgICAgICAgY29uc3QgdGVzdEVudHJ5ICAgPSB0aGlzLl9lbnN1cmVUZXN0RW50cnkodGVzdCk7XG4gICAgICAgIGNvbnN0IHBhdGhQYXR0ZXJuID0gbmV3IFBhdGhQYXR0ZXJuKHRoaXMuc2NyZWVuc2hvdHNQYXR0ZXJuLCBTQ1JFRU5TSE9UX0VYVEVOU0lPTiwge1xuICAgICAgICAgICAgdGVzdEluZGV4LFxuICAgICAgICAgICAgcXVhcmFudGluZUF0dGVtcHQ6IHF1YXJhbnRpbmUgPyBxdWFyYW50aW5lLmdldE5leHRBdHRlbXB0TnVtYmVyKCkgOiBudWxsLFxuICAgICAgICAgICAgbm93OiAgICAgICAgICAgICAgIHRoaXMubm93LFxuICAgICAgICAgICAgZml4dHVyZTogICAgICAgICAgIHRlc3QuZml4dHVyZS5uYW1lLFxuICAgICAgICAgICAgdGVzdDogICAgICAgICAgICAgIHRlc3QubmFtZSxcbiAgICAgICAgICAgIHBhcnNlZFVzZXJBZ2VudDogICBjb25uZWN0aW9uLmJyb3dzZXJJbmZvLnBhcnNlZFVzZXJBZ2VudCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBDYXB0dXJlcih0aGlzLnNjcmVlbnNob3RzUGF0aCwgdGVzdEVudHJ5LCBjb25uZWN0aW9uLCBwYXRoUGF0dGVybiwgdGhpcy5mdWxsUGFnZSwgd2FybmluZ0xvZyk7XG4gICAgfVxufVxuIl19 |
\ | No newline at end of file |