@@ -51,13 +51,17 @@ describe('useCompareReplacements', () => {
5151 vi . fn ( ) . mockImplementation ( ( url : string ) => {
5252 if ( url . includes ( '/api/replacements/array-includes' ) ) {
5353 return Promise . resolve ( {
54- id : 'array- includes' ,
54+ id : 'Array.prototype. includes' ,
5555 type : 'native' ,
56- url : { type : 'mdn' , id : 'Global_Objects/Array/includes' } ,
57- engines : [ { engine : 'nodejs' , minVersion : '6.0.0' } ] ,
58- nodeFeatureId : {
59- moduleName : 'Array.prototype.includes' ,
56+ url : {
57+ type : 'mdn' ,
58+ id : 'Web/JavaScript/Reference/Global_Objects/Array/includes' ,
59+ } ,
60+ webFeatureId : {
61+ featureId : 'array-includes' ,
62+ compatKey : 'javascript.builtins.Array.includes' ,
6063 } ,
64+ engines : [ { engine : 'nodejs' , minVersion : '6.0.0' } ] ,
6165 } satisfies ModuleReplacement )
6266 }
6367 return Promise . resolve ( null )
@@ -72,7 +76,6 @@ describe('useCompareReplacements', () => {
7276 expect ( noDepSuggestions . value ) . toHaveLength ( 1 )
7377 } )
7478
75- // Note: forPackage likely maps to the 'id' in the new schema or the original query
7679 expect ( noDepSuggestions . value [ 0 ] ?. forPackage ) . toBe ( 'array-includes' )
7780 expect ( noDepSuggestions . value [ 0 ] ?. replacement . type ) . toBe ( 'native' )
7881 expect ( infoSuggestions . value ) . toHaveLength ( 0 )
@@ -84,9 +87,10 @@ describe('useCompareReplacements', () => {
8487 vi . fn ( ) . mockImplementation ( ( url : string ) => {
8588 if ( url . includes ( '/api/replacements/is-even' ) ) {
8689 return Promise . resolve ( {
87- id : 'is-even' ,
90+ id : 'snippet:: is-even' ,
8891 type : 'simple' ,
89- description : 'Use (n % 2) === 0' ,
92+ description : 'You can use the modulo operator to check if a number is even.' ,
93+ example : '(n % 2) === 0' ,
9094 } satisfies ModuleReplacement )
9195 }
9296 return Promise . resolve ( null )
@@ -103,7 +107,7 @@ describe('useCompareReplacements', () => {
103107
104108 expect ( noDepSuggestions . value [ 0 ] ?. forPackage ) . toBe ( 'is-even' )
105109 expect ( noDepSuggestions . value [ 0 ] ?. replacement . type ) . toBe ( 'simple' )
106- expect ( infoSuggestions . value ) . toHaveLength ( 0 )
110+ expect ( noDepSuggestions . value [ 0 ] ?. replacement . example ) . toBe ( '(n % 2) === 0' )
107111 } )
108112
109113 it ( 'categorizes documented replacements as info suggestions' , async ( ) => {
@@ -112,11 +116,10 @@ describe('useCompareReplacements', () => {
112116 vi . fn ( ) . mockImplementation ( ( url : string ) => {
113117 if ( url . includes ( '/api/replacements/moment' ) ) {
114118 return Promise . resolve ( {
115- id : 'moment ' ,
119+ id : 'date-fns ' ,
116120 type : 'documented' ,
117- url : 'https://momentjs.com/docs/#/use-it/built-in-alternatives/' ,
121+ url : { type : 'e18e' , id : 'moment' } ,
118122 replacementModule : 'date-fns' ,
119- preferred : true ,
120123 } satisfies ModuleReplacement )
121124 }
122125 return Promise . resolve ( null )
@@ -142,24 +145,28 @@ describe('useCompareReplacements', () => {
142145 vi . fn ( ) . mockImplementation ( ( url : string ) => {
143146 if ( url . includes ( '/api/replacements/is-odd' ) ) {
144147 return Promise . resolve ( {
145- id : 'is-odd' ,
148+ id : 'snippet:: is-odd' ,
146149 type : 'simple' ,
147- description : 'Use (n % 2) !== 0' ,
150+ description : 'Check if odd' ,
151+ example : '(n % 2) !== 0' ,
148152 } satisfies ModuleReplacement )
149153 }
150154 if ( url . includes ( '/api/replacements/lodash' ) ) {
151155 return Promise . resolve ( {
152- id : 'lodash ' ,
156+ id : 'native ' ,
153157 type : 'documented' ,
154- url : 'https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore' ,
158+ url : { type : 'e18e' , id : 'lodash' } ,
155159 replacementModule : 'native' ,
156160 } satisfies ModuleReplacement )
157161 }
158162 if ( url . includes ( '/api/replacements/array-map' ) ) {
159163 return Promise . resolve ( {
160- id : 'array- map' ,
164+ id : 'Array.prototype. map' ,
161165 type : 'native' ,
162- url : { type : 'mdn' , id : 'Global_Objects/Array/map' } ,
166+ url : {
167+ type : 'mdn' ,
168+ id : 'Web/JavaScript/Reference/Global_Objects/Array/map' ,
169+ } ,
163170 engines : [ { engine : 'nodejs' , minVersion : '0.10.0' } ] ,
164171 } satisfies ModuleReplacement )
165172 }
@@ -224,9 +231,10 @@ describe('useCompareReplacements', () => {
224231 const fetchMock = vi . fn ( ) . mockImplementation ( ( url : string ) => {
225232 if ( url . includes ( '/api/replacements/is-even' ) ) {
226233 return Promise . resolve ( {
227- id : 'is-even' ,
234+ id : 'snippet:: is-even' ,
228235 type : 'simple' ,
229- description : 'Use (n % 2) === 0' ,
236+ description : 'Check even' ,
237+ example : '(n % 2) === 0' ,
230238 } satisfies ModuleReplacement )
231239 }
232240 return Promise . resolve ( null )
0 commit comments