import { join } from 'path'; import { map } from 'rxjs/operators'; import { importModule, rxReadTypescriptFile } from '../src/utils/ast.utils'; import { getAssetBaseDir } from './utils/test.utils'; describe('ast.utils', () => { it('should be able to insert a module', () => { // path const appModuleFile = join(getAssetBaseDir(), 'test', 'empty-project', 'src', 'app', 'app.module.ts'); // parse return rxReadTypescriptFile(appModuleFile).pipe( map(file => importModule('MyModule', '@my/module', file)), map(res => { // check expect(res.source.includes('import { MyModule } from \'@my/module\'')).toBeTruthy(); })) .toPromise(); }); it('should be able to parse a typescript file', () => { // path const appModuleFile = join(getAssetBaseDir(), 'test', 'empty-project', 'src', 'app', 'app.module.ts'); // parse return rxReadTypescriptFile(appModuleFile).pipe( map(res => { expect(res.path).toEqual(appModuleFile); expect(res.ast).toBeDefined(); expect(res.source).toBeDefined(); })) .toPromise(); }); });