Cleanup test markdown
This commit is contained in:
parent
cba94a23fc
commit
253d42a8e8
318
test/README.md
318
test/README.md
|
@ -2,10 +2,6 @@
|
|||
- [app](#app)
|
||||
- [app.model(Model)](#app-appmodelmodel)
|
||||
- [app.models()](#app-appmodels)
|
||||
- [loopback](#loopback)
|
||||
- [loopback.createDataSource(options)](#loopback-loopbackcreatedatasourceoptions)
|
||||
- [loopback.remoteMethod(Model, fn, [options]);](#loopback-loopbackremotemethodmodel-fn-options)
|
||||
- [loopback.memory([name])](#loopback-loopbackmemoryname)
|
||||
- [DataSource](#datasource)
|
||||
- [dataSource.createModel(name, properties, settings)](#datasource-datasourcecreatemodelname-properties-settings)
|
||||
- [dataSource.operations()](#datasource-datasourceoperations)
|
||||
|
@ -13,6 +9,11 @@
|
|||
- [geoPoint.distanceTo(geoPoint, options)](#geopoint-geopointdistancetogeopoint-options)
|
||||
- [GeoPoint.distanceBetween(a, b, options)](#geopoint-geopointdistancebetweena-b-options)
|
||||
- [GeoPoint()](#geopoint-geopoint)
|
||||
- [loopback](#loopback)
|
||||
- [loopback.createDataSource(options)](#loopback-loopbackcreatedatasourceoptions)
|
||||
- [loopback.remoteMethod(Model, fn, [options]);](#loopback-loopbackremotemethodmodel-fn-options)
|
||||
- [loopback.memory([name])](#loopback-loopbackmemoryname)
|
||||
- [Memory Connector](#memory-connector)
|
||||
- [Model](#model)
|
||||
- [Model.validatesPresenceOf(properties...)](#model-modelvalidatespresenceofproperties)
|
||||
- [Model.validatesLengthOf(property, options)](#model-modelvalidateslengthofproperty-options)
|
||||
|
@ -41,6 +42,7 @@
|
|||
- [Model.properties](#model-modelproperties)
|
||||
- [Model.extend()](#model-modelextend)
|
||||
- [User](#user)
|
||||
- [User.create](#user-usercreate)
|
||||
- [User.login](#user-userlogin)
|
||||
- [User.logout](#user-userlogout)
|
||||
- [user.hasPassword(plain, fn)](#user-userhaspasswordplain-fn)
|
||||
|
@ -74,61 +76,6 @@ assert.equal(models.length, 1);
|
|||
assert.equal(models[0].modelName, 'color');
|
||||
```
|
||||
|
||||
<a name="loopback"></a>
|
||||
# loopback
|
||||
<a name="loopback-loopbackcreatedatasourceoptions"></a>
|
||||
## loopback.createDataSource(options)
|
||||
Create a data source with a connector..
|
||||
|
||||
```js
|
||||
var dataSource = loopback.createDataSource({
|
||||
connector: loopback.Memory
|
||||
});
|
||||
assert(dataSource.connector());
|
||||
```
|
||||
|
||||
<a name="loopback-loopbackremotemethodmodel-fn-options"></a>
|
||||
## loopback.remoteMethod(Model, fn, [options]);
|
||||
Setup a remote method..
|
||||
|
||||
```js
|
||||
var Product = loopback.createModel('product', {price: Number});
|
||||
|
||||
Product.stats = function(fn) {
|
||||
// ...
|
||||
}
|
||||
|
||||
loopback.remoteMethod(
|
||||
Product.stats,
|
||||
{
|
||||
returns: {arg: 'stats', type: 'array'},
|
||||
http: {path: '/info', verb: 'get'}
|
||||
}
|
||||
);
|
||||
|
||||
assert.equal(Product.stats.returns.arg, 'stats');
|
||||
assert.equal(Product.stats.returns.type, 'array');
|
||||
assert.equal(Product.stats.http.path, '/info');
|
||||
assert.equal(Product.stats.http.verb, 'get');
|
||||
assert.equal(Product.stats.shared, true);
|
||||
```
|
||||
|
||||
<a name="loopback-loopbackmemoryname"></a>
|
||||
## loopback.memory([name])
|
||||
Get an in-memory data source. Use one if it already exists..
|
||||
|
||||
```js
|
||||
var memory = loopback.memory();
|
||||
assertValidDataSource(memory);
|
||||
var m1 = loopback.memory();
|
||||
var m2 = loopback.memory('m2');
|
||||
var alsoM2 = loopback.memory('m2');
|
||||
|
||||
assert(m1 === memory);
|
||||
assert(m1 !== m2);
|
||||
assert(alsoM2 === m2);
|
||||
```
|
||||
|
||||
<a name="datasource"></a>
|
||||
# DataSource
|
||||
<a name="datasource-datasourcecreatemodelname-properties-settings"></a>
|
||||
|
@ -188,7 +135,6 @@ existsAndShared('save', true);
|
|||
existsAndShared('isNewRecord', false);
|
||||
existsAndShared('_adapter', false);
|
||||
existsAndShared('destroy', true);
|
||||
existsAndShared('updateAttribute', true);
|
||||
existsAndShared('updateAttributes', true);
|
||||
existsAndShared('reload', true);
|
||||
|
||||
|
@ -224,7 +170,7 @@ assert.equal(GeoPoint.distanceBetween(here, there, {type: 'feet'}), 2568169.0388
|
|||
|
||||
<a name="geopoint-geopoint"></a>
|
||||
## GeoPoint()
|
||||
Create from string..
|
||||
Create from string.
|
||||
|
||||
```js
|
||||
var point = new GeoPoint('1.234,5.678');
|
||||
|
@ -238,7 +184,7 @@ assert.equal(point3.lng, 1.333);
|
|||
assert.equal(point3.lat, 5.111);
|
||||
```
|
||||
|
||||
Serialize as string..
|
||||
Serialize as string.
|
||||
|
||||
```js
|
||||
var str = '1.234,5.678';
|
||||
|
@ -246,7 +192,7 @@ var point = new GeoPoint(str);
|
|||
assert.equal(point.toString(), str);
|
||||
```
|
||||
|
||||
Create from array..
|
||||
Create from array.
|
||||
|
||||
```js
|
||||
var point = new GeoPoint([5.555, 6.777]);
|
||||
|
@ -270,6 +216,99 @@ assert.equal(m.geo.lng, 1.222);
|
|||
assert.equal(m.geo.lat, 3.444);
|
||||
```
|
||||
|
||||
<a name="loopback"></a>
|
||||
# loopback
|
||||
<a name="loopback-loopbackcreatedatasourceoptions"></a>
|
||||
## loopback.createDataSource(options)
|
||||
Create a data source with a connector.
|
||||
|
||||
```js
|
||||
var dataSource = loopback.createDataSource({
|
||||
connector: loopback.Memory
|
||||
});
|
||||
assert(dataSource.connector());
|
||||
```
|
||||
|
||||
<a name="loopback-loopbackremotemethodmodel-fn-options"></a>
|
||||
## loopback.remoteMethod(Model, fn, [options]);
|
||||
Setup a remote method..
|
||||
|
||||
```js
|
||||
var Product = loopback.createModel('product', {price: Number});
|
||||
|
||||
Product.stats = function(fn) {
|
||||
// ...
|
||||
}
|
||||
|
||||
loopback.remoteMethod(
|
||||
Product.stats,
|
||||
{
|
||||
returns: {arg: 'stats', type: 'array'},
|
||||
http: {path: '/info', verb: 'get'}
|
||||
}
|
||||
);
|
||||
|
||||
assert.equal(Product.stats.returns.arg, 'stats');
|
||||
assert.equal(Product.stats.returns.type, 'array');
|
||||
assert.equal(Product.stats.http.path, '/info');
|
||||
assert.equal(Product.stats.http.verb, 'get');
|
||||
assert.equal(Product.stats.shared, true);
|
||||
```
|
||||
|
||||
<a name="loopback-loopbackmemoryname"></a>
|
||||
## loopback.memory([name])
|
||||
Get an in-memory data source. Use one if it already exists.
|
||||
|
||||
```js
|
||||
var memory = loopback.memory();
|
||||
assertValidDataSource(memory);
|
||||
var m1 = loopback.memory();
|
||||
var m2 = loopback.memory('m2');
|
||||
var alsoM2 = loopback.memory('m2');
|
||||
|
||||
assert(m1 === memory);
|
||||
assert(m1 !== m2);
|
||||
assert(alsoM2 === m2);
|
||||
```
|
||||
|
||||
<a name="memory-connector"></a>
|
||||
# Memory Connector
|
||||
Create a model using the memory connector.
|
||||
|
||||
```js
|
||||
// use the built in memory function
|
||||
// to create a memory data source
|
||||
var memory = loopback.memory();
|
||||
|
||||
// or create it using the standard
|
||||
// data source creation api
|
||||
var memory = loopback.createDataSource({
|
||||
connector: loopback.Memory
|
||||
});
|
||||
|
||||
// create a model using the
|
||||
// memory data source
|
||||
var properties = {
|
||||
name: String,
|
||||
price: Number
|
||||
};
|
||||
|
||||
var Product = memory.createModel('product', properties);
|
||||
|
||||
Product.create([
|
||||
{name: 'apple', price: 0.79},
|
||||
{name: 'pear', price: 1.29},
|
||||
{name: 'orange', price: 0.59},
|
||||
], count);
|
||||
|
||||
function count() {
|
||||
Product.count(function (err, count) {
|
||||
assert.equal(count, 3);
|
||||
done();
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
<a name="model"></a>
|
||||
# Model
|
||||
<a name="model-modelvalidatespresenceofproperties"></a>
|
||||
|
@ -368,7 +407,7 @@ assert(valid === false);
|
|||
assert(user.errors.age, 'model should have age error');
|
||||
```
|
||||
|
||||
Asynchronously validate the model..
|
||||
Asynchronously validate the model.
|
||||
|
||||
```js
|
||||
User.validatesNumericalityOf('age', {int: true});
|
||||
|
@ -555,7 +594,7 @@ request(app)
|
|||
|
||||
<a name="model-remote-methods-modelbeforeremotename-fn"></a>
|
||||
### Model.beforeRemote(name, fn)
|
||||
Run a function before a remote method is called by a client..
|
||||
Run a function before a remote method is called by a client.
|
||||
|
||||
```js
|
||||
var hookCalled = false;
|
||||
|
@ -580,7 +619,7 @@ request(app)
|
|||
|
||||
<a name="model-remote-methods-modelafterremotename-fn"></a>
|
||||
### Model.afterRemote(name, fn)
|
||||
Run a function after a remote method is called by a client..
|
||||
Run a function after a remote method is called by a client.
|
||||
|
||||
```js
|
||||
var beforeCalled = false;
|
||||
|
@ -706,7 +745,7 @@ Book.create({title: 'Into the Wild', author: 'Jon Krakauer'}, function(err, book
|
|||
|
||||
<a name="model-modelproperties"></a>
|
||||
## Model.properties
|
||||
Normalized properties passed in originally by loopback.createModel()..
|
||||
Normalized properties passed in originally by loopback.createModel().
|
||||
|
||||
```js
|
||||
var props = {
|
||||
|
@ -740,7 +779,7 @@ Object.keys(MyModel.properties).forEach(function (key) {
|
|||
|
||||
<a name="model-modelextend"></a>
|
||||
## Model.extend()
|
||||
Create a new model by extending an existing model..
|
||||
Create a new model by extending an existing model.
|
||||
|
||||
```js
|
||||
var User = loopback.Model.extend('test-user', {
|
||||
|
@ -776,9 +815,64 @@ assert.equal(user.b, 'bar');
|
|||
|
||||
<a name="user"></a>
|
||||
# User
|
||||
<a name="user-usercreate"></a>
|
||||
## User.create
|
||||
Create a new user.
|
||||
|
||||
```js
|
||||
User.create({email: 'f@b.com'}, function (err, user) {
|
||||
assert(!err);
|
||||
assert(user.id);
|
||||
assert(user.email);
|
||||
done();
|
||||
});
|
||||
```
|
||||
|
||||
Requires a valid email.
|
||||
|
||||
```js
|
||||
User.create({}, function (err) {
|
||||
assert(err);
|
||||
User.create({email: 'foo@'}, function (err) {
|
||||
assert(err);
|
||||
done();
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
Requires a unique email.
|
||||
|
||||
```js
|
||||
User.create({email: 'a@b.com'}, function () {
|
||||
User.create({email: 'a@b.com'}, function (err) {
|
||||
assert(err, 'should error because the email is not unique!');
|
||||
done();
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
Requires a password to login with basic auth.
|
||||
|
||||
```js
|
||||
User.create({email: 'b@c.com'}, function (err) {
|
||||
User.login({email: 'b@c.com'}, function (err, session) {
|
||||
assert(!session, 'should not create a session without a valid password');
|
||||
assert(err, 'should not login without a password');
|
||||
done();
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
Hashes the given password.
|
||||
|
||||
```js
|
||||
var u = new User({username: 'foo', password: 'bar'});
|
||||
assert(u.password !== 'bar');
|
||||
```
|
||||
|
||||
<a name="user-userlogin"></a>
|
||||
## User.login
|
||||
Login a user by providing credentials..
|
||||
Login a user by providing credentials.
|
||||
|
||||
```js
|
||||
request(app)
|
||||
|
@ -792,6 +886,7 @@ request(app)
|
|||
|
||||
assert(session.uid);
|
||||
assert(session.id);
|
||||
assert.equal((new Buffer(session.id, 'base64')).length, 64);
|
||||
|
||||
done();
|
||||
});
|
||||
|
@ -799,7 +894,21 @@ request(app)
|
|||
|
||||
<a name="user-userlogout"></a>
|
||||
## User.logout
|
||||
Logout a user by providing the current session id..
|
||||
Logout a user by providing the current session id (using node).
|
||||
|
||||
```js
|
||||
login(logout);
|
||||
|
||||
function login(fn) {
|
||||
User.login({email: 'foo@bar.com', password: 'bar'}, fn);
|
||||
}
|
||||
|
||||
function logout(err, session) {
|
||||
User.logout(session.id, verify(session.id, done));
|
||||
}
|
||||
```
|
||||
|
||||
Logout a user by providing the current session id (over rest).
|
||||
|
||||
```js
|
||||
login(logout);
|
||||
|
@ -826,33 +935,78 @@ function logout(err, sid) {
|
|||
.post('/users/logout')
|
||||
.expect(200)
|
||||
.send({sid: sid})
|
||||
.end(verify(sid));
|
||||
.end(verify(sid, done));
|
||||
}
|
||||
```
|
||||
|
||||
Logout a user using the instance method.
|
||||
|
||||
```js
|
||||
login(logout);
|
||||
|
||||
function login(fn) {
|
||||
User.login({email: 'foo@bar.com', password: 'bar'}, fn);
|
||||
}
|
||||
|
||||
function verify(sid) {
|
||||
return function (err) {
|
||||
if(err) return done(err);
|
||||
Session.findById(sid, function (err, session) {
|
||||
assert(!session, 'session should not exist after logging out');
|
||||
done(err);
|
||||
function logout(err, session) {
|
||||
User.findOne({email: 'foo@bar.com'}, function (err, user) {
|
||||
user.logout(verify(session.id, done));
|
||||
});
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
<a name="user-userhaspasswordplain-fn"></a>
|
||||
## user.hasPassword(plain, fn)
|
||||
Determine if the password matches the stored password..
|
||||
Determine if the password matches the stored password.
|
||||
|
||||
```js
|
||||
var u = new User({username: 'foo', password: 'bar'});
|
||||
|
||||
u.hasPassword('bar', function (err, isMatch) {
|
||||
assert(isMatch, 'password doesnt match');
|
||||
done();
|
||||
});
|
||||
```
|
||||
|
||||
should match a password when saved.
|
||||
|
||||
```js
|
||||
var u = new User({username: 'a', password: 'b', email: 'z@z.net'});
|
||||
|
||||
u.save(function (err, user) {
|
||||
User.findById(user.id, function (err, uu) {
|
||||
uu.hasPassword('b', function (err, isMatch) {
|
||||
assert(isMatch);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
should match a password after it is changed.
|
||||
|
||||
```js
|
||||
User.create({email: 'foo@baz.net', username: 'bat', password: 'baz'}, function (err, user) {
|
||||
User.findById(user.id, function (err, foundUser) {
|
||||
assert(foundUser);
|
||||
foundUser.hasPassword('baz', function (err, isMatch) {
|
||||
assert(isMatch);
|
||||
foundUser.password = 'baz2';
|
||||
foundUser.save(function (err, updatedUser) {
|
||||
updatedUser.hasPassword('baz2', function (err, isMatch) {
|
||||
assert(isMatch);
|
||||
User.findById(user.id, function (err, uu) {
|
||||
uu.hasPassword('baz2', function (err, isMatch) {
|
||||
assert(isMatch);
|
||||
done();
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
```
|
||||
|
||||
<a name="user-verification"></a>
|
||||
## Verification
|
||||
<a name="user-verification-userverifyoptions-fn"></a>
|
||||
|
@ -888,7 +1042,7 @@ request(app)
|
|||
.post('/users')
|
||||
.expect('Content-Type', /json/)
|
||||
.expect(200)
|
||||
.send({data: {email: 'bar@bat.com', password: 'bar'}})
|
||||
.send({email: 'bar@bat.com', password: 'bar'})
|
||||
.end(function(err, res){
|
||||
if(err) return done(err);
|
||||
});
|
||||
|
@ -929,7 +1083,7 @@ request(app)
|
|||
.post('/users')
|
||||
.expect('Content-Type', /json/)
|
||||
.expect(302)
|
||||
.send({data: {email: 'bar@bat.com', password: 'bar'}})
|
||||
.send({email: 'bar@bat.com', password: 'bar'})
|
||||
.end(function(err, res){
|
||||
if(err) return done(err);
|
||||
});
|
||||
|
|
|
@ -18,7 +18,7 @@ describe('GeoPoint', function() {
|
|||
});
|
||||
|
||||
describe('GeoPoint()', function(){
|
||||
it('Create from string.', function() {
|
||||
it('Create from string', function() {
|
||||
var point = new GeoPoint('1.234,5.678');
|
||||
assert.equal(point.lng, 1.234);
|
||||
assert.equal(point.lat, 5.678);
|
||||
|
@ -29,12 +29,12 @@ describe('GeoPoint', function() {
|
|||
assert.equal(point3.lng, 1.333);
|
||||
assert.equal(point3.lat, 5.111);
|
||||
});
|
||||
it('Serialize as string.', function() {
|
||||
it('Serialize as string', function() {
|
||||
var str = '1.234,5.678';
|
||||
var point = new GeoPoint(str);
|
||||
assert.equal(point.toString(), str);
|
||||
});
|
||||
it('Create from array.', function() {
|
||||
it('Create from array', function() {
|
||||
var point = new GeoPoint([5.555, 6.777]);
|
||||
assert.equal(point.lng, 5.555);
|
||||
assert.equal(point.lat, 6.777);
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
describe('loopback', function() {
|
||||
describe('loopback.createDataSource(options)', function(){
|
||||
it('Create a data source with a connector.', function() {
|
||||
it('Create a data source with a connector', function() {
|
||||
var dataSource = loopback.createDataSource({
|
||||
connector: loopback.Memory
|
||||
});
|
||||
|
@ -33,7 +33,7 @@ describe('loopback', function() {
|
|||
});
|
||||
|
||||
describe('loopback.memory([name])', function(){
|
||||
it('Get an in-memory data source. Use one if it already exists.', function() {
|
||||
it('Get an in-memory data source. Use one if it already exists', function() {
|
||||
var memory = loopback.memory();
|
||||
assertValidDataSource(memory);
|
||||
var m1 = loopback.memory();
|
||||
|
|
|
@ -96,7 +96,7 @@ describe('Model', function() {
|
|||
assert(user.errors.age, 'model should have age error');
|
||||
});
|
||||
|
||||
it('Asynchronously validate the model.', function(done) {
|
||||
it('Asynchronously validate the model', function(done) {
|
||||
User.validatesNumericalityOf('age', {int: true});
|
||||
var user = new User({first: 'joe', age: 'flarg'})
|
||||
user.isValid(function (valid) {
|
||||
|
@ -285,7 +285,7 @@ describe('Model', function() {
|
|||
});
|
||||
|
||||
describe('Model.beforeRemote(name, fn)', function(){
|
||||
it('Run a function before a remote method is called by a client.', function(done) {
|
||||
it('Run a function before a remote method is called by a client', function(done) {
|
||||
var hookCalled = false;
|
||||
|
||||
User.beforeRemote('create', function(ctx, user, next) {
|
||||
|
@ -308,7 +308,7 @@ describe('Model', function() {
|
|||
});
|
||||
|
||||
describe('Model.afterRemote(name, fn)', function(){
|
||||
it('Run a function after a remote method is called by a client.', function(done) {
|
||||
it('Run a function after a remote method is called by a client', function(done) {
|
||||
var beforeCalled = false;
|
||||
var afterCalled = false;
|
||||
|
||||
|
@ -433,7 +433,7 @@ describe('Model', function() {
|
|||
});
|
||||
|
||||
describe('Model.properties', function(){
|
||||
it('Normalized properties passed in originally by loopback.createModel().', function() {
|
||||
it('Normalized properties passed in originally by loopback.createModel()', function() {
|
||||
var props = {
|
||||
s: String,
|
||||
n: {type: 'Number'},
|
||||
|
@ -465,7 +465,7 @@ describe('Model', function() {
|
|||
});
|
||||
|
||||
describe('Model.extend()', function(){
|
||||
it('Create a new model by extending an existing model.', function() {
|
||||
it('Create a new model by extending an existing model', function() {
|
||||
var User = loopback.Model.extend('test-user', {
|
||||
email: String
|
||||
});
|
||||
|
@ -545,7 +545,7 @@ describe('Model', function() {
|
|||
// });
|
||||
|
||||
// describe('Model.before(name, fn)', function(){
|
||||
// it('Run a function before a method is called.', function() {
|
||||
// it('Run a function before a method is called', function() {
|
||||
// // User.before('save', function(user, next) {
|
||||
// // console.log('about to save', user);
|
||||
// //
|
||||
|
@ -569,7 +569,7 @@ describe('Model', function() {
|
|||
// });
|
||||
//
|
||||
// describe('Model.after(name, fn)', function(){
|
||||
// it('Run a function after a method is called.', function() {
|
||||
// it('Run a function after a method is called', function() {
|
||||
//
|
||||
// throw new Error('not implemented');
|
||||
// });
|
||||
|
|
|
@ -32,7 +32,7 @@ describe('User', function(){
|
|||
});
|
||||
|
||||
describe('User.create', function(){
|
||||
it('Create a new user.', function(done) {
|
||||
it('Create a new user', function(done) {
|
||||
User.create({email: 'f@b.com'}, function (err, user) {
|
||||
assert(!err);
|
||||
assert(user.id);
|
||||
|
@ -41,7 +41,7 @@ describe('User', function(){
|
|||
});
|
||||
});
|
||||
|
||||
it('Requires a valid email.', function(done) {
|
||||
it('Requires a valid email', function(done) {
|
||||
User.create({}, function (err) {
|
||||
assert(err);
|
||||
User.create({email: 'foo@'}, function (err) {
|
||||
|
@ -51,7 +51,7 @@ describe('User', function(){
|
|||
});
|
||||
});
|
||||
|
||||
it('Requires a unique email.', function(done) {
|
||||
it('Requires a unique email', function(done) {
|
||||
User.create({email: 'a@b.com'}, function () {
|
||||
User.create({email: 'a@b.com'}, function (err) {
|
||||
assert(err, 'should error because the email is not unique!');
|
||||
|
@ -60,7 +60,7 @@ describe('User', function(){
|
|||
});
|
||||
});
|
||||
|
||||
it('Requires a password to login with basic auth.', function(done) {
|
||||
it('Requires a password to login with basic auth', function(done) {
|
||||
User.create({email: 'b@c.com'}, function (err) {
|
||||
User.login({email: 'b@c.com'}, function (err, session) {
|
||||
assert(!session, 'should not create a session without a valid password');
|
||||
|
@ -70,14 +70,14 @@ describe('User', function(){
|
|||
});
|
||||
});
|
||||
|
||||
it('Hashes the given password.', function() {
|
||||
it('Hashes the given password', function() {
|
||||
var u = new User({username: 'foo', password: 'bar'});
|
||||
assert(u.password !== 'bar');
|
||||
});
|
||||
});
|
||||
|
||||
describe('User.login', function() {
|
||||
it('Login a user by providing credentials.', function(done) {
|
||||
it('Login a user by providing credentials', function(done) {
|
||||
request(app)
|
||||
.post('/users/login')
|
||||
.expect('Content-Type', /json/)
|
||||
|
@ -97,7 +97,7 @@ describe('User', function(){
|
|||
});
|
||||
|
||||
describe('User.logout', function() {
|
||||
it('Logout a user by providing the current session id (using node).', function(done) {
|
||||
it('Logout a user by providing the current session id (using node)', function(done) {
|
||||
login(logout);
|
||||
|
||||
function login(fn) {
|
||||
|
@ -109,7 +109,7 @@ describe('User', function(){
|
|||
}
|
||||
});
|
||||
|
||||
it('Logout a user by providing the current session id (over rest).', function(done) {
|
||||
it('Logout a user by providing the current session id (over rest)', function(done) {
|
||||
login(logout);
|
||||
|
||||
function login(fn) {
|
||||
|
@ -138,7 +138,7 @@ describe('User', function(){
|
|||
}
|
||||
});
|
||||
|
||||
it('Logout a user using the instance method.', function(done) {
|
||||
it('Logout a user using the instance method', function(done) {
|
||||
login(logout);
|
||||
|
||||
function login(fn) {
|
||||
|
@ -167,7 +167,7 @@ describe('User', function(){
|
|||
});
|
||||
|
||||
describe('user.hasPassword(plain, fn)', function(){
|
||||
it('Determine if the password matches the stored password.', function(done) {
|
||||
it('Determine if the password matches the stored password', function(done) {
|
||||
var u = new User({username: 'foo', password: 'bar'});
|
||||
u.hasPassword('bar', function (err, isMatch) {
|
||||
assert(isMatch, 'password doesnt match');
|
||||
|
|
Loading…
Reference in New Issue