mongodb-connection-fixture

0.0.14 • Public • Published

mongodb-connection-fixture travis npm

Fixture data used by mongodb-connection-model for testing.

Example

var fixtures = require('mongodb-connection-fixture').MATRIX;
var connect = require('mongodb-connection-model').connect;
var format = require('util').format;

if (fixtures.length === 0) {
  describe(format('Connect to %d instances in the cloud #slow', fixtures.length), function() {
    it.skip('please see https://github.com/mongodb-js/connection-fixture');
  });
} else {
  describe(format('Connect to %d instances in the cloud #slow', fixtures.length), function() {
    fixtures.map(function(model) {
      if (process.env.dry) {
        it(format('should connect to `%s`', model.name));
      } else {
        it(format('should connect to `%s`', model.name), function(done) {
          this.slow(5000);
          this.timeout(10000);
          connect(model, done);
        });
      }
    });
  });
}

Configuration

The mongodb-connection-fixture module is configurable via environment variables which will automatically control the values returned when running require('mongodb-connection-fixture').MATRIX.

The best way to explain is by using our mocha example above. So first, clone this repo and install dependecies:

git clone git@github.com:mongodb-js/connection-fixture.git ~/mongodb/connection-fixture;
cd ~/mongodb/connection-fixture && npm install;

Now if we just npm run example, we'll see the following:

Connect to 0 instances in the cloud #slow
  - please see https://github.com/mongodb-js/connection-fixture


0 passing (5ms)
1 pending

0 functional tests isn't so good... Fortunately, there are 4 environment variables we can use to make this > 0:

  • MONGODB_KERBEROS
  • MONGODB_KERBEROS_PASSWORD
  • MONGODB_LDAP_PASSWORD
  • MONGODB_PASSWORD_INTEGRATIONS
  • MONGODB_PASSWORD_COMPASS
  • MONGODB_PASSWORD_FANCLUB
MONGODB_KERBEROS=1 npm run example;
Connect to 1 instances in the cloud #slow
  - should connect to `Enterprise: Kerberos (evergreen only)`


0 passing (8ms)
1 pending
MONGODB_KERBEROS=1 MONGODB_KERBEROS_PASSWORD=arlo npm run example;
Connect to 2 instances in the cloud #slow
  - should connect to `Enterprise: Kerberos (evergreen only)`
  - should connect to `Enterprise: Kerberos w/ password (evergreen only)`


0 passing (7ms)
2 pending
MONGODB_KERBEROS=1 MONGODB_KERBEROS_PASSWORD=arlo MONGODB_LDAP_PASSWORD=basil npm run example;
Connect to 3 instances in the cloud #slow
  - should connect to `Enterprise: LDAP (evergreen only)`
  - should connect to `Enterprise: Kerberos (evergreen only)`
  - should connect to `Enterprise: Kerberos w/ password (evergreen only)`


0 passing (6ms)
3 pending
MONGODB_PASSWORD_INTEGRATIONS=foo npm run example;
  Connect to 21 instances in the cloud #slow
    - should connect to `🔒  integrations@3.0 Standalone: Store 1`
    - should connect to `🔒  integrations@2.6 Standalone: Store 1`
    - should connect to `🔒  integrations@3.0 Replicaset: Store 1`
    - should connect to `🔒  integrations@3.0 Replicaset: Store 2`
    - should connect to `🔒  integrations@3.0 Replicaset: Store 3`
    - should connect to `🔒  integrations@3.0 Cluster: Router 1`
    - should connect to `🔒  integrations@3.0 Cluster: Router 2`
    - should connect to `🔒  integrations@3.0 Cluster: Router 3`
    - should connect to `🔒  integrations@3.0 Cluster: Config 1`
    - should connect to `🔒  integrations@3.0 Cluster: Config 2`
    - should connect to `🔒  integrations@3.0 Cluster: Config 3`
    - should connect to `🔒  integrations@3.0 Cluster: Store 1`
    - should connect to `🔒  integrations@3.0 Cluster: Store 2`
    - should connect to `🔒  integrations@3.0 Cluster: Store 3`
    - should connect to `🔒  integrations@2.6 Cluster: Router 1`
    - should connect to `🔒  integrations@2.6 Cluster: Store 1`
    - should connect to `🔒  integrations@2.6 Cluster: Store 2`
    - should connect to `🔒  integrations@2.6 Cluster: Store 3`
    - should connect to `🔒  integrations@2.6 Cluster: Config 1`
    - should connect to `🔒  integrations@2.6 Cluster: Config 2`
    - should connect to `🔒  integrations@2.6 Cluster: Config 3`


  0 passing (6ms)
  21 pending
