@@ -286,6 +286,50 @@ function runTests() {
286286 ) ;
287287 } ) ) passed ++ ; else failed ++ ;
288288
289+ if ( test ( 'every schema target enum value has a matching adapter (regression guard)' , ( ) => {
290+ const schemaPath = path . join ( __dirname , '..' , '..' , 'schemas' , 'ecc-install-config.schema.json' ) ;
291+ const schema = JSON . parse ( require ( 'fs' ) . readFileSync ( schemaPath , 'utf8' ) ) ;
292+ const schemaTargets = schema . properties . target . enum ;
293+ const adapters = listInstallTargetAdapters ( ) ;
294+ const adapterTargets = adapters . map ( a => a . target ) ;
295+
296+ for ( const target of schemaTargets ) {
297+ assert . ok (
298+ adapterTargets . includes ( target ) ,
299+ `Schema target "${ target } " has no matching adapter. ` +
300+ `Available adapter targets: ${ adapterTargets . join ( ', ' ) } `
301+ ) ;
302+ }
303+ } ) ) passed ++ ; else failed ++ ;
304+
305+ if ( test ( 'every adapter target is listed in the schema enum (regression guard)' , ( ) => {
306+ const schemaPath = path . join ( __dirname , '..' , '..' , 'schemas' , 'ecc-install-config.schema.json' ) ;
307+ const schema = JSON . parse ( require ( 'fs' ) . readFileSync ( schemaPath , 'utf8' ) ) ;
308+ const schemaTargets = schema . properties . target . enum ;
309+ const adapters = listInstallTargetAdapters ( ) ;
310+
311+ for ( const adapter of adapters ) {
312+ assert . ok (
313+ schemaTargets . includes ( adapter . target ) ,
314+ `Adapter target "${ adapter . target } " is not in schema enum. ` +
315+ `Schema targets: ${ schemaTargets . join ( ', ' ) } `
316+ ) ;
317+ }
318+ } ) ) passed ++ ; else failed ++ ;
319+
320+ if ( test ( 'every adapter target is in SUPPORTED_INSTALL_TARGETS (regression guard)' , ( ) => {
321+ const { SUPPORTED_INSTALL_TARGETS } = require ( '../../scripts/lib/install-manifests' ) ;
322+ const adapters = listInstallTargetAdapters ( ) ;
323+
324+ for ( const adapter of adapters ) {
325+ assert . ok (
326+ SUPPORTED_INSTALL_TARGETS . includes ( adapter . target ) ,
327+ `Adapter target "${ adapter . target } " is not in SUPPORTED_INSTALL_TARGETS. ` +
328+ `Supported: ${ SUPPORTED_INSTALL_TARGETS . join ( ', ' ) } `
329+ ) ;
330+ }
331+ } ) ) passed ++ ; else failed ++ ;
332+
289333 console . log ( `\nResults: Passed: ${ passed } , Failed: ${ failed } ` ) ;
290334 process . exit ( failed > 0 ? 1 : 0 ) ;
291335}
0 commit comments