RunKit + npm:

node v16.18.0
endpointsharetweet
const mongoose = require('mongoose'); const SubSubSchema = new mongoose.Schema( { from: { type: mongoose.Schema.Types.String, required: true, }, }, { _id: false } ); const SubSchema = new mongoose.Schema( { nested: { type: SubSubSchema, required: false, }, }, { _id: false } ); // DOES NOT FAIL - WRONG BEHAVIOR async function runLeafTest() { const TestLeafSchema = new mongoose.Schema({ testProp: { testSubProp: { type: SubSchema, required: true, }, }, }); const TestLeafModel = mongoose.model('test-leaf-model', TestLeafSchema); const testModelInstance = new TestLeafModel({ testProp: { testSubProp: { nested: { from: null } } } }); await testModelInstance.validate(); } // DOES FAIL - CORRECT BEHAVIOR async function runTest() { const TestLeafSchema = new mongoose.Schema({ testSubProp: { type: SubSchema, required: true, }, }); const TestModel = mongoose.model('test-model', TestLeafSchema); const testModelInstance = new TestModel({ testSubProp: { nested: { from: null } } }); await testModelInstance.validate(); } await Promise.allSettled([runLeafTest(), runTest()]).then(([leafResult, nonLeafResult]) => { console.log({ leafResult, nonLeafResult, }); });
Created from: https://npm.runkit.com/
Loading…