mongo/jstests/core/write/insert/insert_one.js
Steve McClure 1ffbc6c2e9 SERVER-109432: Autofix JS var usage to favor let (#40637)
GitOrigin-RevId: 9674b7db36a0f3f650d39c1e3fb2ad6ff2141cfb
2025-08-28 19:21:01 +00:00

46 lines
1.2 KiB
JavaScript

/**
* This test ensures that insertOne only accepts objects and that it doesn't insert any of the
* object's prototype's methods.
*/
let col = db.insert_one_number;
col.drop();
assert.eq(col.find().itcount(), 0, "collection should be empty");
assert.throws(
function () {
col.insertOne(1);
},
[],
"insertOne should only accept objects",
);
assert.eq(col.find().itcount(), 0, "collection should still be empty");
let result = col.insertOne({abc: "def"});
assert(result.acknowledged, "insertOne should succeed on documents");
assert.docEq(
{_id: result.insertedId, abc: "def"},
col.findOne({_id: result.insertedId}),
"simple document not equal to collection find result",
);
let doc = new Number();
doc.x = 12;
assert("zeroPad" in doc, "number object should have 'zeroPad' in prototype");
result = col.insertOne(doc);
assert(result.acknowledged, "insertOne should succeed on documents");
assert(
!("zeroPad" in col.findOne({_id: result.insertedId})),
"inserted result should not have functions from the number object's prototype",
);
assert.docEq(
{_id: result.insertedId, x: doc.x},
col.findOne({_id: result.insertedId}),
"document with prototype not equal to collection find result",
);