diff --git a/test/functional/replicaset_mock.test.js b/test/functional/replicaset_mock.test.js deleted file mode 100644 index 8c2665ac398..00000000000 --- a/test/functional/replicaset_mock.test.js +++ /dev/null @@ -1,142 +0,0 @@ -'use strict'; -const { expect } = require('chai'); -const mock = require('../tools/mongodb-mock/index'); -const { ObjectId } = require('bson'); -const { Logger } = require('../../src/logger'); -const { isHello } = require('../../src/utils'); - -const test = {}; -describe('ReplSet (mocks)', function () { - afterEach(() => mock.cleanup()); - beforeEach(() => { - // Default message fields - const defaultFields = Object.assign({}, mock.HELLO, { - msg: 'isdbgrid' - }); - - // Default message fields - const defaultRSFields = Object.assign({}, mock.HELLO, { - setName: 'rs', - setVersion: 1, - electionId: new ObjectId(), - hosts: ['localhost:32000', 'localhost:32001', 'localhost:32002'], - arbiters: ['localhost:32002'] - }); - - // Primary server states - const serverIsPrimary = [Object.assign({}, defaultFields), Object.assign({}, defaultRSFields)]; - - return Promise.all([mock.createServer(), mock.createServer()]).then(servers => { - test.mongos1 = servers[0]; - test.mongos2 = servers[1]; - - test.mongos1.setMessageHandler(request => { - var doc = request.document; - if (isHello(doc)) { - request.reply(serverIsPrimary[0]); - } else if (doc.insert) { - request.reply({ ok: 1, n: doc.documents, lastOp: new Date() }); - } else if (doc.endSessions) { - request.reply({ ok: 1 }); - } - }); - - test.mongos2.setMessageHandler(request => { - var doc = request.document; - if (isHello(doc)) { - request.reply(serverIsPrimary[1]); - } else if (doc.insert) { - request.reply({ ok: 1, n: doc.documents, lastOp: new Date() }); - } else if (doc.endSessions) { - request.reply({ ok: 1 }); - } - }); - }); - }); - - it('Should correctly print warning when non mongos proxy passed in seed list', { - metadata: { - requires: { - generators: true, - topology: 'single' - } - }, - - test: function (done) { - var configuration = this.configuration; - var logger = Logger.currentLogger(); - Logger.setLevel('warn'); - Logger.setCurrentLogger(function (msg, state) { - expect(state.type).to.equal('warn'); - expect(state.message).to.equal( - `expected mongos proxy, but found replicaset member mongod for server ${test.mongos2.uri()}` - ); - }); - - const client = configuration.newClient( - `mongodb://${test.mongos1.uri()},${test.mongos2.uri()}/test` - ); - client.connect(function (err, client) { - Logger.setCurrentLogger(logger); - Logger.reset(); - expect(err).to.not.exist; - - client.close(done); - }); - } - }); - - // TODO(NODE-3664): Unskip - it.skip('Should correctly print warning and error when no mongos proxies in seed list', { - metadata: { - requires: { - generators: true, - topology: 'single' - } - }, - - test: function (done) { - var configuration = this.configuration; - var warnings = []; - var logger = Logger.currentLogger(); - Logger.setLevel('warn'); - Logger.setCurrentLogger(function (msg, state) { - expect(state.type).to.equal('warn'); - warnings.push(state); - }); - - const client = configuration.newClient( - `mongodb://${test.mongos1.uri()},${test.mongos2.uri()}/test` - ); - - client.connect(function (err, client) { - Logger.setCurrentLogger(logger); - Logger.reset(); - - // Assert all warnings - expect(warnings[0].message).to.equal( - `expected mongos proxy, but found replicaset member mongod for server ${test.mongos1.uri()}` - ); - - expect(warnings[1].message).to.equal( - `expected mongos proxy, but found replicaset member mongod for server ${test.mongos2.uri()}` - ); - - expect(warnings[2].message).to.equal( - 'no mongos proxies found in seed list, did you mean to connect to a replicaset' - ); - - expect(warnings[3].message).to.equal( - 'seed list contains no mongos proxies, replicaset connections requires the parameter replicaSet to be supplied in the URI or options object, mongodb://server:port/db?replicaSet=name' - ); - - // Assert error - expect(err.message).to.equal( - 'seed list contains no mongos proxies, replicaset connections requires the parameter replicaSet to be supplied in the URI or options object, mongodb://server:port/db?replicaSet=name' - ); - - client.close(done); - }); - } - }); -}); diff --git a/test/functional/saslprep.test.js b/test/integration/auth/saslprep.test.js similarity index 96% rename from test/functional/saslprep.test.js rename to test/integration/auth/saslprep.test.js index f8685d09c64..49065834131 100644 --- a/test/functional/saslprep.test.js +++ b/test/integration/auth/saslprep.test.js @@ -1,7 +1,6 @@ 'use strict'; -const setupDatabase = require('./shared').setupDatabase; -const withClient = require('./shared').withClient; +const { setupDatabase, withClient } = require('../shared'); describe('SASLPrep', function () { // Step 4 diff --git a/test/functional/scram.test.js b/test/integration/auth/scram_sha_1.test.js similarity index 94% rename from test/functional/scram.test.js rename to test/integration/auth/scram_sha_1.test.js index 860bff09e5a..ae159b80af0 100644 --- a/test/functional/scram.test.js +++ b/test/integration/auth/scram_sha_1.test.js @@ -1,9 +1,9 @@ 'use strict'; -var test = require('./shared').assert; -var setupDatabase = require('./shared').setupDatabase; -const { MongoClient } = require('../../src'); +const { MongoClient } = require('../../../src'); const { expect } = require('chai'); +const { assert: test, setupDatabase } = require('../shared'); + describe('SCRAM', function () { before(function () { return setupDatabase(this.configuration); diff --git a/test/functional/scram_sha_256.test.js b/test/integration/auth/scram_sha_256.test.js similarity index 97% rename from test/functional/scram_sha_256.test.js rename to test/integration/auth/scram_sha_256.test.js index ae66f226f03..83d4ac1f455 100644 --- a/test/functional/scram_sha_256.test.js +++ b/test/integration/auth/scram_sha_256.test.js @@ -2,10 +2,10 @@ const sinon = require('sinon'); const { expect } = require('chai'); -const { Connection } = require('../../src/cmap/connection'); -const { ScramSHA256 } = require('../../src/cmap/auth/scram'); -const { setupDatabase, withClient } = require('./shared'); -const { LEGACY_HELLO_COMMAND } = require('../../src/constants'); +const { Connection } = require('../../../src/cmap/connection'); +const { ScramSHA256 } = require('../../../src/cmap/auth/scram'); +const { setupDatabase, withClient } = require('../shared'); +const { LEGACY_HELLO_COMMAND } = require('../../../src/constants'); describe('SCRAM-SHA-256 auth', function () { const test = {}; diff --git a/test/functional/ssl_x509_connect.test.js b/test/integration/auth/ssl_x509_connect.test.js similarity index 99% rename from test/functional/ssl_x509_connect.test.js rename to test/integration/auth/ssl_x509_connect.test.js index bc25874d258..fb3ef69f3e0 100644 --- a/test/functional/ssl_x509_connect.test.js +++ b/test/integration/auth/ssl_x509_connect.test.js @@ -1,10 +1,9 @@ 'use strict'; -var fs = require('fs'); -var f = require('util').format; -var test = require('./shared').assert; -var setupDatabase = require('./shared').setupDatabase; +const fs = require('fs'); +const { format: f } = require('util'); +const { test, setupDatabase } = require('../shared'); const { expect } = require('chai'); -const { MongoClient } = require('../../src'); +const { MongoClient } = require('../../../src'); describe('SSL (x509)', function () { before(function () { diff --git a/test/functional/custom_pk.test.js b/test/integration/crud/pk_factory.test.js similarity index 89% rename from test/functional/custom_pk.test.js rename to test/integration/crud/pk_factory.test.js index aec25f9863c..68d7b98ab24 100644 --- a/test/functional/custom_pk.test.js +++ b/test/integration/crud/pk_factory.test.js @@ -1,9 +1,9 @@ 'use strict'; const { expect } = require('chai'); -var setupDatabase = require('./shared').setupDatabase; -const { ObjectId } = require('../../src'); +var setupDatabase = require('../../functional/shared').setupDatabase; +const { ObjectId } = require('../../../src'); -describe('Custom PK', function () { +describe('PkFactory', function () { before(function () { return setupDatabase(this.configuration); }); diff --git a/test/functional/promote_buffers.test.js b/test/integration/node-specific/bson-options/promote_buffers.test.js similarity index 98% rename from test/functional/promote_buffers.test.js rename to test/integration/node-specific/bson-options/promote_buffers.test.js index ea2aaa44392..32ca62e911c 100644 --- a/test/functional/promote_buffers.test.js +++ b/test/integration/node-specific/bson-options/promote_buffers.test.js @@ -1,7 +1,7 @@ 'use strict'; -var test = require('./shared').assert; const { expect } = require('chai'); -var setupDatabase = require('./shared').setupDatabase; + +const { assert: test, setupDatabase } = require('../../shared'); describe('Promote Buffers', function () { before(function () { diff --git a/test/functional/promote_values.test.js b/test/integration/node-specific/bson-options/promote_values.test.js similarity index 98% rename from test/functional/promote_values.test.js rename to test/integration/node-specific/bson-options/promote_values.test.js index c301a1c497c..d1cd7ef2c29 100644 --- a/test/functional/promote_values.test.js +++ b/test/integration/node-specific/bson-options/promote_values.test.js @@ -1,8 +1,7 @@ 'use strict'; -var test = require('./shared').assert; const { expect } = require('chai'); -var setupDatabase = require('./shared').setupDatabase; -const { Long, Int32, Double } = require('../../src'); +const { Long, Int32, Double } = require('../../../../src'); +const { assert: test, setupDatabase } = require('../../shared'); describe('Promote Values', function () { before(function () { diff --git a/test/functional/raw.test.js b/test/integration/node-specific/bson-options/raw.test.js similarity index 98% rename from test/functional/raw.test.js rename to test/integration/node-specific/bson-options/raw.test.js index c146d019d65..dcbd3b5a19c 100644 --- a/test/functional/raw.test.js +++ b/test/integration/node-specific/bson-options/raw.test.js @@ -1,5 +1,5 @@ 'use strict'; -const { assert: test, setupDatabase } = require('./shared'); +const { assert: test, setupDatabase } = require('../../shared'); const { Buffer } = require('buffer'); const { expect } = require('chai'); diff --git a/test/functional/sharding_connection.test.js b/test/integration/server-discovery-and-monitoring/sharding_connection.test.js similarity index 82% rename from test/functional/sharding_connection.test.js rename to test/integration/server-discovery-and-monitoring/sharding_connection.test.js index 5143701a173..94199d18217 100644 --- a/test/functional/sharding_connection.test.js +++ b/test/integration/server-discovery-and-monitoring/sharding_connection.test.js @@ -1,8 +1,8 @@ 'use strict'; -const { withClient, setupDatabase } = require('./shared'); +const { withClient, setupDatabase } = require('../shared'); const { expect } = require('chai'); -const { TopologyType } = require('../../src/sdam/common'); +const { TopologyType } = require('../../../src/sdam/common'); describe('Sharding (Connection)', function () { before(function () { diff --git a/test/functional/readpreference.test.js b/test/integration/server-selection/readpreference.test.js similarity index 98% rename from test/functional/readpreference.test.js rename to test/integration/server-selection/readpreference.test.js index 3174642566f..e57a3cdb2c6 100644 --- a/test/functional/readpreference.test.js +++ b/test/integration/server-selection/readpreference.test.js @@ -1,13 +1,11 @@ 'use strict'; -const test = require('./shared').assert; -const setupDatabase = require('./shared').setupDatabase; -const withMonitoredClient = require('./shared').withMonitoredClient; -const { ReadPreference, Topology } = require('../../src'); -const { withClient } = require('./shared'); +const { ReadPreference, Topology } = require('../../../src'); const chai = require('chai'); chai.use(require('chai-subset')); +const { assert: test, setupDatabase, withClient, withMonitoredClient } = require('../shared'); + const expect = chai.expect; describe('ReadPreference', function () {