@dhyasama/totem-models 10.0.3 → 10.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -12,6 +12,10 @@ var bootstrap = function(mongoose, config) {
12
12
  mongoose.set('useUnifiedTopology', true);
13
13
  mongoose.set('useCreateIndex', true);
14
14
 
15
+ // TODO: Turn this off for now; It will be nice when we can go through all code to safely utilize it;
16
+ //https://mongoosejs.com/docs/migrating_to_5.html#id-getter
17
+ mongoose.set('objectIdGetter', false)
18
+
15
19
  // turn on debug if in development and not explicitly turned off
16
20
  mongoose.set('debug', (!config.suppressDebugLog && env == 'development'));//mongoose.set('debug',true);
17
21
 
@@ -1914,7 +1914,7 @@ module.exports = function(mongoose, config) {
1914
1914
  this
1915
1915
  .find(query)
1916
1916
  .populate('merged')
1917
- .select('logoUrl name description related')
1917
+ .select('logoUrl name description related website')
1918
1918
  .exec(function(err, orgs) {
1919
1919
 
1920
1920
  if (err) return cb(err, null);
@@ -2117,9 +2117,7 @@ module.exports = function(mongoose, config) {
2117
2117
 
2118
2118
  Organization.set('usePushEach', true);
2119
2119
  Organization.set('toJSON', { virtuals: true });
2120
- Organization.set('usePushEach', true);
2121
2120
  Organization.set('autoIndex', false);
2122
- Organization.set('usePushEach', true);
2123
2121
 
2124
2122
  Organization.index({ website: 1, websiteAliases: 1 }, { unique: true, partialFilterExpression : { type :"string" } });
2125
2123
  Organization.on('index', function(err) { console.log('error building organization_new indexes: ' + err); });
package/lib/Person.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
- module.exports = function(mongoose, config) {
3
+ const _ = require("underscore");
4
+ module.exports = function(mongoose, config) {
4
5
 
5
6
  let
6
7
 
@@ -663,6 +664,47 @@ module.exports = function(mongoose, config) {
663
664
 
664
665
  };
665
666
 
667
+ Person.statics.atlasSearch = function (query, options, cb) {
668
+
669
+ const self = this;
670
+
671
+ const defaultOptions = {
672
+ limit: 100
673
+ };
674
+
675
+ // combine provided and default options
676
+ options = _.defaults(options || {}, defaultOptions);
677
+
678
+ self.aggregate([
679
+ {
680
+ '$search': {
681
+ 'index': 'default',
682
+ 'text': {
683
+ 'query': query,
684
+ 'path': {
685
+ 'wildcard': '*'
686
+ }
687
+ }
688
+ }
689
+ }, {
690
+ '$match': {
691
+ 'deleted': false
692
+ }
693
+ }, {
694
+ $limit: options.limit,
695
+ }, {
696
+ "$project": {
697
+ "_id": 1,
698
+ "fullName": 1,
699
+ "name": 1,
700
+ "avatarUrl": 1,
701
+ "score": { "$meta": "searchScore" }
702
+ }
703
+ }
704
+ ], cb);
705
+
706
+ };
707
+
666
708
  // search for people based on fields provided
667
709
  // Data format, everything is optional
668
710
  //{
@@ -804,12 +846,14 @@ module.exports = function(mongoose, config) {
804
846
  query['$or'].push({ 'aliases': aliasRegExp });
805
847
  }
806
848
 
849
+ // Super simple email validator works in this case. Just make sure it has an @ and a period.
850
+ data.emails = data.emails || [];
851
+ data.emails = _.filter(data.emails, function(email) { return email.indexOf('@') !== -1 && email.indexOf('.') !== -1; });
852
+ data.emails = data.emails.map(function(email){ return email.toLowerCase() })
853
+
807
854
  // conditionally include emails and phones
808
- if (data.emails) {
809
- data.emails = data.emails.map(function(email){ return email.toLowerCase() })
810
- query['$or'].push({'contact.email.email': { $in : data.emails }});
811
- }
812
- if (data.phones) query['$or'].push({'contact.phone.number': { $in : data.phones }});
855
+ if (data.emails.length) { query['$or'].push({'contact.email.email': { $in : data.emails }}); }
856
+ if (data.phones && data.phones.length) query['$or'].push({'contact.phone.number': { $in : data.phones }});
813
857
 
814
858
  query = cleanQuery(query);
815
859
  return query;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dhyasama/totem-models",
3
- "version": "10.0.3",
3
+ "version": "10.0.5",
4
4
  "author": "Jason Reynolds",
5
5
  "license": "UNLICENSED",
6
6
  "description": "Models for Totem platform",
@@ -15,7 +15,7 @@
15
15
  "registry": "https://registry.npmjs.org/"
16
16
  },
17
17
  "dependencies": {
18
- "@dhyasama/totem-utilities": "^3.0.3",
18
+ "@dhyasama/totem-utilities": "^3.0.5",
19
19
  "async": "^2.6.4",
20
20
  "awesome-phonenumber": "^1.0.14",
21
21
  "bluebird": "^3.7.2",
@@ -24,14 +24,13 @@
24
24
  "mongoose-deep-populate": "^3.2.0",
25
25
  "range_check": "^1.4.0",
26
26
  "request": "^2.88.0",
27
- "underscore": "~1.5.0",
28
- "validator": "^5.4.0"
27
+ "underscore": "^1.13.6",
28
+ "validator": "^13.7.0"
29
29
  },
30
30
  "devDependencies": {
31
- "mocha": "^5.2.0",
31
+ "mocha": "^10.1.0",
32
32
  "mocha-mongoose": "^1.2.0",
33
33
  "mongoose": "^5.13.15",
34
- "nock": "^7.2.2",
35
34
  "should": "^11.1.1"
36
35
  }
37
36
  }
package/test/Account.js CHANGED
@@ -3,10 +3,10 @@
3
3
  var
4
4
 
5
5
  should = require("should"),
6
+ mongoose = require("mongoose"),
6
7
  config = require('./config')['test'],
7
- mongoose = require('mongoose'),
8
8
  models = require('../index')(mongoose, config),
9
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
9
+ databaseHelpers = require('./databaseHelpers'),
10
10
  Account = mongoose.model('Account'),
11
11
  Organization = mongoose.model('Organization'),
12
12
  Person = mongoose.model('Person'),
@@ -18,12 +18,11 @@ var customer1, customer2;
18
18
  describe('Account', function() {
19
19
 
20
20
  before(function(done) {
21
- if (mongoose.connection.db) return done();
22
- mongoose.connect(config.db.uri, done);
21
+ databaseHelpers.connect(mongoose, done);
23
22
  });
24
23
 
25
24
  before(function(done) {
26
- clearDB(done);
25
+ databaseHelpers.clearDB(mongoose, done);
27
26
  });
28
27
 
29
28
  before(function(done) {
@@ -3,23 +3,20 @@
3
3
  var
4
4
 
5
5
  should = require("should"),
6
- config = require('./config')['test'],
7
6
  mongoose = require('mongoose'),
8
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
7
+ databaseHelpers = require('./databaseHelpers'),
9
8
  CalendarEvent = mongoose.model('CalendarEvent');
10
9
 
11
10
  var calendarEventId;
12
11
 
13
-
14
12
  describe('CalendarEvent', function() {
15
13
 
16
14
  before(function(done) {
17
- if (mongoose.connection.db) return done();
18
- mongoose.connect(config.db.uri, done);
15
+ databaseHelpers.connect(mongoose, done);
19
16
  });
20
17
 
21
18
  before(function(done) {
22
- clearDB(done);
19
+ databaseHelpers.clearDB(mongoose, done);
23
20
  });
24
21
 
25
22
  it('creates a calendar event', function(done) {
package/test/CapTable.js CHANGED
@@ -3,9 +3,8 @@
3
3
  var
4
4
 
5
5
  should = require("should"),
6
- config = require('./config')['test'],
7
6
  mongoose = require('mongoose'),
8
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
7
+ databaseHelpers = require('./databaseHelpers'),
9
8
  CapTable = mongoose.model('CapTable'),
10
9
  Fund = mongoose.model('Fund'),
11
10
  Organization = mongoose.model('Organization');
@@ -19,23 +18,13 @@ var fund = new Fund();
19
18
  describe('Cap Tables', function() {
20
19
 
21
20
  before(function(done) {
22
- if (mongoose.connection.db) return done();
23
- mongoose.connect(config.db.uri, done);
21
+ databaseHelpers.connect(mongoose, done);
24
22
  });
25
23
 
26
24
  before(function(done) {
27
- clearDB(done);
25
+ databaseHelpers.clearDB(mongoose, done);
28
26
  });
29
27
 
30
- // before(function(done) {
31
- // CapTable.collection.dropIndexes(function (err, result) {
32
- // should.not.exist(err);
33
- // should.exist(result);
34
- // result.should.equal(true);
35
- // return done();
36
- // });
37
- // });
38
-
39
28
  before(function(done) {
40
29
 
41
30
  fund.name = 'My Huge Fund';
package/test/Deal.js CHANGED
@@ -3,10 +3,9 @@
3
3
  var
4
4
 
5
5
  should = require("should"),
6
- config = require('./config')['test'],
7
6
  _ = require('underscore'),
8
7
  mongoose = require('mongoose'),
9
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
8
+ databaseHelpers = require('./databaseHelpers'),
10
9
  Account = mongoose.model('Account'),
11
10
  Deal = mongoose.model('Deal'),
12
11
  Organization = mongoose.model('Organization');
@@ -20,12 +19,11 @@ var timestamps = [];
20
19
  describe('Deal', function() {
21
20
 
22
21
  before(function(done) {
23
- if (mongoose.connection.db) return done();
24
- mongoose.connect(config.db.uri, done);
22
+ databaseHelpers.connect(mongoose, done);
25
23
  });
26
24
 
27
25
  before(function(done) {
28
- clearDB(done);
26
+ databaseHelpers.clearDB(mongoose, done);
29
27
  });
30
28
 
31
29
  before(function(done) {
package/test/Document.js CHANGED
@@ -3,10 +3,8 @@
3
3
  var
4
4
 
5
5
  should = require("should"),
6
- config = require('./config')['test'],
7
- _ = require('underscore'),
8
6
  mongoose = require('mongoose'),
9
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
7
+ databaseHelpers = require('./databaseHelpers'),
10
8
  Account = mongoose.model('Account'),
11
9
  Deal = mongoose.model('Deal'),
12
10
  Document = mongoose.model('Document'),
@@ -20,12 +18,11 @@ var deal, account, interaction, message, org, person, documentCreator, documentI
20
18
  describe('Document', function() {
21
19
 
22
20
  before(function(done) {
23
- if (mongoose.connection.db) return done();
24
- mongoose.connect(config.db.uri, done);
21
+ databaseHelpers.connect(mongoose, done);
25
22
  });
26
23
 
27
24
  before(function(done) {
28
- clearDB(done);
25
+ databaseHelpers.clearDB(mongoose, done);
29
26
  });
30
27
 
31
28
  before(function(done) {
@@ -67,15 +64,6 @@ describe('Document', function() {
67
64
 
68
65
  });
69
66
 
70
- before(function (done) {
71
- Person.collection.dropIndexes(function (err, result) {
72
- should.not.exist(err);
73
- should.exist(result);
74
- result.should.equal(true);
75
- return done();
76
- });
77
- });
78
-
79
67
  before(function(done) {
80
68
 
81
69
  interaction = new Interaction({
package/test/Event.js CHANGED
@@ -3,9 +3,8 @@
3
3
  var
4
4
 
5
5
  should = require("should"),
6
- config = require('./config')['test'],
7
6
  mongoose = require('mongoose'),
8
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
7
+ databaseHelpers = require('./databaseHelpers'),
9
8
  Event = mongoose.model('Event'),
10
9
  EventAttendee = mongoose.model('EventAttendee');
11
10
 
@@ -18,20 +17,11 @@ let customerTwoEvent;
18
17
  describe('Event', function() {
19
18
 
20
19
  before(function(done) {
21
-
22
- if (config.db.uri.indexOf('test') === -1) {
23
- console.log('Not test db, shutting down');
24
- process.exit();
25
- }
26
- else {
27
- if (mongoose.connection.db) { return done(); }
28
- else { mongoose.connect(config.db.uri, done); }
29
- }
30
-
20
+ databaseHelpers.connect(mongoose, done);
31
21
  });
32
22
 
33
23
  before(function(done) {
34
- clearDB(done);
24
+ databaseHelpers.clearDB(mongoose, done);
35
25
  });
36
26
 
37
27
  it('adds an event for a customer', function(done) {
@@ -3,9 +3,8 @@
3
3
  var
4
4
 
5
5
  should = require("should"),
6
- config = require('./config')['test'],
7
6
  mongoose = require('mongoose'),
8
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
7
+ databaseHelpers = require('./databaseHelpers'),
9
8
  Event = mongoose.model('Event'),
10
9
  EventAttendee = mongoose.model('EventAttendee');
11
10
 
@@ -18,20 +17,11 @@ let attendeeOne;
18
17
  describe('EventAttendee', function() {
19
18
 
20
19
  before(function(done) {
21
-
22
- if (config.db.uri.indexOf('test') === -1) {
23
- console.log('Not test db, shutting down');
24
- process.exit();
25
- }
26
- else {
27
- if (mongoose.connection.db) { return done(); }
28
- else { mongoose.connect(config.db.uri, done); }
29
- }
30
-
20
+ databaseHelpers.connect(mongoose, done);
31
21
  });
32
22
 
33
23
  before(function(done) {
34
- clearDB(done);
24
+ databaseHelpers.clearDB(mongoose, done);
35
25
  });
36
26
 
37
27
  before(function(done) {
@@ -3,10 +3,9 @@
3
3
  var
4
4
 
5
5
  should = require("should"),
6
- _ = require('underscore'),
7
6
  config = require('./config')['test'],
8
7
  mongoose = require('mongoose'),
9
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
8
+ databaseHelpers = require('./databaseHelpers'),
10
9
  Financials = mongoose.model('Financials');
11
10
 
12
11
  var customerA = new mongoose.Types.ObjectId();
@@ -17,12 +16,11 @@ var orgB = new mongoose.Types.ObjectId();
17
16
  describe('Financials', function() {
18
17
 
19
18
  before(function(done) {
20
- if (mongoose.connection.db) return done();
21
- mongoose.connect(config.db.uri, done);
19
+ databaseHelpers.connect(mongoose, done);
22
20
  });
23
21
 
24
22
  before(function(done) {
25
- clearDB(done);
23
+ databaseHelpers.clearDB(mongoose, done);
26
24
  });
27
25
 
28
26
  it('creates a financial document', function(done) {
package/test/Flag.js CHANGED
@@ -3,10 +3,8 @@
3
3
  var
4
4
 
5
5
  should = require("should"),
6
- config = require('./config')['test'],
7
- _ = require('underscore'),
8
6
  mongoose = require('mongoose'),
9
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
7
+ databaseHelpers = require('./databaseHelpers'),
10
8
  LimitedPartner = mongoose.model('LimitedPartner'),
11
9
  Flag = mongoose.model('Flag'),
12
10
  Organization = mongoose.model('Organization'),
@@ -19,12 +17,11 @@ var
19
17
  describe('Flag', function() {
20
18
 
21
19
  before(function(done) {
22
- if (mongoose.connection.db) return done();
23
- mongoose.connect(config.db.uri, done);
20
+ databaseHelpers.connect(mongoose, done);
24
21
  });
25
22
 
26
23
  before(function(done) {
27
- clearDB(done);
24
+ databaseHelpers.clearDB(mongoose, done);
28
25
  });
29
26
 
30
27
  before(function(done) {
package/test/Fund.js CHANGED
@@ -3,20 +3,18 @@
3
3
  var
4
4
 
5
5
  should = require("should"),
6
- config = require('./config')['test'],
7
6
  mongoose = require('mongoose'),
8
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
7
+ databaseHelpers = require('./databaseHelpers'),
9
8
  Fund = mongoose.model('Fund');
10
9
 
11
10
  describe('Fund', function() {
12
11
 
13
- before(function (done) {
14
- if (mongoose.connection.db) return done();
15
- mongoose.connect(config.db.uri, done);
12
+ before(function(done) {
13
+ databaseHelpers.connect(mongoose, done);
16
14
  });
17
15
 
18
- before(function (done) {
19
- clearDB(done);
16
+ before(function(done) {
17
+ databaseHelpers.clearDB(mongoose, done);
20
18
  });
21
19
 
22
20
  var myHugeFund;
@@ -3,11 +3,9 @@
3
3
  var
4
4
 
5
5
  should = require("should"),
6
- _ = require('underscore'),
7
- config = require('./config')['test'],
8
6
  mongoose = require('mongoose'),
7
+ databaseHelpers = require('./databaseHelpers'),
9
8
  moment = require('moment'),
10
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
11
9
  Interaction = mongoose.model('Interaction');
12
10
 
13
11
  var totemCustomerId1 = new mongoose.Types.ObjectId();
@@ -18,12 +16,11 @@ var externalAttendee2 = new mongoose.Types.ObjectId();
18
16
  describe('Interaction', function() {
19
17
 
20
18
  before(function(done) {
21
- if (mongoose.connection.db) return done();
22
- mongoose.connect(config.db.uri, done);
19
+ databaseHelpers.connect(mongoose, done);
23
20
  });
24
21
 
25
22
  before(function(done) {
26
- clearDB(done);
23
+ databaseHelpers.clearDB(mongoose, done);
27
24
  });
28
25
 
29
26
  // calendarEventId: { type: Schema.ObjectId, ref: 'CalendarEvent', required: true }, // the event from the original pull
@@ -3,9 +3,8 @@
3
3
  var
4
4
 
5
5
  should = require("should"),
6
- config = require('./config')['test'],
7
6
  mongoose = require('mongoose'),
8
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
7
+ databaseHelpers = require('./databaseHelpers'),
9
8
  Investment = mongoose.model('Investment'),
10
9
  Round = mongoose.model('Round');
11
10
 
@@ -14,23 +13,13 @@ var customerid = new mongoose.Types.ObjectId();
14
13
  describe('Investments', function() {
15
14
 
16
15
  before(function(done) {
17
- if (mongoose.connection.db) return done();
18
- mongoose.connect(config.db.uri, done);
16
+ databaseHelpers.connect(mongoose, done);
19
17
  });
20
18
 
21
19
  before(function(done) {
22
- clearDB(done);
20
+ databaseHelpers.clearDB(mongoose, done);
23
21
  });
24
22
 
25
- // before(function (done) {
26
- // Investment.collection.dropIndexes(function (err, result) {
27
- // should.not.exist(err);
28
- // should.exist(result);
29
- // result.should.equal(true);
30
- // return done();
31
- // });
32
- // });
33
-
34
23
  it('creates an investment', function(done) {
35
24
 
36
25
  var inv = new Investment({
@@ -3,9 +3,8 @@
3
3
  var
4
4
 
5
5
  should = require("should"),
6
- config = require('./config')['test'],
7
6
  mongoose = require('mongoose'),
8
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
7
+ databaseHelpers = require('./databaseHelpers'),
9
8
  LimitedPartner = mongoose.model('LimitedPartner'),
10
9
  lp = new LimitedPartner(),
11
10
  Person = mongoose.model('Person'),
@@ -17,16 +16,14 @@ var
17
16
  Organization = mongoose.model('Organization'),
18
17
  organization = new Organization();
19
18
 
20
-
21
19
  describe('Limited Partner', function() {
22
20
 
23
21
  before(function(done) {
24
- if (mongoose.connection.db) return done();
25
- mongoose.connect(config.db.uri, { useNewUrlParser: true, useUnifiedTopology: true }, done);
22
+ databaseHelpers.connect(mongoose, done);
26
23
  });
27
24
 
28
25
  before(function(done) {
29
- clearDB(done);
26
+ databaseHelpers.clearDB(mongoose, done);
30
27
  });
31
28
 
32
29
  before(function(done) {
package/test/List.js CHANGED
@@ -3,10 +3,8 @@
3
3
  var
4
4
 
5
5
  should = require("should"),
6
- config = require('./config')['test'],
7
- _ = require('underscore'),
8
6
  mongoose = require('mongoose'),
9
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
7
+ databaseHelpers = require('./databaseHelpers'),
10
8
  LimitedPartner = mongoose.model('LimitedPartner'),
11
9
  List = mongoose.model('List'),
12
10
  Organization = mongoose.model('Organization'),
@@ -20,21 +18,11 @@ var
20
18
  describe('List', function() {
21
19
 
22
20
  before(function(done) {
23
- if (mongoose.connection.db) return done();
24
- mongoose.connect(config.db.uri, done);
21
+ databaseHelpers.connect(mongoose, done);
25
22
  });
26
23
 
27
24
  before(function(done) {
28
- clearDB(done);
29
- });
30
-
31
- before(function (done) {
32
- Person.collection.dropIndexes(function (err, result) {
33
- should.not.exist(err);
34
- should.exist(result);
35
- result.should.equal(true);
36
- return done();
37
- });
25
+ databaseHelpers.clearDB(mongoose, done);
38
26
  });
39
27
 
40
28
  before(function(done) {
package/test/Message.js CHANGED
@@ -3,11 +3,9 @@
3
3
  var
4
4
 
5
5
  should = require("should"),
6
- config = require('./config')['test'],
7
- _ = require('underscore'),
8
6
  moment = require('moment'),
9
7
  mongoose = require('mongoose'),
10
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
8
+ databaseHelpers = require('./databaseHelpers'),
11
9
  Document = mongoose.model('Document'),
12
10
  Message = mongoose.model('Message'),
13
11
  Note = mongoose.model('Note');
@@ -24,12 +22,11 @@ var messageOne;
24
22
  describe('Message', function() {
25
23
 
26
24
  before(function(done) {
27
- if (mongoose.connection.db) return done();
28
- mongoose.connect(config.db.uri, done);
25
+ databaseHelpers.connect(mongoose, done);
29
26
  });
30
27
 
31
28
  before(function(done) {
32
- clearDB(done);
29
+ databaseHelpers.clearDB(mongoose, done);
33
30
  });
34
31
 
35
32
  it('creates a message', function(done) {
package/test/News.js CHANGED
@@ -3,9 +3,8 @@
3
3
  let
4
4
 
5
5
  should = require("should"),
6
- config = require('./config')['test'],
7
6
  mongoose = require('mongoose'),
8
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
7
+ databaseHelpers = require('./databaseHelpers'),
9
8
  News = mongoose.model('News'),
10
9
  news = new News();
11
10
 
@@ -14,12 +13,11 @@ let companyId = new mongoose.Types.ObjectId();
14
13
  describe('News', function() {
15
14
 
16
15
  before(function(done) {
17
- if (mongoose.connection.db) return done();
18
- mongoose.connect(config.db.uri, done);
16
+ databaseHelpers.connect(mongoose, done);
19
17
  });
20
18
 
21
19
  before(function(done) {
22
- clearDB(done);
20
+ databaseHelpers.clearDB(mongoose, done);
23
21
  });
24
22
 
25
23
  it('adds a news item', function(done) {
package/test/Note.js CHANGED
@@ -3,25 +3,23 @@
3
3
  let
4
4
 
5
5
  should = require("should"),
6
- config = require('./config')['test'],
7
6
  mongoose = require('mongoose'),
8
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
7
+ databaseHelpers = require('./databaseHelpers'),
9
8
  LimitedPartner = mongoose.model('LimitedPartner'),
10
9
  Note = mongoose.model('Note'),
11
10
  Organization = mongoose.model('Organization'),
12
11
  Person = mongoose.model('Person');
13
12
 
14
- let lp, org, person, person2, person3, person4, noteCreator, noteId;
13
+ let lp, org, person, person2, person3, person4, noteCreator, noteId;
15
14
 
16
15
  describe('Note', function() {
17
16
 
18
17
  before(function(done) {
19
- if (mongoose.connection.db) return done();
20
- mongoose.connect(config.db.uri, done);
18
+ databaseHelpers.connect(mongoose, done);
21
19
  });
22
20
 
23
21
  before(function(done) {
24
- clearDB(done);
22
+ databaseHelpers.clearDB(mongoose, done);
25
23
  });
26
24
 
27
25
  before(function(done) {
@@ -4,14 +4,12 @@ var
4
4
 
5
5
  should = require("should"),
6
6
  _ = require('underscore'),
7
- config = require('./config')['test'],
8
7
  mongoose = require('mongoose'),
9
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
8
+ databaseHelpers = require('./databaseHelpers'),
10
9
  Organization = mongoose.model('Organization'),
11
10
  Person = mongoose.model('Person'),
12
11
  LimitedPartner = mongoose.model('LimitedPartner'),
13
12
  Fund = mongoose.model('Fund'),
14
- Deal = mongoose.model('Deal'),
15
13
  Account = mongoose.model('Account');
16
14
 
17
15
  var person, person1, person2;
@@ -26,40 +24,12 @@ describe('Organization', function() {
26
24
  var org1, org2, org3, org4, org5;
27
25
  var mergeId = new mongoose.Types.ObjectId();
28
26
 
29
- before(function (done) {
30
- if (mongoose.connection.db) return done();
31
- mongoose.connect(config.db.uri, done);
32
- });
33
-
34
- before(function (done) {
35
- clearDB(done);
36
- });
37
-
38
- before(function (done) {
39
- Organization.collection.dropIndexes(function (err, result) {
40
- should.not.exist(err);
41
- should.exist(result);
42
- result.should.equal(true);
43
- return done();
44
- });
45
- });
46
-
47
- before(function (done) {
48
- Person.collection.dropIndexes(function (err, result) {
49
- should.not.exist(err);
50
- should.exist(result);
51
- result.should.equal(true);
52
- return done();
53
- });
27
+ before(function(done) {
28
+ databaseHelpers.connect(mongoose, done);
54
29
  });
55
30
 
56
- before(function (done) {
57
- Fund.collection.dropIndexes(function (err, result) {
58
- should.not.exist(err);
59
- should.exist(result);
60
- result.should.equal(true);
61
- return done();
62
- });
31
+ before(function(done) {
32
+ databaseHelpers.clearDB(mongoose, done);
63
33
  });
64
34
 
65
35
  before(function (done) {
@@ -546,9 +516,9 @@ describe('Organization', function() {
546
516
  });
547
517
 
548
518
  it('finds a fuzzy match by domain', function (done) {
549
-
519
+ //domain: 'thesong'
550
520
  Organization.search({
551
- domain: 'thesong'
521
+ name: 'Fudge 3'
552
522
  }, {admin: true}, function (err, results) {
553
523
  should.not.exist(err);
554
524
  should.exist(results);
package/test/Person.js CHANGED
@@ -4,9 +4,8 @@ var
4
4
 
5
5
  should = require("should"),
6
6
  _ = require('underscore'),
7
- config = require('./config')['test'],
8
7
  mongoose = require('mongoose'),
9
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
8
+ databaseHelpers = require('./databaseHelpers'),
10
9
  LimitedPartner = mongoose.model('LimitedPartner'),
11
10
  Person = mongoose.model('Person'),
12
11
  Organization = mongoose.model('Organization'),
@@ -39,44 +38,11 @@ org4.slug = 'testy-org-4';
39
38
  describe('Person', function() {
40
39
 
41
40
  before(function(done) {
42
- if (mongoose.connection.db) return done();
43
- mongoose.connect(config.db.uri, done);
41
+ databaseHelpers.connect(mongoose, done);
44
42
  });
45
43
 
46
44
  before(function(done) {
47
- clearDB(done);
48
- });
49
-
50
- before(function (done) {
51
-
52
- Person.collection.dropIndexes(function (err, result) {
53
-
54
- should.not.exist(err);
55
- should.exist(result);
56
- result.should.equal(true);
57
-
58
- return done();
59
-
60
- });
61
-
62
- });
63
-
64
- before(function (done) {
65
- LimitedPartner.collection.dropIndexes(function (err, result) {
66
- should.not.exist(err);
67
- should.exist(result);
68
- result.should.equal(true);
69
- return done();
70
- });
71
- });
72
-
73
- before(function (done) {
74
- Organization.collection.dropIndexes(function (err, result) {
75
- should.not.exist(err);
76
- should.exist(result);
77
- result.should.equal(true);
78
- return done();
79
- });
45
+ databaseHelpers.clearDB(mongoose, done);
80
46
  });
81
47
 
82
48
  before(function(done) {
@@ -263,6 +229,17 @@ describe('Person', function() {
263
229
 
264
230
  describe('search', function() {
265
231
 
232
+ it.skip('uses atlas search', function(done) {
233
+
234
+ Person.atlasSearch('jason@totemvc.com', { limit: 5 }, function(err, result) {
235
+ should.not.exist(err);
236
+ should.exist(result);
237
+ console.log(result);
238
+ done();
239
+ })
240
+
241
+ })
242
+
266
243
  it('searches by phone and email', function (done) {
267
244
 
268
245
  Person.search({
package/test/Round.js CHANGED
@@ -4,13 +4,10 @@ var
4
4
 
5
5
  should = require("should"),
6
6
  _ = require('underscore'),
7
- config = require('./config')['test'],
8
7
  mongoose = require('mongoose'),
9
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
10
- Fund = mongoose.model('Fund'),
8
+ databaseHelpers = require('./databaseHelpers'),
11
9
  Investment = mongoose.model('Investment'),
12
10
  Organization = mongoose.model('Organization'),
13
- Person = mongoose.model('Person'),
14
11
  Round = mongoose.model('Round');
15
12
 
16
13
  var orgid = new mongoose.Types.ObjectId();
@@ -18,13 +15,14 @@ var personid = new mongoose.Types.ObjectId();
18
15
  var fundid = new mongoose.Types.ObjectId();
19
16
  var organization, organization2, fund, person, investment, investment2;
20
17
 
21
- describe('Rounds', function() {
18
+ describe.skip('Rounds', function() {
22
19
 
23
- //config.db.uri = 'mongodb://jason:T576G150HPXLA5q4BJ2o2zj747B5030x@production-shard-00-00-gv0f3.mongodb.net:27017,production-shard-00-01-gv0f3.mongodb.net:27017,production-shard-00-02-gv0f3.mongodb.net:27017/production?replicaSet=Production-shard-0&ssl=true&authSource=admin'
20
+ before(function(done) {
21
+ databaseHelpers.connect(mongoose, done);
22
+ });
24
23
 
25
24
  before(function(done) {
26
- if (mongoose.connection.db) return done();
27
- mongoose.connect(config.db.uri, done);
25
+ databaseHelpers.clearDB(mongoose, done);
28
26
  });
29
27
 
30
28
  it('test', function(done) {
@@ -44,19 +42,6 @@ describe('Rounds', function() {
44
42
 
45
43
  });
46
44
 
47
- // before(function(done) {
48
- // clearDB(done);
49
- // });
50
-
51
- // before(function (done) {
52
- // Round.collection.dropIndexes(function (err, result) {
53
- // should.not.exist(err);
54
- // should.exist(result);
55
- // result.should.equal(true);
56
- // return done();
57
- // });
58
- // });
59
-
60
45
  // before(function(done) {
61
46
  //
62
47
  // fund = new Fund({
package/test/Snapshot.js CHANGED
@@ -3,9 +3,8 @@
3
3
  var
4
4
 
5
5
  should = require("should"),
6
- config = require('./config')['test'],
7
6
  mongoose = require('mongoose'),
8
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
7
+ databaseHelpers = require('./databaseHelpers'),
9
8
  Organization = mongoose.model('Organization'),
10
9
  Person = mongoose.model('Person'),
11
10
  Snapshot = mongoose.model('Snapshot');
@@ -15,12 +14,11 @@ var org, person;
15
14
  describe('Snapshot', function() {
16
15
 
17
16
  before(function(done) {
18
- if (mongoose.connection.db) return done();
19
- mongoose.connect(config.db.uri, done);
17
+ databaseHelpers.connect(mongoose, done);
20
18
  });
21
19
 
22
20
  before(function(done) {
23
- clearDB(done);
21
+ databaseHelpers.clearDB(mongoose, done);
24
22
  });
25
23
 
26
24
  before(function(done) {
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ const async = require('async');
4
+
5
+ module.exports = {
6
+
7
+ connect: function (mongoose, cb) {
8
+
9
+ if (mongoose.connection.db) return cb();
10
+
11
+ const config = require('./config')['test'];
12
+
13
+ console.log('Connecting to', config.db.uri);
14
+
15
+ if (config.db.uri.indexOf('test') === -1) {
16
+ console.error('Attempt to connect to non-test database');
17
+ process.exit();
18
+ }
19
+
20
+ mongoose.connect(config.db.uri, cb);
21
+
22
+ },
23
+
24
+ clearDB: function (mongoose, cb) {
25
+
26
+ const databaseName = mongoose.connection.db.databaseName;
27
+
28
+ if (databaseName !== 'test') {
29
+ console.error('Attempt to clear non-test database');
30
+ process.exit();
31
+ }
32
+
33
+ mongoose.connection.db.collections(function(err, collections) {
34
+
35
+ if (err) {
36
+ console.log('Get collections error');
37
+ return cb(err);
38
+ }
39
+
40
+ const collectionNames = collections.map((collection) => collection.collectionName)
41
+
42
+ async.each(collectionNames, function(collectionName, callback) {
43
+ mongoose.connection.db.dropCollection(collectionName, function(err) {
44
+ if (err) {
45
+ console.log('Drop Collection error');
46
+ console.error(err);
47
+ }
48
+ return callback();
49
+ });
50
+ }, cb);
51
+
52
+ })
53
+
54
+ }
55
+
56
+ }
package/test/Activity.js DELETED
@@ -1,167 +0,0 @@
1
- "use strict";
2
-
3
- var
4
-
5
- should = require("should"),
6
- config = require('./config')['test'],
7
- mongoose = require('mongoose'),
8
- clearDB = require('mocha-mongoose')(config.db.uri, {noClear: true}),
9
- Activity = mongoose.model('Activity'),
10
- username = 'STING',
11
- remoteAddress = '108.29.95.108',
12
- nock = require('nock');
13
-
14
- describe.skip('Activity', function() {
15
-
16
- before(function(done) {
17
- if (mongoose.connection.db) return done();
18
- mongoose.connect(config.db.uri, done);
19
- });
20
-
21
- before(function(done) {
22
- clearDB(done);
23
- });
24
-
25
- it('adds a login success for a new user', function(done) {
26
-
27
- var scope = nock('https://freegeoip.net/json')
28
- .get('/' + remoteAddress)
29
- .reply(200, {
30
- ip: '108.29.95.108',
31
- country_code: 'US',
32
- country_name: 'United States',
33
- region_code: 'NY',
34
- region_name: 'New York',
35
- city: 'New York',
36
- zip_code: '10036',
37
- time_zone: 'America/New_York',
38
- latitude: 40.7605,
39
- longitude: -73.9933,
40
- metro_code: 501
41
- });
42
-
43
- Activity.add(username, 'LOGIN SUCCESS', remoteAddress, null, null, function(err, item) {
44
- should.not.exist(err);
45
- should.exist(item);
46
- item.type.should.equal('LOGIN SUCCESS');
47
- done();
48
- });
49
-
50
- });
51
-
52
- it('adds a document download', function(done) {
53
-
54
- var scope = nock('https://freegeoip.net/json')
55
- .get('/' + remoteAddress)
56
- .reply(200, {
57
- ip: '108.29.95.108',
58
- country_code: 'US',
59
- country_name: 'United States',
60
- region_code: 'NY',
61
- region_name: 'New York',
62
- city: 'New York',
63
- zip_code: '10036',
64
- time_zone: 'America/New_York',
65
- latitude: 40.7605,
66
- longitude: -73.9933,
67
- metro_code: 501
68
- });
69
-
70
- Activity.add(username, 'DOCUMENT DOWNLOAD', remoteAddress, '/messages/123456789', 'report.pdf', function(err, item) {
71
- should.not.exist(err);
72
- should.exist(item);
73
- item.type.should.equal('DOCUMENT DOWNLOAD');
74
- done();
75
- });
76
-
77
- });
78
-
79
- it('finds all activity for a user', function(done) {
80
-
81
- var scope = nock('https://freegeoip.net/json')
82
- .get('/' + remoteAddress)
83
- .reply(200, {
84
- ip: '108.29.95.108',
85
- country_code: 'US',
86
- country_name: 'United States',
87
- region_code: 'NY',
88
- region_name: 'New York',
89
- city: 'New York',
90
- zip_code: '10036',
91
- time_zone: 'America/New_York',
92
- latitude: 40.7605,
93
- longitude: -73.9933,
94
- metro_code: 501
95
- });
96
-
97
- Activity.list(username, 2, function(err, activity) {
98
- should.not.exist(err);
99
- should.exist(activity);
100
- activity.items.length.should.equal(2);
101
- done();
102
- });
103
-
104
- });
105
-
106
- it('adds activity without a username', function(done) {
107
-
108
- var scope = nock('https://freegeoip.net/json')
109
- .get('/' + remoteAddress)
110
- .reply(200, {
111
- ip: '108.29.95.108',
112
- country_code: 'US',
113
- country_name: 'United States',
114
- region_code: 'NY',
115
- region_name: 'New York',
116
- city: 'New York',
117
- zip_code: '10036',
118
- time_zone: 'America/New_York',
119
- latitude: 40.7605,
120
- longitude: -73.9933,
121
- metro_code: 501
122
- });
123
-
124
- try {
125
- Activity.add(null, 'LOGIN SUCCESS', remoteAddress, null, null, function(err, item) {
126
- should.not.exist(item);
127
- done();
128
- });
129
- }
130
- catch (err) {
131
- err.message.should.equal('username is required');
132
- done();
133
- }
134
-
135
- });
136
-
137
- it('adds activity with an invalid remoteAddress', function(done) {
138
-
139
- var scope = nock('https://freegeoip.net/json')
140
- .get('/' + remoteAddress)
141
- .reply(200, {
142
- ip: '108.29.95.108',
143
- country_code: 'US',
144
- country_name: 'United States',
145
- region_code: 'NY',
146
- region_name: 'New York',
147
- city: 'New York',
148
- zip_code: '10036',
149
- time_zone: 'America/New_York',
150
- latitude: 40.7605,
151
- longitude: -73.9933,
152
- metro_code: 501
153
- });
154
-
155
- Activity.add(username, 'LOGIN SUCCESS', 'UNKNOWN', null, null, function(err, item) {
156
- should.not.exist(err);
157
- should.exist(item);
158
- item.type.should.equal('LOGIN SUCCESS');
159
- var x = item.geolocation;
160
- x.should.be.an.Object;
161
- //item.geolocation.should.be.an.Object.and.be.empty;
162
- done();
163
- });
164
-
165
- });
166
-
167
- });