-
Notifications
You must be signed in to change notification settings - Fork 240
/
model_create_user.js
87 lines (68 loc) · 2.13 KB
/
model_create_user.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
// Load the basic Geddy toolkit
require('../lib/geddy');
geddy.config = {
i18n: {
defaultLocale: 'en-us'
}
};
var model = require('../lib/model')
, assert = require('assert')
, tests;
geddy.model = model;
var User = function () {
this.property('login', 'string', {required: true});
this.property('password', 'string', {required: true});
this.property('lastName', 'string');
this.property('firstName', 'string');
this.validatesPresent('login');
this.validatesFormat('login', /[a-z]+/, {message: 'Subdivisions!'});
this.validatesLength('login', {min: 3});
this.validatesConfirmed('password', 'confirmPassword');
};
User.prototype.someMethod = function () {
// Do some stuff on a User instance
};
User = geddy.model.register('User', User);
var tests = new (function () {
var _params = {
login: 'zzz',
password: 'asdf',
confirmPassword: 'asdf',
firstName: 'Neil'
};
this.testValid = function () {
var user = User.create(_params);
assert.ok(user.isValid());
};
this.testShortLogin = function () {
_params.login = 'zz'; // Too short, invalid
var user = User.create(_params);
assert.ok(typeof user.errors.login != 'undefined');
};
this.testInvalidLoginWithCustomMessage = function () {
_params.login = '2112'; // Contains numbers, invalid
var user = User.create(_params);
// Error message should be customized
assert.ok(user.errors.login, 'Subdivisions!');
};
this.testNoLogin = function () {
delete _params.login; // Contains numbers, invalid
var user = User.create(_params);
// Error message should be customized
assert.ok(typeof user.errors.login != 'undefined');
_params.login = 'zzz'; // Restore to something valid
};
this.testNoConfirmPassword = function () {
_params.confirmPassword = 'fdsa';
var user = User.create(_params);
// Error message should be customized
assert.ok(typeof user.errors.password != 'undefined');
_params.confirmPassword = 'asdf'; // Restore to something valid
};
})();
for (var p in tests) {
if (typeof tests[p] == 'function') {
console.log('Running ' + p);
tests[p]();
}
}