mongo/jstests/sharding/not_allowed_on_sharded_coll...

30 lines
1.0 KiB
JavaScript

// Tests that commands that should not be runnable on sharded collections cannot be run on sharded
// collections.
import {ShardingTest} from "jstests/libs/shardingtest.js";
const st = new ShardingTest({shards: 2, mongos: 2});
const dbName = "test";
const coll = "foo";
const ns = dbName + "." + coll;
const freshMongos = st.s0.getDB(dbName);
const staleMongos = st.s1.getDB(dbName);
assert.commandWorked(staleMongos.adminCommand({enableSharding: dbName}));
assert.commandWorked(freshMongos.adminCommand({shardCollection: ns, key: {_id: 1}}));
// Test that commands that should not be runnable on sharded collection do not work on sharded
// collections, using both fresh mongos and stale mongos instances.
assert.commandFailedWithCode(
freshMongos.runCommand({convertToCapped: coll, size: 64 * 1024}),
ErrorCodes.NamespaceCannotBeSharded,
);
assert.commandFailedWithCode(
staleMongos.runCommand({convertToCapped: coll, size: 32 * 1024}),
ErrorCodes.NamespaceCannotBeSharded,
);
assert(!freshMongos.getCollection(coll).isCapped());
st.stop();