@@ -457,3 +457,44 @@ let MyController = (_dec = Ember._action, (_class = class MyController extends E
457457export { MyController as default };` ) ;
458458 } ) ;
459459} ) ;
460+
461+ describe ( 'when used with babel-plugin-istanbul' , ( ) => {
462+ // babel-plugin-istanbul won't run on <= Node 6
463+ const majorVersion = parseInt ( process . version . match ( / ^ v ( \d + ) \. / ) [ 1 ] , 10 ) ;
464+ const runOrSkip = majorVersion > 6 ? it : it . skip ;
465+
466+ runOrSkip ( 'works with mixins' , ( ) => {
467+ let source = `
468+ import EmberObject from '@ember/object';
469+ import Evented from '@ember/object/evented';
470+
471+ const TestObject = EmberObject.extend(Evented);
472+ export default TestObject;
473+ ` ;
474+
475+ let actual = babel7 . transformSync ( source , {
476+ filename : 'istanbul-should-cover.js' ,
477+ plugins : [ require ( 'babel-plugin-istanbul' ) , Plugin ] ,
478+ } ) . code ;
479+
480+ expect ( actual ) . toContain ( 'Ember.Object.extend(Ember.Evented)' ) ;
481+ } ) ;
482+
483+ runOrSkip ( 'works with classes that extend from mixins' , ( ) => {
484+ let source = `
485+ import EmberObject from '@ember/object';
486+ import Evented from '@ember/object/evented';
487+
488+ export default class TestObject extends EmberObject.extend(Evented) {};
489+ ` ;
490+
491+ let actual = babel7 . transformSync ( source , {
492+ filename : 'istanbul-should-cover.js' ,
493+ plugins : [ require ( 'babel-plugin-istanbul' ) , Plugin ] ,
494+ } ) . code ;
495+
496+ expect ( actual ) . toContain (
497+ 'export default class TestObject extends (Ember.Object.extend(Ember.Evented)) {}'
498+ ) ;
499+ } ) ;
500+ } ) ;
0 commit comments