summaryrefslogtreecommitdiff
path: root/jstests/core/system_js_drop.js
diff options
context:
space:
mode:
authorGregory Noma <gregory.noma@gmail.com>2022-09-02 12:39:59 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-09-02 13:37:58 +0000
commit26d222d66fbb97152b283a63f8e6393171c8710f (patch)
tree8cd96052ef517d5127e7acdfe3aa63539ff825ec /jstests/core/system_js_drop.js
parent97cdfef9e4f74918176f1916bc53ada8f9f66868 (diff)
downloadmongo-26d222d66fbb97152b283a63f8e6393171c8710f.tar.gz
SERVER-5972 Allow `system.js` to be dropped
Diffstat (limited to 'jstests/core/system_js_drop.js')
-rw-r--r--jstests/core/system_js_drop.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/jstests/core/system_js_drop.js b/jstests/core/system_js_drop.js
new file mode 100644
index 00000000000..49a59c14ed5
--- /dev/null
+++ b/jstests/core/system_js_drop.js
@@ -0,0 +1,37 @@
+/**
+ * Tests dropping the system.js collection.
+ *
+ * @tags: [
+ * assumes_read_preference_unchanged,
+ * assumes_unsharded_collection,
+ * requires_fcv_62,
+ * requires_non_retryable_writes,
+ * ]
+ */
+(function() {
+'use strict';
+
+const testDB = db.getSiblingDB(jsTestName());
+assert.commandWorked(testDB.dropDatabase());
+
+const coll = testDB.coll;
+const systemJs = testDB.system.js;
+
+assert.commandWorked(coll.insert([{name: 'Alice', age: 20}, {name: 'Bob', age: 18}]));
+
+assert.commandWorked(systemJs.insert({
+ _id: "isTeenager",
+ value: function(age) {
+ return age >= 13 && age <= 19;
+ },
+}));
+
+assert.commandWorked(
+ testDB.runCommand({find: coll.getName(), filter: {$where: "isTeenager(this.age)"}}));
+
+assert(systemJs.drop());
+
+assert.commandFailedWithCode(
+ testDB.runCommand({find: coll.getName(), filter: {$where: "isTeenager(this.age)"}}),
+ ErrorCodes.JSInterpreterFailure);
+})();