@@ -166,7 +166,7 @@ describe("Unit - copyAISkillsToProject", () => {
166166
167167 describe ( "WebComponents framework" , ( ) => {
168168 it ( "should copy skills from igniteui-webcomponents into .claude/skills/" , async ( ) => {
169- const wcPkg = "igniteui-webcomponents-core " ;
169+ const wcPkg = "igniteui-webcomponents" ;
170170 const dir = skillsDir ( wcPkg ) ;
171171 const file = skillFile ( wcPkg , "webcomponents.md" ) ;
172172 const content = "# Ignite UI WebComponents skills" ;
@@ -232,6 +232,56 @@ describe("Unit - copyAISkillsToProject", () => {
232232 // but since we scan ALL packages and only one directory exists, roots.length === 1 → no prefix
233233 expect ( fs . writeFile ) . toHaveBeenCalledWith ( ".claude/skills/angular.md" , "skill content" ) ;
234234 } ) ;
235+
236+ it ( "should also scan igniteui-react in the fallback" , async ( ) => {
237+ const reactPkg = "igniteui-react" ;
238+ const dir = skillsDir ( reactPkg ) ;
239+ const file = skillFile ( reactPkg , "overview.md" ) ;
240+
241+ const fs = makeFs ( {
242+ fileExists : jasmine . createSpy ( "fileExists" ) . and . returnValue ( false ) ,
243+ readFile : jasmine . createSpy ( "readFile" ) . and . returnValue ( "react skill content" ) ,
244+ directoryExists : jasmine . createSpy ( "directoryExists" ) . and . callFake ( ( p : string ) =>
245+ p === dir
246+ ) ,
247+ glob : jasmine . createSpy ( "glob" ) . and . callFake ( ( d : string ) =>
248+ d === dir ? [ file ] : [ ]
249+ ) ,
250+ writeFile : jasmine . createSpy ( "writeFile" )
251+ } ) ;
252+
253+ spyOn ( App . container , "get" ) . and . returnValue ( fs ) ;
254+ spyOn ( ProjectConfig , "hasLocalConfig" ) . and . returnValue ( false ) ;
255+
256+ await copyAISkillsToProject ( ) ;
257+
258+ expect ( fs . writeFile ) . toHaveBeenCalledWith ( ".claude/skills/overview.md" , "react skill content" ) ;
259+ } ) ;
260+
261+ it ( "should also scan igniteui-webcomponents in the fallback" , async ( ) => {
262+ const wcPkg = "igniteui-webcomponents" ;
263+ const dir = skillsDir ( wcPkg ) ;
264+ const file = skillFile ( wcPkg , "webcomponents.md" ) ;
265+
266+ const fs = makeFs ( {
267+ fileExists : jasmine . createSpy ( "fileExists" ) . and . returnValue ( false ) ,
268+ readFile : jasmine . createSpy ( "readFile" ) . and . returnValue ( "wc skill content" ) ,
269+ directoryExists : jasmine . createSpy ( "directoryExists" ) . and . callFake ( ( p : string ) =>
270+ p === dir
271+ ) ,
272+ glob : jasmine . createSpy ( "glob" ) . and . callFake ( ( d : string ) =>
273+ d === dir ? [ file ] : [ ]
274+ ) ,
275+ writeFile : jasmine . createSpy ( "writeFile" )
276+ } ) ;
277+
278+ spyOn ( App . container , "get" ) . and . returnValue ( fs ) ;
279+ spyOn ( ProjectConfig , "hasLocalConfig" ) . and . returnValue ( false ) ;
280+
281+ await copyAISkillsToProject ( ) ;
282+
283+ expect ( fs . writeFile ) . toHaveBeenCalledWith ( ".claude/skills/webcomponents.md" , "wc skill content" ) ;
284+ } ) ;
235285 } ) ;
236286
237287 describe ( "No skills available" , ( ) => {
0 commit comments