MONGODB_PASSWORD_INTEGRATIONS=foo MONGODB_PASSWORD_COMPASS=bar npm run example
  Connect to 42 instances in the cloud #slow
    - should connect to `🔒  integrations@3.0 Standalone: Store 1`
    - should connect to `🔒  integrations@2.6 Standalone: Store 1`
    - should connect to `🔒  integrations@3.0 Replicaset: Store 1`
    - should connect to `🔒  integrations@3.0 Replicaset: Store 2`
    - should connect to `🔒  integrations@3.0 Replicaset: Store 3`
    - should connect to `🔒  integrations@3.0 Cluster: Router 1`
    - should connect to `🔒  integrations@3.0 Cluster: Router 2`
    - should connect to `🔒  integrations@3.0 Cluster: Router 3`
    - should connect to `🔒  integrations@3.0 Cluster: Config 1`
    - should connect to `🔒  integrations@3.0 Cluster: Config 2`
    - should connect to `🔒  integrations@3.0 Cluster: Config 3`
    - should connect to `🔒  integrations@3.0 Cluster: Store 1`
    - should connect to `🔒  integrations@3.0 Cluster: Store 2`
    - should connect to `🔒  integrations@3.0 Cluster: Store 3`
    - should connect to `🔒  integrations@2.6 Cluster: Router 1`
    - should connect to `🔒  integrations@2.6 Cluster: Store 1`
    - should connect to `🔒  integrations@2.6 Cluster: Store 2`
    - should connect to `🔒  integrations@2.6 Cluster: Store 3`
    - should connect to `🔒  integrations@2.6 Cluster: Config 1`
    - should connect to `🔒  integrations@2.6 Cluster: Config 2`
    - should connect to `🔒  integrations@2.6 Cluster: Config 3`
    - should connect to `🔒  compass@3.0 Standalone: Store 1`
    - should connect to `🔒  compass@2.6 Standalone: Store 1`
    - should connect to `🔒  compass@3.0 Replicaset: Store 1`
    - should connect to `🔒  compass@3.0 Replicaset: Store 2`
    - should connect to `🔒  compass@3.0 Replicaset: Store 3`
    - should connect to `🔒  compass@3.0 Cluster: Router 1`
    - should connect to `🔒  compass@3.0 Cluster: Router 2`
    - should connect to `🔒  compass@3.0 Cluster: Router 3`
    - should connect to `🔒  compass@3.0 Cluster: Config 1`
    - should connect to `🔒  compass@3.0 Cluster: Config 2`
    - should connect to `🔒  compass@3.0 Cluster: Config 3`
    - should connect to `🔒  compass@3.0 Cluster: Store 1`
    - should connect to `🔒  compass@3.0 Cluster: Store 2`
    - should connect to `🔒  compass@3.0 Cluster: Store 3`
    - should connect to `🔒  compass@2.6 Cluster: Router 1`
    - should connect to `🔒  compass@2.6 Cluster: Store 1`
    - should connect to `🔒  compass@2.6 Cluster: Store 2`
    - should connect to `🔒  compass@2.6 Cluster: Store 3`
    - should connect to `🔒  compass@2.6 Cluster: Config 1`
    - should connect to `🔒  compass@2.6 Cluster: Config 2`
    - should connect to `🔒  compass@2.6 Cluster: Config 3`


  0 passing (8ms)
  42 pending
