import { Tree } from '@angular-devkit/schematics';
import { SchematicTestRunner } from '@angular-devkit/schematics/testing';
import { readWorkspace } from '@nrwl/workspace';

import * as path from 'path';

describe('set buildLibsFromSource to true', () => {
  let tree: Tree;
  let schematicRunner: SchematicTestRunner;

  beforeEach(async () => {
    tree = Tree.empty();
    schematicRunner = new SchematicTestRunner(
      '@nrwl/web',
      path.join(__dirname, '../../../migrations.json')
    );
  });

  it(`should set buildLibsFromSource to true`, async () => {
    tree.create(
      'workspace.json',
      JSON.stringify({
        projects: {
          demo: {
            root: 'apps/demo',
            sourceRoot: 'apps/demo/src',
            architect: {
              build: {
                builder: '@nrwl/web:build',
                options: {},
              },
            },
          },
        },
      })
    );

    tree = await schematicRunner
      .runSchematicAsync('set-build-libs-from-source', {}, tree)
      .toPromise();

    const config = readWorkspace(tree);
    expect(config.projects.demo.architect.build.options).toEqual({
      buildLibsFromSource: true,
    });
  });
});
