Skip to content

Commit d8abdb1

Browse files
committed
test: add test case showing statics option with discriminators re: #15556 #15568
1 parent 35ffdbf commit d8abdb1

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

test/model.discriminator.test.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,30 @@ describe('model', function() {
156156
assert.equal(doc.virtualB, 'virtualB');
157157
});
158158

159+
it('can define statics using schema options (gh-15556)', function() {
160+
const baseSchema = new mongoose.Schema({
161+
name: String
162+
}, {
163+
statics: {
164+
staticFunction: () => 'base'
165+
}
166+
});
167+
168+
const discriminatorSchema = new mongoose.Schema({
169+
prop: String
170+
}, {
171+
statics: {
172+
staticFunction: () => 'discriminator',
173+
otherStaticFunction: () => 42
174+
}
175+
});
176+
const BaseModel = db.model('Test', baseSchema);
177+
const DiscriminatorModel = BaseModel.discriminator('Test1', discriminatorSchema);
178+
179+
assert.equal(DiscriminatorModel.staticFunction(), 'discriminator');
180+
assert.equal(DiscriminatorModel.otherStaticFunction(), 42);
181+
});
182+
159183
it('sets schema root discriminator mapping', function(done) {
160184
assert.deepEqual(Person.schema.discriminatorMapping, { key: '__t', value: null, isRoot: true });
161185
done();

0 commit comments

Comments
 (0)