@@ -7432,28 +7432,31 @@ describe('Model', function() {
7432
7432
7433
7433
// Define discriminated class before model is compiled
7434
7434
class Deco1 extends Decorator { whoAmI ( ) { return 'I am Test1' ; } }
7435
- const deco1Schema = new Schema ( { } ) . loadClass ( Deco1 ) ;
7435
+ const deco1Schema = new Schema ( { } ) ;
7436
7436
deco1Schema . loadClass ( Deco1 ) ;
7437
7437
decoratorSchema . discriminator ( 'Test1' , deco1Schema ) ;
7438
7438
7439
7439
// Define model that uses discriminated schema
7440
7440
const shopSchema = new Schema ( {
7441
7441
item : { type : decoratorSchema , required : true }
7442
7442
} ) ;
7443
-
7444
- class Shop { }
7445
- shopSchema . loadClass ( Shop ) ;
7446
7443
const shopModel = db . model ( 'Test' , shopSchema ) ;
7447
7444
7448
7445
// Define another discriminated class after the model is compiled
7449
7446
class Deco2 extends Decorator { whoAmI ( ) { return 'I am Test2' ; } }
7450
- const deco2Schema = new Schema ( { } ) . loadClass ( Deco2 ) ;
7447
+ const deco2Schema = new Schema ( { } ) ;
7451
7448
deco2Schema . loadClass ( Deco2 ) ;
7452
7449
decoratorSchema . discriminator ( 'Test2' , deco2Schema ) ;
7453
7450
7451
+ let instance = new shopModel ( { item : { type : 'Test1' } } ) ;
7452
+ assert . equal ( instance . item . whoAmI ( ) , 'I am Test1' ) ;
7453
+
7454
+ instance = new shopModel ( { item : { type : 'Test2' } } ) ;
7455
+ assert . equal ( instance . item . whoAmI ( ) , 'I am BaseDeco' ) ;
7456
+
7454
7457
shopModel . recompileSchema ( ) ;
7455
7458
7456
- let instance = new shopModel ( { item : { type : 'Test1' } } ) ;
7459
+ instance = new shopModel ( { item : { type : 'Test1' } } ) ;
7457
7460
assert . equal ( instance . item . whoAmI ( ) , 'I am Test1' ) ;
7458
7461
7459
7462
instance = new shopModel ( { item : { type : 'Test2' } } ) ;
0 commit comments