From e008eb5f1e07997139ae3acd81152b6180e9e312 Mon Sep 17 00:00:00 2001 From: Sophia Tan Date: Wed, 3 Aug 2022 18:14:03 +0000 Subject: SERVER-67459 Change BasicCommand to use DatabaseName --- ...ve_tenant_data_isolation_basic_dollar_tenant.js | 26 ++++++++++++++++++++-- ...e_tenant_data_isolation_basic_security_token.js | 22 ++++++++++++++++++ 2 files changed, 46 insertions(+), 2 deletions(-) (limited to 'jstests/serverless') 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( -- cgit v1.2.1