mongo/jstests/libs/collection_drop_recreate.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

30 lines
1.4 KiB
JavaScript

/**
* Attempts to drop the given collection and asserts either that the drop succeeded or the
* collection did not exist. Avoids automatically recreating the collection in the case of test
* suites where accessing or dropping the collection implicitly recreates it.
*/
export function assertDropCollection(db, collName) {
let cmdRes = db.runCommand({drop: collName, writeConcern: {w: "majority"}});
assert(cmdRes.ok === 1 || cmdRes.code === ErrorCodes.NamespaceNotFound, tojson(cmdRes));
}
/**
* Attempts to create a collection with the given name and options, if any, and asserts on failure.
* Returns the newly-created collection on success. When running under a sharded collections
* passthrough, the new collection will be implicitly sharded.
*/
export function assertCreateCollection(db, collName, collOpts) {
assert.commandWorked(db.createCollection(collName, collOpts));
return db.getCollection(collName);
}
/**
* Attempts to drop a collection with the given name and recreate it with the specified options, if
* any. Asserts if either step fails. Returns the newly-created collection on success. When running
* under a sharded collections passthrough, the new collection will be implicitly sharded.
*/
export function assertDropAndRecreateCollection(db, collName, collOpts) {
assertDropCollection(db, collName);
return assertCreateCollection(db, collName, collOpts);
}