diff --git a/test/model.findOneAndUpdate.test.js b/test/model.findOneAndUpdate.test.js index 3069209069d..5c7b9684d31 100644 --- a/test/model.findOneAndUpdate.test.js +++ b/test/model.findOneAndUpdate.test.js @@ -2061,4 +2061,24 @@ describe('model: findOneAndUpdate:', function() { assert.ifError(err); }); + + it('casts array filters (gh-13219)', async function() { + const MyModel = db.model('Test', new Schema({ + _id: Number, + grades: [Number] + })); + + await MyModel.create([ + { _id: 1, grades: [95, 102, 90] } + ]); + + await MyModel.findOneAndUpdate( + {}, + { $set: { 'grades.$[element]': 100 } }, + { arrayFilters: [{ element: { $gt: '100' } }] } + ); + + const doc = await MyModel.findOne(); + assert.deepEqual(doc.toObject().grades, [95, 100, 90]); + }); }); diff --git a/test/model.test.js b/test/model.test.js index 7128891ea79..8dd0ebace36 100644 --- a/test/model.test.js +++ b/test/model.test.js @@ -3322,15 +3322,6 @@ describe('Model', function() { }); describe('3.6 features', function() { - before(async function() { - const version = await start.mongodVersion(); - const mongo36 = version[0] > 3 || (version[0] === 3 && version[1] >= 6); - - if (!mongo36) { - this.skip(); - } - }); - it('arrayFilter (gh-5965)', async function() { const MyModel = db.model('Test', new Schema({