Git Product home page Git Product logo

connection-fixture's Introduction

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 [email protected]: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 `๐Ÿ”’  [email protected] Standalone: Store 1`
    - should connect to `๐Ÿ”’  [email protected] Standalone: Store 1`
    - should connect to `๐Ÿ”’  [email protected] Replicaset: Store 1`
    - should connect to `๐Ÿ”’  [email protected] Replicaset: Store 2`
    - should connect to `๐Ÿ”’  [email protected] Replicaset: Store 3`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Router 1`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Router 2`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Router 3`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Config 1`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Config 2`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Config 3`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Store 1`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Store 2`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Store 3`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Router 1`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Store 1`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Store 2`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Store 3`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Config 1`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Config 2`
    - should connect to `๐Ÿ”’  [email protected] 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 `๐Ÿ”’  [email protected] Standalone: Store 1`
    - should connect to `๐Ÿ”’  [email protected] Standalone: Store 1`
    - should connect to `๐Ÿ”’  [email protected] Replicaset: Store 1`
    - should connect to `๐Ÿ”’  [email protected] Replicaset: Store 2`
    - should connect to `๐Ÿ”’  [email protected] Replicaset: Store 3`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Router 1`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Router 2`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Router 3`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Config 1`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Config 2`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Config 3`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Store 1`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Store 2`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Store 3`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Router 1`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Store 1`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Store 2`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Store 3`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Config 1`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Config 2`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Config 3`
    - should connect to `๐Ÿ”’  [email protected] Standalone: Store 1`
    - should connect to `๐Ÿ”’  [email protected] Standalone: Store 1`
    - should connect to `๐Ÿ”’  [email protected] Replicaset: Store 1`
    - should connect to `๐Ÿ”’  [email protected] Replicaset: Store 2`
    - should connect to `๐Ÿ”’  [email protected] Replicaset: Store 3`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Router 1`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Router 2`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Router 3`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Config 1`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Config 2`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Config 3`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Store 1`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Store 2`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Store 3`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Router 1`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Store 1`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Store 2`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Store 3`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Config 1`
    - should connect to `๐Ÿ”’  [email protected] Cluster: Config 2`
    - should connect to `๐Ÿ”’  [email protected] 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 `๐Ÿ”’  [email protected] Standalone: Store 1`
  - should connect to `๐Ÿ”’  [email protected] Standalone: Store 1`
  - should connect to `๐Ÿ”’  [email protected] Replicaset: Store 1`
  - should connect to `๐Ÿ”’  [email protected] Replicaset: Store 2`
  - should connect to `๐Ÿ”’  [email protected] Replicaset: Store 3`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Router 1`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Router 2`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Router 3`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Config 1`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Config 2`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Config 3`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Store 1`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Store 2`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Store 3`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Router 1`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Store 1`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Store 2`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Store 3`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Config 1`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Config 2`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Config 3`
  - should connect to `๐Ÿ”’  [email protected] Standalone: Store 1`
  - should connect to `๐Ÿ”’  [email protected] Standalone: Store 1`
  - should connect to `๐Ÿ”’  [email protected] Replicaset: Store 1`
  - should connect to `๐Ÿ”’  [email protected] Replicaset: Store 2`
  - should connect to `๐Ÿ”’  [email protected] Replicaset: Store 3`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Router 1`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Router 2`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Router 3`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Config 1`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Config 2`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Config 3`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Store 1`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Store 2`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Store 3`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Router 1`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Store 1`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Store 2`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Store 3`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Config 1`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Config 2`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Config 3`
  - should connect to `๐Ÿ”’  [email protected] Standalone: Store 1`
  - should connect to `๐Ÿ”’  [email protected] Standalone: Store 1`
  - should connect to `๐Ÿ”’  [email protected] Replicaset: Store 1`
  - should connect to `๐Ÿ”’  [email protected] Replicaset: Store 2`
  - should connect to `๐Ÿ”’  [email protected] Replicaset: Store 3`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Router 1`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Router 2`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Router 3`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Config 1`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Config 2`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Config 3`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Store 1`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Store 2`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Store 3`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Router 1`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Store 1`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Store 2`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Store 3`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Config 1`
  - should connect to `๐Ÿ”’  [email protected] Cluster: Config 2`
  - should connect to `๐Ÿ”’  [email protected] 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

connection-fixture's People

Contributors

durran avatar greenkeeper[bot] avatar greenkeeperio-bot avatar imlucas avatar kangas avatar pzrq avatar rueckstiess avatar shum avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.