@@ -510,6 +510,77 @@ describe('analyzeReactUsage', () => {
510510 } )
511511 } )
512512
513+ it ( 'resolves builtin elements from namespace-imported styled-components' , ( ) => {
514+ const graph = analyzeReactUsage ( 'src/namespace-styled-entry.tsx' , {
515+ cwd : fixtureDirectory ,
516+ includeBuiltins : true ,
517+ } )
518+
519+ const output = printReactUsageTree ( graph , {
520+ color : false ,
521+ } )
522+ const jsonTree = graphToSerializableReactTree ( graph )
523+
524+ expect ( output ) . toContain (
525+ '<FeaturePage /> [component] (src/namespace-styled-entry.tsx)' ,
526+ )
527+ expect ( output ) . toContain (
528+ '<Section /> as Styled.Section [component] (src/components/FeatureSection.styled.tsx)' ,
529+ )
530+ expect ( output ) . toContain (
531+ '<Container /> as Styled.Container [component] (src/components/FeatureSection.styled.tsx)' ,
532+ )
533+ expect ( output ) . toContain ( '<section> [builtin] (html)' )
534+ expect ( output ) . toContain ( '<div> [builtin] (html)' )
535+
536+ expect ( jsonTree ) . toMatchObject ( {
537+ entries : [
538+ expect . objectContaining ( {
539+ referenceName : 'FeaturePage' ,
540+ node : expect . objectContaining ( {
541+ name : 'FeaturePage' ,
542+ symbolKind : 'component' ,
543+ } ) ,
544+ } ) ,
545+ ] ,
546+ roots : [
547+ expect . objectContaining ( {
548+ name : 'FeaturePage' ,
549+ usages : expect . arrayContaining ( [
550+ expect . objectContaining ( {
551+ node : expect . objectContaining ( {
552+ name : 'Section' ,
553+ symbolKind : 'component' ,
554+ usages : expect . arrayContaining ( [
555+ expect . objectContaining ( {
556+ node : expect . objectContaining ( {
557+ name : 'section' ,
558+ symbolKind : 'builtin' ,
559+ } ) ,
560+ } ) ,
561+ ] ) ,
562+ } ) ,
563+ } ) ,
564+ expect . objectContaining ( {
565+ node : expect . objectContaining ( {
566+ name : 'Container' ,
567+ symbolKind : 'component' ,
568+ usages : expect . arrayContaining ( [
569+ expect . objectContaining ( {
570+ node : expect . objectContaining ( {
571+ name : 'div' ,
572+ symbolKind : 'builtin' ,
573+ } ) ,
574+ } ) ,
575+ ] ) ,
576+ } ) ,
577+ } ) ,
578+ ] ) ,
579+ } ) ,
580+ ] ,
581+ } )
582+ } )
583+
513584 it ( 'prints multiple React entry locations when the entry file renders more than one root' , ( ) => {
514585 const graph = analyzeReactUsage ( 'src/multi-entry.tsx' , {
515586 cwd : fixtureDirectory ,
0 commit comments