UNPKG

stryker

Version:
100 lines 4.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var inquirer = require("inquirer"); var handbookUrl = 'https://github.com/stryker-mutator/stryker-handbook/blob/master/stryker/guides/vuejs.md#vuejs'; /** * More information can be found in the Stryker handbook: * https://github.com/stryker-mutator/stryker-handbook/blob/master/stryker/guides/vuejs.md#vuejs */ var VueJsPreset = /** @class */ (function () { function VueJsPreset() { this.name = 'vueJs'; this.generalDependencies = [ 'stryker', 'stryker-vue-mutator', 'stryker-html-reporter' ]; this.jestDependency = 'stryker-jest-runner'; this.jestConf = "{\n mutate: ['src/**/*.js', 'src/**/*.ts', 'src/**/*.vue'],\n mutator: 'vue',\n testRunner: 'jest',\n jest: {\n // config: require('path/to/your/custom/jestConfig.js')\n },\n reporter: ['progress', 'clear-text', 'html'],\n coverageAnalysis: 'off'\n }"; this.karmaDependency = 'stryker-karma-runner'; this.karmaConf = "{\n mutate: ['src/**/*.js', 'src/**/*.ts', 'src/**/*.vue'],\n mutator: 'vue',\n testRunner: 'karma',\n karma: {\n configFile: 'test/unit/karma.conf.js',\n config: {\n browsers: ['ChromeHeadless']\n }\n },\n reporter: ['progress', 'clear-text', 'html'],\n coverageAnalysis: 'off'\n }"; } VueJsPreset.prototype.createConfig = function () { return tslib_1.__awaiter(this, void 0, void 0, function () { var testRunnerChoices, testRunnerAnswers, scriptChoices, scriptAnswers, chosenTestRunner, chosenScript; return tslib_1.__generator(this, function (_a) { switch (_a.label) { case 0: testRunnerChoices = ['karma', 'jest']; return [4 /*yield*/, inquirer.prompt({ choices: testRunnerChoices, message: 'Which test runner do you want to use?', name: 'testRunner', type: 'list' })]; case 1: testRunnerAnswers = _a.sent(); scriptChoices = ['typescript', 'javascript']; return [4 /*yield*/, inquirer.prompt({ choices: scriptChoices, message: 'Which language does your project use?', name: 'script', type: 'list' })]; case 2: scriptAnswers = _a.sent(); chosenTestRunner = testRunnerAnswers.testRunner; chosenScript = scriptAnswers.script; return [2 /*return*/, { config: this.getConfigString(chosenTestRunner), dependencies: this.createDependencies(chosenTestRunner, chosenScript), handbookUrl: handbookUrl }]; } }); }); }; VueJsPreset.prototype.getConfigString = function (testRunner) { if (testRunner === 'karma') { return this.karmaConf; } else if (testRunner === 'jest') { return this.jestConf; } else { throw new Error("Invalid test runner chosen: " + testRunner); } }; VueJsPreset.prototype.createDependencies = function (testRunner, script) { var dependencies = this.generalDependencies; dependencies.push(this.getTestRunnerDependency(testRunner)); dependencies.push(this.getScriptDependency(script)); return dependencies; }; VueJsPreset.prototype.getScriptDependency = function (script) { if (script === 'typescript') { return 'stryker-typescript'; } else if (script === 'javascript') { return 'stryker-javascript-mutator'; } else { throw new Error("Invalid script chosen: " + script); } }; VueJsPreset.prototype.getTestRunnerDependency = function (testRunner) { if (testRunner === 'karma') { return this.karmaDependency; } else if (testRunner === 'jest') { return this.jestDependency; } else { throw new Error("Invalid test runner chosen: " + testRunner); } }; return VueJsPreset; }()); exports.VueJsPreset = VueJsPreset; //# sourceMappingURL=VueJsPreset.js.map