UNPKG

@yolkai/nx-workspace

Version:

Extensible Dev Tools for Monorepos

59 lines (56 loc) 2.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const testing_1 = require("@angular-devkit/schematics/testing"); const schematics_1 = require("@angular-devkit/schematics"); const path = require("path"); const update_karma_conf_1 = require("./update-karma-conf"); const testing_utils_1 = require("../testing-utils"); const ast_utils_1 = require("../ast-utils"); describe('updateKarmaConf', () => { let tree; let schematicRunner; beforeEach(done => { schematicRunner = new testing_1.SchematicTestRunner('@yolkai/nx-workspace', path.join(__dirname, '../../../collection.json')); tree = testing_utils_1.createEmptyWorkspace(schematics_1.Tree.empty()); tree.create('apps/projectName/karma.conf.js', ''); const process$ = schematicRunner.callRule(ast_utils_1.updateJsonInTree('/workspace.json', workspaceJson => { workspaceJson.projects.projectName = { root: 'apps/projectName', architect: { test: { options: { karmaConfig: 'apps/projectName/karma.conf.js' } } } }; return workspaceJson; }), tree); process$.subscribe(_ => done(), error => { console.log(error); }); }); it('should overwrite the karma.conf.js', done => { const replaceKarmaConf = update_karma_conf_1.updateKarmaConf({ projectName: 'projectName' }); schematicRunner.callRule(replaceKarmaConf, tree).subscribe(result => { const contents = result.read('apps/projectName/karma.conf.js'); expect(contents.toString()).toEqual(UPDATED_KARMA_CONF); done(); }); }); }); const UPDATED_KARMA_CONF = `// Karma configuration file, see link for more information // https://karma-runner.github.io/1.0/config/configuration-file.html const { join } = require('path'); const getBaseKarmaConfig = require('../../karma.conf'); module.exports = function(config) { const baseConfig = getBaseKarmaConfig(); config.set({ ...baseConfig, coverageIstanbulReporter: { ...baseConfig.coverageIstanbulReporter, dir: join(__dirname, '../../coverage/apps/projectName') } }); }; `;