summaryrefslogtreecommitdiff
path: root/jstests/serverless
diff options
context:
space:
mode:
authorSophia Tan <sophia_tll@hotmail.com>2022-08-03 18:14:03 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-08-10 04:10:22 +0000
commite008eb5f1e07997139ae3acd81152b6180e9e312 (patch)
tree70fe5516b13661f1007f1cc1bf4d3208b932e3e6 /jstests/serverless
parent1ad5ef42f5161542550262647ab79e85cc6a7cf2 (diff)
downloadmongo-e008eb5f1e07997139ae3acd81152b6180e9e312.tar.gz
SERVER-67459 Change BasicCommand to use DatabaseName
Diffstat (limited to 'jstests/serverless')
-rw-r--r--jstests/serverless/native_tenant_data_isolation_basic_dollar_tenant.js26
-rw-r--r--jstests/serverless/native_tenant_data_isolation_basic_security_token.js22
2 files changed, 46 insertions, 2 deletions
diff --git a/jstests/serverless/native_tenant_data_isolation_basic_dollar_tenant.js b/jstests/serverless/native_tenant_data_isolation_basic_dollar_tenant.js
index bf0cc3a1b43..c9be6d8e3fd 100644
--- a/jstests/serverless/native_tenant_data_isolation_basic_dollar_tenant.js
+++ b/jstests/serverless/native_tenant_data_isolation_basic_dollar_tenant.js
@@ -65,13 +65,35 @@ const testColl = testDb.getCollection(kCollName);
}));
assert.eq({_id: 0, a: 11, b: 1}, fad2.value);
// This document should not be accessed with a different tenant.
- const fad3 = assert.commandWorked(testDb.runCommand({
+ const fadOtherUser = assert.commandWorked(testDb.runCommand({
findAndModify: kCollName,
query: {b: 1},
update: {$inc: {b: 10}},
'$tenant': kOtherTenant
}));
- assert.eq(null, fad3.value);
+ assert.eq(null, fadOtherUser.value);
+}
+
+// Test count and distinct command.
+{
+ assert.commandWorked(testDb.runCommand(
+ {insert: kCollName, documents: [{c: 1, d: 1}, {c: 1, d: 2}], '$tenant': kTenant}));
+
+ // Test count command.
+ const resCount = assert.commandWorked(
+ testDb.runCommand({count: kCollName, query: {c: 1}, '$tenant': kTenant}));
+ assert.eq(2, resCount.n);
+ const resCountOtherUser = assert.commandWorked(
+ testDb.runCommand({count: kCollName, query: {c: 1}, '$tenant': kOtherTenant}));
+ assert.eq(0, resCountOtherUser.n);
+
+ // Test Distict command.
+ const resDistinct = assert.commandWorked(
+ testDb.runCommand({distinct: kCollName, key: 'd', query: {}, '$tenant': kTenant}));
+ assert.eq([1, 2], resDistinct.values.sort());
+ const resDistinctOtherUser = assert.commandWorked(
+ testDb.runCommand({distinct: kCollName, key: 'd', query: {}, '$tenant': kOtherTenant}));
+ assert.eq([], resDistinctOtherUser.values);
}
// Test renameCollection command.
diff --git a/jstests/serverless/native_tenant_data_isolation_basic_security_token.js b/jstests/serverless/native_tenant_data_isolation_basic_security_token.js
index 4527bfb0530..bed254a2b68 100644
--- a/jstests/serverless/native_tenant_data_isolation_basic_security_token.js
+++ b/jstests/serverless/native_tenant_data_isolation_basic_security_token.js
@@ -67,6 +67,20 @@ const tokenConn = new Mongo(mongod.host);
assert(arrayEq(expectedColls, colls.cursor.firstBatch), tojson(colls.cursor.firstBatch));
}
+ // Test count and distinct command.
+ {
+ assert.commandWorked(tokenDB.runCommand(
+ {insert: kCollName, documents: [{_id: 1, c: 1, d: 1}, {_id: 2, c: 1, d: 2}]}));
+
+ const resCount =
+ assert.commandWorked(tokenDB.runCommand({count: kCollName, query: {c: 1}}));
+ assert.eq(2, resCount.n);
+
+ const resDitinct =
+ assert.commandWorked(tokenDB.runCommand({distinct: kCollName, key: 'd', query: {}}));
+ assert.eq([1, 2], resDitinct.values.sort());
+ }
+
// Rename the collection.
{
const fromName = kDbName + '.' + kCollName;
@@ -106,6 +120,14 @@ const tokenConn = new Mongo(mongod.host);
tokenDB2.runCommand({findAndModify: kCollName, query: {b: 1}, update: {$inc: {b: 10}}}));
assert.eq(null, fadOtherUser.value);
+ const countOtherUser =
+ assert.commandWorked(tokenDB2.runCommand({count: kCollName, query: {c: 1}}));
+ assert.eq(0, countOtherUser.n);
+
+ const distinctOtherUer =
+ assert.commandWorked(tokenDB2.runCommand({distinct: kCollName, key: 'd', query: {}}));
+ assert.eq([], distinctOtherUer.values);
+
const fromName = kDbName + '.' + kCollName;
const toName = fromName + "_renamed";
assert.commandFailedWithCode(