summaryrefslogtreecommitdiff
path: root/jstests/core/list_collections_no_views.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/core/list_collections_no_views.js')
-rw-r--r--jstests/core/list_collections_no_views.js252
1 files changed, 126 insertions, 126 deletions
diff --git a/jstests/core/list_collections_no_views.js b/jstests/core/list_collections_no_views.js
index 1b454eb7978..ed2c1b95d02 100644
--- a/jstests/core/list_collections_no_views.js
+++ b/jstests/core/list_collections_no_views.js
@@ -3,132 +3,132 @@
// assumes_superuser_permissions,
// ]
(function() {
- 'use strict';
- let mydb = db.getSiblingDB('list_collections_no_views');
-
- assert.commandWorked(mydb.createCollection('foo'));
- assert.commandWorked(mydb.createView('bar', 'foo', []));
-
- let all = mydb.runCommand({listCollections: 1});
- assert.commandWorked(all);
-
- let allExpected = [
- {
- "name": "bar",
- "type": "view",
- },
- {
- "name": "foo",
- "type": "collection",
- },
- {
- "name": "system.views",
- "type": "collection",
- },
- ];
-
- assert.eq(allExpected,
- all.cursor.firstBatch
- .map(function(c) {
- return {name: c.name, type: c.type};
- })
- .sort(function(c1, c2) {
- if (c1.name > c2.name) {
- return 1;
- }
-
- if (c1.name < c2.name) {
- return -1;
- }
-
- return 0;
- }));
-
- // {type: {$exists: false}} is needed for versions <= 3.2
- let collOnlyCommand = {
- listCollections: 1,
- filter: {$or: [{type: 'collection'}, {type: {$exists: false}}]}
- };
-
- let collOnly = mydb.runCommand(collOnlyCommand);
- assert.commandWorked(collOnly);
-
- let collOnlyExpected = [
- {
- "name": "foo",
- "type": "collection",
- },
- {
- "name": "system.views",
- "type": "collection",
- },
- ];
-
- assert.eq(collOnlyExpected,
- collOnly.cursor.firstBatch
- .map(function(c) {
- return {name: c.name, type: c.type};
- })
- .sort(function(c1, c2) {
- if (c1.name > c2.name) {
- return 1;
- }
-
- if (c1.name < c2.name) {
- return -1;
- }
-
- return 0;
- }));
-
- let viewOnly = mydb.runCommand({listCollections: 1, filter: {type: 'view'}});
- assert.commandWorked(viewOnly);
- let viewOnlyExpected = [{
+'use strict';
+let mydb = db.getSiblingDB('list_collections_no_views');
+
+assert.commandWorked(mydb.createCollection('foo'));
+assert.commandWorked(mydb.createView('bar', 'foo', []));
+
+let all = mydb.runCommand({listCollections: 1});
+assert.commandWorked(all);
+
+let allExpected = [
+ {
"name": "bar",
"type": "view",
- }];
-
- assert.eq(viewOnlyExpected,
- viewOnly.cursor.firstBatch
- .map(function(c) {
- return {name: c.name, type: c.type};
- })
- .sort(function(c1, c2) {
- if (c1.name > c2.name) {
- return 1;
- }
-
- if (c1.name < c2.name) {
- return -1;
- }
-
- return 0;
- }));
-
- let views = mydb.getCollection('system.views');
- views.insertOne({invalid: NumberLong(1000)});
-
- let collOnlyInvalidView = mydb.runCommand(collOnlyCommand);
- assert.eq(collOnlyExpected,
- collOnlyInvalidView.cursor.firstBatch
- .map(function(c) {
- return {name: c.name, type: c.type};
- })
- .sort(function(c1, c2) {
- if (c1.name > c2.name) {
- return 1;
- }
-
- if (c1.name < c2.name) {
- return -1;
- }
-
- return 0;
- }));
-
- assert.commandFailed(mydb.runCommand({listCollections: 1}));
- assert.commandFailed(mydb.runCommand({listCollections: 1, filter: {type: 'view'}}));
-
- // Fix database state for end of test validation and burn-in tests
- mydb.dropDatabase();
+ },
+ {
+ "name": "foo",
+ "type": "collection",
+ },
+ {
+ "name": "system.views",
+ "type": "collection",
+ },
+];
+
+assert.eq(allExpected,
+ all.cursor.firstBatch
+ .map(function(c) {
+ return {name: c.name, type: c.type};
+ })
+ .sort(function(c1, c2) {
+ if (c1.name > c2.name) {
+ return 1;
+ }
+
+ if (c1.name < c2.name) {
+ return -1;
+ }
+
+ return 0;
+ }));
+
+// {type: {$exists: false}} is needed for versions <= 3.2
+let collOnlyCommand = {
+ listCollections: 1,
+ filter: {$or: [{type: 'collection'}, {type: {$exists: false}}]}
+};
+
+let collOnly = mydb.runCommand(collOnlyCommand);
+assert.commandWorked(collOnly);
+
+let collOnlyExpected = [
+ {
+ "name": "foo",
+ "type": "collection",
+ },
+ {
+ "name": "system.views",
+ "type": "collection",
+ },
+];
+
+assert.eq(collOnlyExpected,
+ collOnly.cursor.firstBatch
+ .map(function(c) {
+ return {name: c.name, type: c.type};
+ })
+ .sort(function(c1, c2) {
+ if (c1.name > c2.name) {
+ return 1;
+ }
+
+ if (c1.name < c2.name) {
+ return -1;
+ }
+
+ return 0;
+ }));
+
+let viewOnly = mydb.runCommand({listCollections: 1, filter: {type: 'view'}});
+assert.commandWorked(viewOnly);
+let viewOnlyExpected = [{
+ "name": "bar",
+ "type": "view",
+}];
+
+assert.eq(viewOnlyExpected,
+ viewOnly.cursor.firstBatch
+ .map(function(c) {
+ return {name: c.name, type: c.type};
+ })
+ .sort(function(c1, c2) {
+ if (c1.name > c2.name) {
+ return 1;
+ }
+
+ if (c1.name < c2.name) {
+ return -1;
+ }
+
+ return 0;
+ }));
+
+let views = mydb.getCollection('system.views');
+views.insertOne({invalid: NumberLong(1000)});
+
+let collOnlyInvalidView = mydb.runCommand(collOnlyCommand);
+assert.eq(collOnlyExpected,
+ collOnlyInvalidView.cursor.firstBatch
+ .map(function(c) {
+ return {name: c.name, type: c.type};
+ })
+ .sort(function(c1, c2) {
+ if (c1.name > c2.name) {
+ return 1;
+ }
+
+ if (c1.name < c2.name) {
+ return -1;
+ }
+
+ return 0;
+ }));
+
+assert.commandFailed(mydb.runCommand({listCollections: 1}));
+assert.commandFailed(mydb.runCommand({listCollections: 1, filter: {type: 'view'}}));
+
+// Fix database state for end of test validation and burn-in tests
+mydb.dropDatabase();
})();