Skip to content

Commit 21e57e9

Browse files
author
Johnny Hausman
committed
+add: initial rework of unit tests and adding unit test for Multilingual.label.create()
1 parent 6dde266 commit 21e57e9

18 files changed

Lines changed: 678 additions & 305 deletions

Makefile

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
REPORTER = dot
22

33
test:
4-
@NODE_ENV=test ./node_modules/.bin/mocha \
4+
@NODE_ENV=test PORT=9999 ./node_modules/.bin/mocha \
55
--reporter $(REPORTER) \
6-
test/*.js
6+
test/bootstrap.test.js \
7+
test/**/*.js
78

89
@NODE_ENV=test mocha-phantomjs \
910
-R $(REPORTER) \

api/models/SiteUser.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
var crypto = require('crypto');
1010
var AD = require('ad-utils');
11-
11+
var _ = require('lodash');
1212

1313
module.exports = {
1414

@@ -297,7 +297,7 @@ module.exports = {
297297

298298
afterCreate: function(newlyInsertedRecord, next) {
299299

300-
var safeData = newlyInsertedRecord;
300+
var safeData = _.clone(newlyInsertedRecord);
301301
delete safeData.password;
302302
delete safeData.salt;
303303
ADCore.queue.publish('siteuser.created', { user: safeData });
@@ -333,7 +333,7 @@ module.exports = {
333333

334334
afterUpdate: function(updatedRecord, next) {
335335

336-
var safeData = updatedRecord;
336+
var safeData = _.clone(updatedRecord);
337337
delete safeData.password;
338338
delete safeData.salt;
339339
ADCore.queue.publish('siteuser.updated', { user: safeData });
@@ -363,9 +363,13 @@ module.exports = {
363363

364364
afterDestroy: function(destroyedRecords, next) {
365365

366-
var safeData = destroyedRecords;
367-
// delete safeData.password;
368-
// delete safeData.salt;
366+
var safeData = [];
367+
destroyedRecords.forEach(function(rec){
368+
var r = _.clone(rec);
369+
delete r.password;
370+
delete r.salt;
371+
safeData.push(r);
372+
});
369373
ADCore.queue.publish('siteuser.destroyed', { user: safeData });
370374
next();
371375
}

api/services/Multilingual.js

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,85 @@ module.exports = {
2424
},
2525

2626

27+
label: {
28+
29+
/**
30+
* Multilingual.label.create()
31+
*
32+
* creates a new label definition in the multilingual label table.
33+
*
34+
* This routine will only create a new one if there is not already
35+
* an existing label_key + label_context + language_code entry
36+
* matching the provided definition.
37+
*
38+
* if there is already a match, then we resolve without returning
39+
* a new label definition.
40+
*
41+
* if a new label was created, the new definition will be returned.
42+
*
43+
* @param {obj} labelDef The label info to create
44+
* @param {function} cb (optional) node style callback
45+
* cb(err, newLabel);
46+
* @return {Deferred}
47+
*/
48+
create: function(labelDef, cb) {
49+
var dfd = AD.sal.Deferred();
50+
51+
if((_.isFunction(labelDef)) && (_.isUndefined(cb))) {
52+
cb = labelDef;
53+
labelDef = undefined;
54+
}
55+
56+
if (_.isUndefined(labelDef)) {
57+
var error = new Error('labelDef parameter is required');
58+
error.code = "E_MISSINGPARAM";
59+
if (cb) cb(error);
60+
dfd.reject(error);
61+
return dfd;
62+
}
63+
64+
65+
function onError(err) {
66+
if (cb) cb(err);
67+
dfd.reject(err);
68+
}
69+
70+
// check to see if we already have this label
71+
SiteMultilingualLabel.find({
72+
label_key:labelDef.label_key,
73+
label_context:labelDef.label_context,
74+
language_code:labelDef.language_code
75+
})
76+
.exec(function(err, label){
77+
if (err) {
78+
onError(err);
79+
} else {
80+
81+
if ((label) && (label.length > 0)) {
82+
if (cb) cb();
83+
dfd.resolve();
84+
} else {
85+
86+
// create the label:
87+
SiteMultilingualLabel.create(labelDef)
88+
.exec(function(err, label){
89+
90+
if (err) {
91+
onError(err);
92+
} else {
93+
if (cb) cb(null, label);
94+
dfd.resolve(label);
95+
}
96+
})
97+
}
98+
}
99+
})
100+
101+
return dfd;
102+
}
103+
104+
},
105+
27106
languages:{
28107

29108

api/services/adcore/queue.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,10 +211,11 @@ var newSandbox = function( options ) {
211211

212212
// remove subKey from our list
213213
delete obj.allSubscriptions[subKey];
214-
214+
// console.log('... ADCore.queue.unsubscribe() : subKey ['+subKey+'] removed!');
215+
215216
} else {
216217
// @TODO How do we handle this error?
217-
218+
// console.log('... ADCore.queue.unsubscribe() : subKey ['+subKey+'] not found!');
218219
}
219220
}
220221

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,10 @@
3838
"steal-tools": "~0.13.3"
3939
},
4040
"devDependencies": {
41-
"mocha": "^1.18.2",
42-
"chai": "^1.9.1",
41+
"barrels": "^1.5.0",
42+
"chai": "^3.2.0",
43+
"mocha": "^2.2.5",
44+
"supertest": "^1.1.0",
4345
"phantomjs": "1.9.7-15",
4446
"mocha-phantomjs": "^3.4.0"
4547
}

0 commit comments

Comments
 (0)