@@ -1218,6 +1218,20 @@ ruleTester.run('order', rule, {
1218
1218
alphabetize : { order : 'asc' } ,
1219
1219
} ] ,
1220
1220
} ) ,
1221
+ test ( {
1222
+ code : `
1223
+ module.exports.A = { };
1224
+ module.exports.A.B = { };
1225
+ module.exports.B = { };
1226
+ exports.C = { };
1227
+ ` ,
1228
+ options : [ {
1229
+ named : {
1230
+ cjsExports : true ,
1231
+ } ,
1232
+ alphabetize : { order : 'asc' } ,
1233
+ } ] ,
1234
+ } ) ,
1221
1235
] ,
1222
1236
invalid : [
1223
1237
// builtin before external module (require)
@@ -2926,6 +2940,48 @@ ruleTester.run('order', rule, {
2926
2940
message : '`c` export should occur after export of `b`' ,
2927
2941
} ] ,
2928
2942
} ) ,
2943
+ test ( {
2944
+ code : `
2945
+ exports.B = { };
2946
+ module.exports.A = { };
2947
+ module.exports.C = { };
2948
+ ` ,
2949
+ output : `
2950
+ module.exports.A = { };
2951
+ exports.B = { };
2952
+ module.exports.C = { };
2953
+ ` ,
2954
+ options : [ {
2955
+ named : {
2956
+ cjsExports : true ,
2957
+ } ,
2958
+ alphabetize : { order : 'asc' } ,
2959
+ } ] ,
2960
+ errors : [ {
2961
+ message : '`A` export should occur before export of `B`' ,
2962
+ } ] ,
2963
+ } ) ,
2964
+ test ( {
2965
+ code : `
2966
+ exports.A.C = { };
2967
+ module.exports.A.A = { };
2968
+ exports.A.B = { };
2969
+ ` ,
2970
+ output : `
2971
+ module.exports.A.A = { };
2972
+ exports.A.B = { };
2973
+ exports.A.C = { };
2974
+ ` ,
2975
+ options : [ {
2976
+ named : {
2977
+ cjsExports : true ,
2978
+ } ,
2979
+ alphabetize : { order : 'asc' } ,
2980
+ } ] ,
2981
+ errors : [ {
2982
+ message : '`A.C` export should occur after export of `A.B`' ,
2983
+ } ] ,
2984
+ } ) ,
2929
2985
// Alphabetize with require
2930
2986
...semver . satisfies ( eslintPkg . version , '< 3.0.0' ) ? [ ] : [
2931
2987
test ( {
0 commit comments