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