@@ -83,7 +83,9 @@ test('scanUsedIcons extracts mdi-* icon names from files', () => {
8383 assert . ok ( icons instanceof Set ) ;
8484 assert . ok ( icons . has ( 'mdi-home' ) ) ;
8585 assert . ok ( icons . has ( 'mdi-close' ) ) ;
86- assert . equal ( icons . size , 2 ) ; // mdi-home deduplicated
86+ assert . ok ( icons . has ( 'mdi-radiobox-blank' ) ) ;
87+ assert . ok ( icons . has ( 'mdi-radiobox-marked' ) ) ;
88+ assert . equal ( icons . size , 4 ) ; // source icons + required radio icons
8789
8890 rmSync ( tmp , { recursive : true } ) ;
8991} ) ;
@@ -101,12 +103,26 @@ test('scanUsedIcons excludes utility classes', () => {
101103 rmSync ( tmp , { recursive : true } ) ;
102104} ) ;
103105
104- test ( 'scanUsedIcons returns empty set when no icons found' , ( ) => {
106+ test ( 'scanUsedIcons includes required radio icons even when no mdi-* icons are found in source ' , ( ) => {
105107 const tmp = makeTmpDir ( ) ;
106108 writeFileSync ( join ( tmp , 'A.vue' ) , '<div>Hello</div>' ) ;
107109
108110 const icons = scanUsedIcons ( collectFiles ( tmp , [ '.vue' ] ) ) ;
109- assert . equal ( icons . size , 0 ) ;
111+ assert . ok ( icons . has ( 'mdi-radiobox-blank' ) ) ;
112+ assert . ok ( icons . has ( 'mdi-radiobox-marked' ) ) ;
113+ assert . equal ( icons . size , 2 ) ;
114+
115+ rmSync ( tmp , { recursive : true } ) ;
116+ } ) ;
117+
118+ test ( 'scanUsedIcons deduplicates required radio icons when source already references them' , ( ) => {
119+ const tmp = makeTmpDir ( ) ;
120+ writeFileSync ( join ( tmp , 'A.vue' ) , '<v-icon>mdi-radiobox-marked</v-icon><v-icon>mdi-home</v-icon>' ) ;
121+
122+ const icons = [ ...scanUsedIcons ( collectFiles ( tmp , [ '.vue' ] ) ) ] ;
123+ assert . equal ( icons . filter ( icon => icon === 'mdi-radiobox-marked' ) . length , 1 ) ;
124+ assert . ok ( icons . includes ( 'mdi-radiobox-blank' ) ) ;
125+ assert . ok ( icons . includes ( 'mdi-home' ) ) ;
110126
111127 rmSync ( tmp , { recursive : true } ) ;
112128} ) ;
0 commit comments