fix(ivy): process separate declarations and exports for summaries (#29193)
ngsummary files were generated with an export for each class declaration. However, some Angular code declares classes (class Foo) and exports them (export {Foo}) separately, which was causing incomplete summary files. This commit expands the set of symbol names for which summary exports will be generated, fixing this issue. PR Close #29193
This commit is contained in:

committed by
Kara Erickson

parent
3a6ba00286
commit
49dccf4bfc
@ -1768,6 +1768,24 @@ describe('ngtsc behavioral tests', () => {
|
||||
expect(summaryContents).toEqual(`export var TestModuleNgSummary = null;\n`);
|
||||
});
|
||||
|
||||
it('should generate a summary stub for classes exported via exports', () => {
|
||||
env.tsconfig({'allowEmptyCodegenFiles': true});
|
||||
|
||||
env.write('test.ts', `
|
||||
import {Injectable, NgModule} from '@angular/core';
|
||||
|
||||
@NgModule({})
|
||||
class NotDirectlyExported {}
|
||||
|
||||
export {NotDirectlyExported};
|
||||
`);
|
||||
|
||||
env.driveMain();
|
||||
|
||||
const summaryContents = env.getContents('test.ngsummary.js');
|
||||
expect(summaryContents).toEqual(`export var NotDirectlyExportedNgSummary = null;\n`);
|
||||
});
|
||||
|
||||
it('it should generate empty export when there are no other summary symbols, to ensure the output is a valid ES module',
|
||||
() => {
|
||||
env.tsconfig({'allowEmptyCodegenFiles': true});
|
||||
|
Reference in New Issue
Block a user