@progress/kendo-e2e
Version:
Kendo UI end-to-end test utilities.
106 lines • 4.19 kB
JavaScript
;
/* eslint @typescript-eslint/no-var-requires: "off" */
/* eslint @typescript-eslint/ban-ts-comment: "off" */
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
const capture_1 = require("./capture");
const fs = __importStar(require("fs"));
const commander_1 = require("commander");
const http_server_1 = require("http-server");
const version = JSON.parse(fs.readFileSync(`${__dirname}/../../package.json`, { encoding: 'utf-8' })).version;
const configName = `${process.cwd()}/.snapshotrc`;
function readConfig() {
if (!fs.existsSync(configName)) {
console.info('No config file found. Using defaults.');
return {};
}
try {
return JSON.parse(fs.readFileSync(configName, { encoding: 'utf-8' }));
}
catch (e) {
console.error('Can not parse .snapshotrc');
console.error(e);
process.exit(1);
}
}
const snapshotrc = readConfig();
function parseViewportSize(val) {
val = val.split(',');
return { width: Number(val[0]), height: Number(val[1]) };
}
commander_1.program
.version(version)
.usage('[options] ')
.option('--output <dir>', 'Output directory for the captured screenshots', snapshotrc.output || 'snapshots')
.option('--serve <glob>', 'Pages to serve with an embedded HTTP server', snapshotrc.serve || false)
.option('--port <number>', 'Port number for the embedded HTTP server (--serve)', snapshotrc.port || 8081)
.option('--browser <firefox|chrome>', 'Browser that will take screenshots', snapshotrc.browser || 'firefox')
.option('--viewport-size <width,height>', 'Initial window size (default: 1024,768)', parseViewportSize)
.option('--selector <css selector>', 'Scope screenshot to specific selector. Leave empty for viewport', snapshotrc.selector || '')
.option('--tolerance <number>', 'Tolerance to use when comparing', snapshotrc.tolerance || 0)
.option('--create-diff <boolean>', 'Create diff image', snapshotrc.createDiff || false)
.parse(process.argv);
const options = commander_1.program.opts();
const { browser, serve, port, output, viewportSize, selector, tolerance, createDiff } = Object.assign(Object.assign({}, snapshotrc), options);
const pages = fs.globSync(serve);
const root = serve.substring(0, serve.indexOf('*') - 1);
const server = (0, http_server_1.createServer)({
root: './',
showDotfiles: false,
port
});
server.listen(port);
(0, capture_1.capture)({
host: `http://localhost:${port}/`,
browser,
output,
pages,
root,
viewportSize,
selector,
tolerance,
createDiff
})
.then(() => {
server.close();
process.exit(0);
})
.catch((error) => {
console.error('Error during snapshot capture:', error);
server.close();
process.exit(1);
});
//# sourceMappingURL=index.js.map