@@ -259,42 +259,68 @@ angular.module(mod, [mod + '.core.angular', mod + '.thirdparty']);
259
259
options : [ {
260
260
casing : 'pascal'
261
261
} ]
262
+ } , {
263
+ // import case
264
+ filename : 'src/app/SomeOtherController.js' ,
265
+ code : `
266
+ var MyCtrl4 = function() {};
267
+ import {MyCtrl1} from 'src/app/SomeController.js';
268
+ import {MyCtrl2} from 'src/app/SomeDirective.js';
269
+ import {MyCtrl3} from 'src/app/SomeService.js';
270
+ app.controller("SomeController", MyCtrl1);
271
+ app.directive("SomeDirective", MyCtrl2);
272
+ app.service("SomeService", MyCtrl3);
273
+ app.controller("SomeOtherController", MyCtrl4);` ,
274
+ parserOptions : {
275
+ ecmaVersion : 6 ,
276
+ sourceType : 'module'
277
+ }
262
278
} ] . concat ( commonFalsePositives ) ,
263
279
invalid : [ {
264
280
filename : 'src/app/filters.js' ,
265
281
code : 'app.filter("myFilter", function() {});' ,
266
- errors : [ { message : 'Filename must be "myFilter.js"' } ]
282
+ errors : [ {
283
+ message : 'Filename must be "myFilter.js"'
284
+ } ]
267
285
} , {
268
286
filename : 'src/app/myFilter.js' ,
269
287
code : 'app.filter("myFilter", function() {});' ,
270
288
options : [ {
271
289
typeSeparator : 'dot'
272
290
} ] ,
273
- errors : [ { message : 'Filename must be "myFilter.filter.js"' } ]
291
+ errors : [ {
292
+ message : 'Filename must be "myFilter.filter.js"'
293
+ } ]
274
294
} , {
275
295
// typeSeparator underscore with service
276
296
filename : 'src/someService_controller.js' ,
277
297
code : 'app.factory("someService", function() {});' ,
278
298
options : [ {
279
299
typeSeparator : 'underscore'
280
300
} ] ,
281
- errors : [ { message : 'Filename must be "someService_service.js"' } ]
301
+ errors : [ {
302
+ message : 'Filename must be "someService_service.js"'
303
+ } ]
282
304
} , {
283
305
// typeSeparator dot with controller, but no ignored type suffix
284
306
filename : 'src/app/Avengers.controller.js' ,
285
307
code : 'app.controller("AvengersController", function() {});' ,
286
308
options : [ {
287
309
typeSeparator : 'dot'
288
310
} ] ,
289
- errors : [ { message : 'Filename must be "AvengersController.controller.js"' } ]
311
+ errors : [ {
312
+ message : 'Filename must be "AvengersController.controller.js"'
313
+ } ]
290
314
} , {
291
315
// typeSeparator dot with component, but no ignored type suffix
292
316
filename : 'src/app/Avengers.component.js' ,
293
317
code : 'app.component("AvengersComponent", {});' ,
294
318
options : [ {
295
319
typeSeparator : 'dot'
296
320
} ] ,
297
- errors : [ { message : 'Filename must be "AvengersComponent.component.js"' } ]
321
+ errors : [ {
322
+ message : 'Filename must be "AvengersComponent.component.js"'
323
+ } ]
298
324
} , {
299
325
// typeSeparator dot with controller and ignored type suffix
300
326
filename : 'src/app/AvengersController.controller.js' ,
@@ -303,7 +329,9 @@ angular.module(mod, [mod + '.core.angular', mod + '.thirdparty']);
303
329
typeSeparator : 'dot' ,
304
330
ignoreTypeSuffix : true
305
331
} ] ,
306
- errors : [ { message : 'Filename must be "Avengers.controller.js"' } ]
332
+ errors : [ {
333
+ message : 'Filename must be "Avengers.controller.js"'
334
+ } ]
307
335
} , {
308
336
// typeSeparator dot with component and ignored type suffix
309
337
filename : 'src/app/AvengersComponent.component.js' ,
@@ -312,7 +340,9 @@ angular.module(mod, [mod + '.core.angular', mod + '.thirdparty']);
312
340
typeSeparator : 'dot' ,
313
341
ignoreTypeSuffix : true
314
342
} ] ,
315
- errors : [ { message : 'Filename must be "Avengers.component.js"' } ]
343
+ errors : [ {
344
+ message : 'Filename must be "Avengers.component.js"'
345
+ } ]
316
346
} , {
317
347
// nameStyle dash and typeSeparator dot with directive
318
348
filename : 'src/app/avangerProfile.directive.js' ,
@@ -321,7 +351,9 @@ angular.module(mod, [mod + '.core.angular', mod + '.thirdparty']);
321
351
typeSeparator : 'dot' ,
322
352
nameStyle : 'dash'
323
353
} ] ,
324
- errors : [ { message : 'Filename must be "avanger-profile.directive.js"' } ]
354
+ errors : [ {
355
+ message : 'Filename must be "avanger-profile.directive.js"'
356
+ } ]
325
357
} , {
326
358
// ignorePrefix xp
327
359
filename : 'src/app/xpAsset.service.js' ,
@@ -331,7 +363,9 @@ angular.module(mod, [mod + '.core.angular', mod + '.thirdparty']);
331
363
ignoreTypeSuffix : true ,
332
364
ignorePrefix : 'xp'
333
365
} ] ,
334
- errors : [ { message : 'Filename must be "asset.service.js"' } ]
366
+ errors : [ {
367
+ message : 'Filename must be "asset.service.js"'
368
+ } ]
335
369
} , {
336
370
// ignorePrefix xp.
337
371
filename : 'src/app/xpAsset.service.js' ,
@@ -341,7 +375,9 @@ angular.module(mod, [mod + '.core.angular', mod + '.thirdparty']);
341
375
ignoreTypeSuffix : true ,
342
376
ignorePrefix : 'xp.'
343
377
} ] ,
344
- errors : [ { message : 'Filename must be "asset.service.js"' } ]
378
+ errors : [ {
379
+ message : 'Filename must be "asset.service.js"'
380
+ } ]
345
381
} , {
346
382
// alphanumeric nameStyle dash and typeSeparator dash with service
347
383
filename : 'src/app/app2utils-service.js' ,
@@ -350,7 +386,9 @@ angular.module(mod, [mod + '.core.angular', mod + '.thirdparty']);
350
386
typeSeparator : 'dash' ,
351
387
nameStyle : 'dash'
352
388
} ] ,
353
- errors : [ { message : 'Filename must be "app2-utils-service.js"' } ]
389
+ errors : [ {
390
+ message : 'Filename must be "app2-utils-service.js"'
391
+ } ]
354
392
} , {
355
393
// alphanumeric nameStyle underscore and typeSeparator dot with directive
356
394
filename : 'src/app/my2tab.directive.js' ,
@@ -359,7 +397,9 @@ angular.module(mod, [mod + '.core.angular', mod + '.thirdparty']);
359
397
typeSeparator : 'dot' ,
360
398
nameStyle : 'underscore'
361
399
} ] ,
362
- errors : [ { message : 'Filename must be "my2_tab.directive.js"' } ]
400
+ errors : [ {
401
+ message : 'Filename must be "my2_tab.directive.js"'
402
+ } ]
363
403
} , {
364
404
// custom componentTypeMappings for provider
365
405
filename : 'src/app/users.service.js' ,
@@ -370,7 +410,9 @@ angular.module(mod, [mod + '.core.angular', mod + '.thirdparty']);
370
410
} ,
371
411
typeSeparator : 'dot'
372
412
} ] ,
373
- errors : [ { message : 'Filename must be "users.provider.js"' } ]
413
+ errors : [ {
414
+ message : 'Filename must be "users.provider.js"'
415
+ } ]
374
416
} , {
375
417
// camel casing, dot typeSeparator, ignoreTypeSuffix of true
376
418
filename : 'src/app/SomeController.js' ,
@@ -380,15 +422,19 @@ angular.module(mod, [mod + '.core.angular', mod + '.thirdparty']);
380
422
typeSeparator : 'dot' ,
381
423
ignoreTypeSuffix : true
382
424
} ] ,
383
- errors : [ { message : 'Filename must be "some.controller.js"' } ]
425
+ errors : [ {
426
+ message : 'Filename must be "some.controller.js"'
427
+ } ]
384
428
} , {
385
429
// camel casing
386
430
filename : 'src/app/SomeController.js' ,
387
431
code : 'app.controller("SomeController", function() {});' ,
388
432
options : [ {
389
433
casing : 'camel'
390
434
} ] ,
391
- errors : [ { message : 'Filename must be "someController.js"' } ]
435
+ errors : [ {
436
+ message : 'Filename must be "someController.js"'
437
+ } ]
392
438
} , {
393
439
// pascal casing, dot typeSeparator, ignoreTypeSuffix of true
394
440
filename : 'src/app/someController.js' ,
@@ -398,14 +444,31 @@ angular.module(mod, [mod + '.core.angular', mod + '.thirdparty']);
398
444
typeSeparator : 'dot' ,
399
445
ignoreTypeSuffix : true
400
446
} ] ,
401
- errors : [ { message : 'Filename must be "Some.controller.js"' } ]
447
+ errors : [ {
448
+ message : 'Filename must be "Some.controller.js"'
449
+ } ]
402
450
} , {
403
451
// pascal casing
404
452
filename : 'src/app/someController.js' ,
405
453
code : 'app.controller("SomeController", function() {});' ,
406
454
options : [ {
407
455
casing : 'pascal'
408
456
} ] ,
409
- errors : [ { message : 'Filename must be "SomeController.js"' } ]
457
+ errors : [ {
458
+ message : 'Filename must be "SomeController.js"'
459
+ } ]
460
+ } , {
461
+ // import case
462
+ filename : 'src/app/SomeController.js' ,
463
+ code : `
464
+ import {MyCtrl} from 'src/app/main.js'
465
+ app.controller("SomeController", MyCtrl);` ,
466
+ parserOptions : {
467
+ ecmaVersion : 6 ,
468
+ sourceType : 'module'
469
+ } ,
470
+ errors : [ {
471
+ message : 'Filename must be "SomeController.js"'
472
+ } ]
410
473
} ]
411
474
} ) ;
0 commit comments