@@ -24,9 +24,9 @@ describe('extractParts', () => {
2424 const result = extractParts ( 'test.ts' , program ) ;
2525
2626 expect ( result ) . toEqual ( [
27- { name : 'Group' , source : './time-group' } ,
28- { name : 'Separator' , source : './time-separator' } ,
29- { name : 'Value' , source : './time-value' } ,
27+ { name : 'Group' , localName : 'Group' , source : './time-group' } ,
28+ { name : 'Separator' , localName : 'Separator' , source : './time-separator' } ,
29+ { name : 'Value' , localName : 'Value' , source : './time-value' } ,
3030 ] ) ;
3131 } ) ;
3232
@@ -38,7 +38,7 @@ describe('extractParts', () => {
3838 const program = createTestProgram ( code ) ;
3939 const result = extractParts ( 'test.ts' , program ) ;
4040
41- expect ( result ) . toEqual ( [ { name : 'Group' , source : './time-group' } ] ) ;
41+ expect ( result ) . toEqual ( [ { name : 'Group' , localName : 'Group' , source : './time-group' } ] ) ;
4242 } ) ;
4343
4444 it ( 'returns empty array for file with no exports' , ( ) => {
@@ -57,8 +57,8 @@ describe('extractParts', () => {
5757 const result = extractParts ( 'test.ts' , program ) ;
5858
5959 expect ( result ) . toEqual ( [
60- { name : 'Foo' , source : './source' } ,
61- { name : 'Bar' , source : './source' } ,
60+ { name : 'Foo' , localName : 'Foo' , source : './source' } ,
61+ { name : 'Bar' , localName : 'Bar' , source : './source' } ,
6262 ] ) ;
6363 } ) ;
6464
@@ -69,7 +69,17 @@ describe('extractParts', () => {
6969 const program = createTestProgram ( code ) ;
7070 const result = extractParts ( 'test.ts' , program ) ;
7171
72- expect ( result ) . toEqual ( [ { name : 'Value' , source : './time-value' } ] ) ;
72+ expect ( result ) . toEqual ( [ { name : 'Value' , localName : 'Value' , source : './time-value' } ] ) ;
73+ } ) ;
74+
75+ it ( 'captures local symbol name for aliased exports' , ( ) => {
76+ const code = `
77+ export { ControlsRoot as Root, type ControlsRootProps as RootProps } from './controls-root';
78+ ` ;
79+ const program = createTestProgram ( code ) ;
80+ const result = extractParts ( 'test.ts' , program ) ;
81+
82+ expect ( result ) . toEqual ( [ { name : 'Root' , localName : 'ControlsRoot' , source : './controls-root' } ] ) ;
7383 } ) ;
7484} ) ;
7585
@@ -110,6 +120,24 @@ describe('extractPartDescription', () => {
110120 expect ( result ) . toBe ( 'Container for composed time displays.' ) ;
111121 } ) ;
112122
123+ it ( 'extracts JSDoc description from a local (non-aliased) symbol name' , ( ) => {
124+ const program = createTestProgram ( '' ) ;
125+ mockParseFromProgram . mockReturnValue ( {
126+ exports : [
127+ {
128+ name : 'ControlsRoot' ,
129+ documentation : {
130+ description : 'Root container for player controls.' ,
131+ } ,
132+ } ,
133+ ] ,
134+ } ) ;
135+
136+ const result = extractPartDescription ( 'test.tsx' , program , 'ControlsRoot' ) ;
137+
138+ expect ( result ) . toBe ( 'Root container for player controls.' ) ;
139+ } ) ;
140+
113141 it ( 'returns undefined when export is not found' , ( ) => {
114142 const program = createTestProgram ( '' ) ;
115143 mockParseFromProgram . mockReturnValue ( {
0 commit comments