theia-extension-tester
Version:
A testing library built on Selenium to test Eclipse Theia extensions / plugins. Eclipse Che is supported as well.
74 lines • 4.6 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const options_1 = require("./options");
const api_1 = require("./api");
const commander_1 = require("commander");
function main() {
return __awaiter(this, void 0, void 0, function* () {
const THEIA_DICTIONARY = {
'IDE': 'Eclipse Theia'
};
const CHE_DICTIONARY = {
'IDE': 'Eclipse Che'
};
commander_1.program.description('Test launcher for Che-Theia and Theia based editors.');
commander_1.program.command('theia:run')
.description('Launch user interface tests on Eclipse Theia.')
.argument(`<${options_1.TESTS_ARGUMENT}...>', 'Path to the test suites which will be executed`)
.option(...options_1.optionToCli(options_1.URL_OPTION_METADATA, THEIA_DICTIONARY))
.option(...options_1.optionToCli(options_1.BROWSER_OPTION_METADATA, THEIA_DICTIONARY))
.option(...options_1.optionToCli(options_1.DRIVER_OPTION_METADATA, THEIA_DICTIONARY))
.option(...options_1.optionToCli(options_1.CLEAN_OPTION_METADATA, THEIA_DICTIONARY))
.option(...options_1.optionToCli(options_1.LOG_OPTION_METADATA, THEIA_DICTIONARY))
.option(...options_1.optionToCli(options_1.TIMEOUTS_OPTION_METADATA, THEIA_DICTIONARY))
.option(...options_1.optionToCli(options_1.QUERY_OPTION_METADATA, THEIA_DICTIONARY))
.option(...options_1.optionToCli(options_1.FOLDER_OPTION_METADATA, THEIA_DICTIONARY))
.option(...options_1.optionToCli(options_1.COPY_FILES_OPTION_METADATA, THEIA_DICTIONARY))
.option(...options_1.optionToCli(options_1.ENV_OPTION_METADATA, THEIA_DICTIONARY))
.option(...options_1.optionToCli(options_1.MOCHA_OPTION_METADATA, THEIA_DICTIONARY))
.action(theiaAction);
commander_1.program.command('che:run')
.description('Launch user interface tests on Eclipse Che.')
.argument(`<${options_1.DEVFILE_ARGUMENT}>`, 'Devfile url location. Devfiles are used for workspace creation.')
.argument(`<${options_1.TESTS_ARGUMENT}...>`, 'Path to test suites which will be executed')
.option(...options_1.optionToCli(options_1.URL_OPTION_METADATA, CHE_DICTIONARY))
.option(...options_1.optionToCli(options_1.BROWSER_OPTION_METADATA, CHE_DICTIONARY))
.option(...options_1.optionToCli(options_1.DRIVER_OPTION_METADATA, CHE_DICTIONARY))
.option(...options_1.optionToCli(options_1.CLEAN_OPTION_METADATA, CHE_DICTIONARY))
.option(...options_1.optionToCli(options_1.LOG_OPTION_METADATA, CHE_DICTIONARY))
.option(...options_1.optionToCli(options_1.TIMEOUTS_OPTION_METADATA, CHE_DICTIONARY))
.option(...options_1.optionToCli(options_1.DEVFILE_ATTRIBUTES_OPTIONS_METADATA, CHE_DICTIONARY))
.option(...options_1.optionToCli(options_1.ENV_OPTION_METADATA, CHE_DICTIONARY))
.option(...options_1.optionToCli(options_1.AUTHENTICATION_OPTION_METADATA, CHE_DICTIONARY))
.option(...options_1.optionToCli(options_1.MOCHA_OPTION_METADATA, CHE_DICTIONARY))
.action(cheAction);
commander_1.program.parse(process.argv);
});
}
function theiaAction(tests, options, command) {
return __awaiter(this, void 0, void 0, function* () {
const tester = new api_1.TheiaExTester(Object.assign(Object.assign({}, options), { tests }));
process.exit(yield tester.runTests());
});
}
function cheAction(devfile, tests, options, command) {
return __awaiter(this, void 0, void 0, function* () {
const tester = new api_1.CheExTester(Object.assign(Object.assign({}, options), { devfile,
tests }));
process.exit(yield tester.runTests());
});
}
if (require.main === module) {
main();
}
//# sourceMappingURL=cli.js.map