MONGODB_PASSWORD_INTEGRATIONS=foo MONGODB_PASSWORD_COMPASS=bar MONGODB_PASSWORD_FANCLUB=baz npm run example
Connect to 63 instances in the cloud #slow
  - should connect to `🔒  integrations@3.0 Standalone: Store 1`
  - should connect to `🔒  integrations@2.6 Standalone: Store 1`
  - should connect to `🔒  integrations@3.0 Replicaset: Store 1`
  - should connect to `🔒  integrations@3.0 Replicaset: Store 2`
  - should connect to `🔒  integrations@3.0 Replicaset: Store 3`
  - should connect to `🔒  integrations@3.0 Cluster: Router 1`
  - should connect to `🔒  integrations@3.0 Cluster: Router 2`
  - should connect to `🔒  integrations@3.0 Cluster: Router 3`
  - should connect to `🔒  integrations@3.0 Cluster: Config 1`
  - should connect to `🔒  integrations@3.0 Cluster: Config 2`
  - should connect to `🔒  integrations@3.0 Cluster: Config 3`
  - should connect to `🔒  integrations@3.0 Cluster: Store 1`
  - should connect to `🔒  integrations@3.0 Cluster: Store 2`
  - should connect to `🔒  integrations@3.0 Cluster: Store 3`
  - should connect to `🔒  integrations@2.6 Cluster: Router 1`
  - should connect to `🔒  integrations@2.6 Cluster: Store 1`
  - should connect to `🔒  integrations@2.6 Cluster: Store 2`
  - should connect to `🔒  integrations@2.6 Cluster: Store 3`
  - should connect to `🔒  integrations@2.6 Cluster: Config 1`
  - should connect to `🔒  integrations@2.6 Cluster: Config 2`
  - should connect to `🔒  integrations@2.6 Cluster: Config 3`
  - should connect to `🔒  compass@3.0 Standalone: Store 1`
  - should connect to `🔒  compass@2.6 Standalone: Store 1`
  - should connect to `🔒  compass@3.0 Replicaset: Store 1`
  - should connect to `🔒  compass@3.0 Replicaset: Store 2`
  - should connect to `🔒  compass@3.0 Replicaset: Store 3`
  - should connect to `🔒  compass@3.0 Cluster: Router 1`
  - should connect to `🔒  compass@3.0 Cluster: Router 2`
  - should connect to `🔒  compass@3.0 Cluster: Router 3`
  - should connect to `🔒  compass@3.0 Cluster: Config 1`
  - should connect to `🔒  compass@3.0 Cluster: Config 2`
  - should connect to `🔒  compass@3.0 Cluster: Config 3`
  - should connect to `🔒  compass@3.0 Cluster: Store 1`
  - should connect to `🔒  compass@3.0 Cluster: Store 2`
  - should connect to `🔒  compass@3.0 Cluster: Store 3`
  - should connect to `🔒  compass@2.6 Cluster: Router 1`
  - should connect to `🔒  compass@2.6 Cluster: Store 1`
  - should connect to `🔒  compass@2.6 Cluster: Store 2`
  - should connect to `🔒  compass@2.6 Cluster: Store 3`
  - should connect to `🔒  compass@2.6 Cluster: Config 1`
  - should connect to `🔒  compass@2.6 Cluster: Config 2`
  - should connect to `🔒  compass@2.6 Cluster: Config 3`
  - should connect to `🔒  fanclub@3.0 Standalone: Store 1`
  - should connect to `🔒  fanclub@2.6 Standalone: Store 1`
  - should connect to `🔒  fanclub@3.0 Replicaset: Store 1`
  - should connect to `🔒  fanclub@3.0 Replicaset: Store 2`
  - should connect to `🔒  fanclub@3.0 Replicaset: Store 3`
  - should connect to `🔒  fanclub@3.0 Cluster: Router 1`
  - should connect to `🔒  fanclub@3.0 Cluster: Router 2`
  - should connect to `🔒  fanclub@3.0 Cluster: Router 3`
  - should connect to `🔒  fanclub@3.0 Cluster: Config 1`
  - should connect to `🔒  fanclub@3.0 Cluster: Config 2`
  - should connect to `🔒  fanclub@3.0 Cluster: Config 3`
  - should connect to `🔒  fanclub@3.0 Cluster: Store 1`
  - should connect to `🔒  fanclub@3.0 Cluster: Store 2`
  - should connect to `🔒  fanclub@3.0 Cluster: Store 3`
  - should connect to `🔒  fanclub@2.6 Cluster: Router 1`
  - should connect to `🔒  fanclub@2.6 Cluster: Store 1`
  - should connect to `🔒  fanclub@2.6 Cluster: Store 2`
  - should connect to `🔒  fanclub@2.6 Cluster: Store 3`
  - should connect to `🔒  fanclub@2.6 Cluster: Config 1`
  - should connect to `🔒  fanclub@2.6 Cluster: Config 2`
  - should connect to `🔒  fanclub@2.6 Cluster: Config 3`


0 passing (9ms)
63 pending

TravisCI

# Enable any functional tests in this project for the following cloud manager users
travis encrypt MONGODB_PASSWORD_INTEGRATIONS='<users_password>' --add;
travis encrypt MONGODB_PASSWORD_COMPASS='<users_password>' --add;
travis encrypt MONGODB_PASSWORD_FANCLUB='<users_password>' --add;

See the cloud-stage doc on google drive for password values.

Evergreen

# Enable any functional tests in this project for Kerberos or LDAP
EVERGREEN=1;

License

Apache 2.0

Readme

Keywords

none

Package Sidebar

Install

npm i mongodb-connection-fixture

Weekly Downloads

18

Version

0.0.14

License

Apache-2.0

Last publish

Collaborators

  • orechova
  • himanshusinghs
  • c-buckingham
  • mongo-j
  • mabaasit
  • alexander_schroll
  • chuck.kalmanek
  • mongodb-js-user
  • rueckstiess
  • durran
  • lerouxb
  • fredtruman
  • mbroadst
  • hswolff
  • satyasinha
  • matt_d_rat
  • rhysm
  • tomhollander
  • alena.khineika
  • jeff-allen-mongo
  • mmarcon
  • jonathan.balsano
  • mongodb-build
  • jack.weir
  • stennie
  • mcasimir
  • kristina.stefano
  • jarjee
  • shaketbaby
  • devtoolsbot
  • addaleax
  • gribnoysup
  • mutukrish
  • imlucas