Files
mongo/jstests/core/capped_update.js
Max Hirschhorn 9ad8d6335f SERVER-40076 Tag JS tests with reason they're unable to run in Atlas.
There are likely more JavaScript tests which have been added since
r3.6.9 that still need to be tagged.

(cherry picked from commit 05ec08fa62)
2019-03-11 18:17:29 -04:00

34 lines
1.3 KiB
JavaScript

/**
* Tests various update scenarios on capped collections:
* -- SERVER-20529: Ensure capped document sizes do not change
* -- SERVER-11983: Don't create _id field on capped updates
* @tags: [
* requires_capped,
* uses_testing_only_commands,
* ]
*/
(function() {
'use strict';
var t = db.getSiblingDB("local").cannot_change_capped_size;
t.drop();
assert.commandWorked(
t.getDB().createCollection(t.getName(), {capped: true, size: 1024, autoIndexId: false}));
assert.eq(0, t.getIndexes().length, "the capped collection has indexes");
for (var j = 1; j <= 10; j++) {
assert.writeOK(t.insert({_id: j, s: "Hello, World!"}));
}
assert.writeOK(t.update({_id: 3}, {s: "Hello, Mongo!"})); // Mongo is same length as World
assert.writeError(t.update({_id: 3}, {$set: {s: "Hello!"}}));
assert.writeError(t.update({_id: 10}, {}));
assert.writeError(t.update({_id: 10}, {s: "Hello, World!!!"}));
assert.commandWorked(t.getDB().runCommand({godinsert: t.getName(), obj: {a: 2}}));
var doc = t.findOne({a: 2});
assert.eq(undefined, doc["_id"], "now has _id after godinsert");
assert.writeOK(t.update({a: 2}, {$inc: {a: 1}}));
doc = t.findOne({a: 3});
assert.eq(undefined, doc["_id"], "now has _id after update");
})();