四好公路
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

76 lines
1.7 KiB

/**
* Test.
*/
var assert = require('assert');
var before = require('../');
describe("before(context)", function(){
it("should return a function", function(){
var speak = {
greeting: 'welcome',
greet: function(a, b, fn){
fn(null, a + ' ' + b);
}
};
speak.before = before(speak);
speak.before.should.be.a.Function;
})
})
describe("before(method, fn)", function(){
it("should add a before hook and run it in the context", function(done){
var speak = {
greeting: 'welcome',
greet: function(a, b, fn){
fn(null, a + ' ' + b);
}
};
speak.before = before(speak);
speak.before('greet', function(args, fn){
args[0] = args[0] + ', ' + this.greeting;
assert(this === speak);
fn();
});
speak.greet('Hello', 'to this world!', function(err, result){
assert(null == err);
result.should.equal('Hello, welcome to this world!');
done();
});
})
describe("when run multiple times", function(){
it("should add multiple before hooks", function(done){
var speak = {
greeting: 'welcome',
greet: function(a, b, fn){
fn(null, a + ' ' + b);
}
};
speak.before = before(speak);
speak.before('greet', function(args, fn){
args[0] = args[0] + ' to this wonderful';
assert(this === speak);
fn();
});
speak.before('greet', function(args, fn){
args[0] = args[0] + ', ' + this.greeting;
assert(this === speak);
fn();
});
speak.greet('Hello', 'world!', function(err, result){
assert(null == err);
result.should.equal('Hello, welcome to this wonderful world!');
done();
});
})
})
})