2019-07-24 10:27:47 -04:00

72 lines
2.4 KiB
TypeScript

import { Tree } from '@angular-devkit/schematics';
import { createEmptyWorkspace } from '@nrwl/workspace/testing';
import { SchematicTestRunner } from '@angular-devkit/schematics/testing';
import { join } from 'path';
import { readJsonInTree, updateJsonInTree } from '@nrwl/workspace';
import { callRule, runSchematic } from '../../utils/testing';
describe('ng-add', () => {
let tree: Tree;
let testRunner: SchematicTestRunner;
beforeEach(() => {
tree = Tree.empty();
tree = createEmptyWorkspace(tree);
testRunner = new SchematicTestRunner(
'@nrwl/express',
join(__dirname, '../../../collection.json')
);
});
it('should add dependencies', async () => {
const result = await testRunner
.runSchematicAsync('ng-add', {}, tree)
.toPromise();
const packageJson = readJsonInTree(result, 'package.json');
expect(packageJson.dependencies['@nrwl/express']).toBeUndefined();
expect(packageJson.devDependencies['@nrwl/express']).toBeDefined();
expect(packageJson.dependencies['express']).toBeDefined();
expect(packageJson.devDependencies['@types/express']).toBeDefined();
});
describe('defaultCollection', () => {
it('should be set if none was set before', async () => {
const result = await runSchematic('ng-add', {}, tree);
const workspaceJson = readJsonInTree(result, 'workspace.json');
expect(workspaceJson.cli.defaultCollection).toEqual('@nrwl/express');
});
it('should be set if @nrwl/workspace was set before', async () => {
tree = await callRule(
updateJsonInTree('workspace.json', json => {
json.cli = {
defaultCollection: '@nrwl/workspace'
};
return json;
}),
tree
);
const result = await runSchematic('ng-add', {}, tree);
const workspaceJson = readJsonInTree(result, 'workspace.json');
expect(workspaceJson.cli.defaultCollection).toEqual('@nrwl/express');
});
it('should not be set if something else was set before', async () => {
tree = await callRule(
updateJsonInTree('workspace.json', json => {
json.cli = {
defaultCollection: '@nrwl/angular'
};
return json;
}),
tree
);
const result = await runSchematic('ng-add', {}, tree);
const workspaceJson = readJsonInTree(result, 'workspace.json');
expect(workspaceJson.cli.defaultCollection).toEqual('@nrwl/angular');
});
});
});