@@ -20,7 +20,6 @@ describe('package', function () {
2020 } ) ;
2121
2222 it ( 'has every rule' , function ( done ) {
23-
2423 fs . readdir (
2524 path . join ( pkg , 'rules' )
2625 , function ( err , files ) {
@@ -34,7 +33,7 @@ describe('package', function () {
3433 } ) ;
3534 } ) ;
3635
37- it ( 'exports all configs' , function ( done ) {
36+ it ( 'exports all legacy configs' , function ( done ) {
3837 fs . readdir ( path . join ( process . cwd ( ) , 'config' ) , function ( err , files ) {
3938 if ( err ) { done ( err ) ; return ; }
4039 files . filter ( isJSFile ) . forEach ( ( file ) => {
@@ -45,6 +44,38 @@ describe('package', function () {
4544 } ) ;
4645 } ) ;
4746
47+ it ( 'exports all flat configs' , function ( done ) {
48+ fs . readdir ( path . join ( process . cwd ( ) , 'config' ) , function ( err , files ) {
49+ if ( err ) { done ( err ) ; return ; }
50+ files . filter ( isJSFile ) . forEach ( ( file ) => {
51+ if ( file [ 0 ] === '.' ) { return ; }
52+
53+ const basename = path . basename ( file , '.js' ) ;
54+ // stage-0 is not included in flat configs
55+ if ( basename === 'stage-0' ) { return ; }
56+
57+ expect ( module . flatConfigs ) . to . have . property ( basename ) ;
58+ } ) ;
59+ done ( ) ;
60+ } ) ;
61+ } ) ;
62+
63+ it ( 'exports plugin object as default export' , function ( ) {
64+ expect ( module . default ) . to . be . an ( 'object' ) . that . has . all . keys ( [ 'meta' , 'rules' , 'configs' , 'flatConfigs' ] ) ;
65+ } ) ;
66+
67+ it ( 'includes plugin meta object in default export' , function ( ) {
68+ expect ( module . default . meta ) . to . be . an ( 'object' ) . that . has . all . keys ( 'name' , 'version' ) ;
69+ expect ( module . default . meta . name ) . to . equal ( 'eslint-plugin-import' ) ;
70+ expect ( module . default . meta . version ) . to . be . a ( 'string' ) ;
71+ } ) ;
72+
73+ it ( 'uses default export as plugin in flat configs' , function ( ) {
74+ for ( const configFile in module . flatConfigs ) {
75+ expect ( module . flatConfigs [ configFile ] . plugins . import ) . to . equal ( module . default ) ;
76+ }
77+ } ) ;
78+
4879 function getRulePath ( ruleName ) {
4980 // 'require' does not work with dynamic paths because of the compilation step by babel
5081 // (which resolves paths according to the root folder configuration)
0 commit comments