UNPKG

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
#!/usr/bin/env node "use strict"; 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