@yolkai/nx-workspace
Version:
59 lines (56 loc) • 2.32 kB
JavaScript
"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')
}
});
};
`;