fix(compiler): don’t store invalid state when using listLazyRoutes (#19953)

Previously, `listLazyRoute` would store invalid information in a compiler
internal cache, which lead to incorrect paths that were used during emit.
This commit fixes this.

PR Close #19953
This commit is contained in:
Tobias Bosch
2017-10-25 16:51:12 -07:00
committed by Matias Niemelä
parent eca822b756
commit a869aeecd2
3 changed files with 48 additions and 2 deletions

View File

@ -1062,6 +1062,22 @@ describe('StaticReflector', () => {
.useValue)
.toEqual({path: 'foo', data: {e: 1}});
});
describe('resolveExternalReference', () => {
it('should register modules names in the StaticSymbolResolver if no containingFile is given',
() => {
init({
'/tmp/root.ts': ``,
'/tmp/a.ts': `export const x = 1;`,
});
let symbol =
reflector.resolveExternalReference({moduleName: './a', name: 'x'}, '/tmp/root.ts');
expect(symbolResolver.getKnownModuleName(symbol.filePath)).toBeFalsy();
symbol = reflector.resolveExternalReference({moduleName: 'a', name: 'x'});
expect(symbolResolver.getKnownModuleName(symbol.filePath)).toBe('a');
});
});
});
const DEFAULT_TEST_DATA: {[key: string]: any} = {