mirror of
https://github.com/thinkjs/thinkjs.git
synced 2026-01-18 14:26:56 +00:00
120 lines
2.7 KiB
JavaScript
120 lines
2.7 KiB
JavaScript
var assert = require('assert');
|
|
var path = require('path');
|
|
var fs = require('fs');
|
|
var muk = require('muk');
|
|
|
|
require('../../lib/core/think.js');
|
|
|
|
var Base = think.safeRequire(path.resolve(__dirname, '../../lib/core/base.js'));
|
|
|
|
|
|
var Cls = think.Class(Base, {
|
|
__before: function(){
|
|
this.name = 'name';
|
|
},
|
|
getName: function(){
|
|
return this.name;
|
|
},
|
|
__after: function(){
|
|
this.name = '';
|
|
}
|
|
})
|
|
|
|
var Cls1 = think.Class(Base, {
|
|
getName: function(){
|
|
return this.name;
|
|
},
|
|
__after: function(){
|
|
this.name = 'after';
|
|
return this.name;
|
|
}
|
|
})
|
|
|
|
var Cls2 = think.Class(Base, {
|
|
getName: function(){
|
|
return this.name;
|
|
},
|
|
__before: function(){
|
|
this.name = 'before';
|
|
}
|
|
})
|
|
|
|
var Cls3 = think.Class(Base, {
|
|
getName: function(name){
|
|
this.name = name;
|
|
return this.name;
|
|
},
|
|
__before: function(){
|
|
this.name = 'before';
|
|
}
|
|
})
|
|
|
|
var Cls4 = think.Class(Base, {
|
|
getName: function(name){
|
|
this.name = name;
|
|
return this.name;
|
|
},
|
|
__before: undefined,
|
|
__after: undefined
|
|
})
|
|
|
|
|
|
describe('core/base.js', function(){
|
|
it('Base is function', function(){
|
|
assert.equal(typeof Base, 'function')
|
|
})
|
|
it('cls inherit Base, __before, __after', function(done){
|
|
var instance = new Cls();
|
|
var name = instance.invoke('getName');
|
|
name.then(function(data){
|
|
assert.equal(data, 'name');
|
|
var afterName = instance.getName();
|
|
assert.equal(afterName, '');
|
|
done();
|
|
})
|
|
})
|
|
it('cls inherit Base, __after', function(done){
|
|
var instance = new Cls1();
|
|
var name = instance.invoke('getName');
|
|
name.then(function(data){
|
|
assert.equal(data, undefined);
|
|
var afterName = instance.getName();
|
|
assert.equal(afterName, 'after');
|
|
done();
|
|
})
|
|
})
|
|
it('cls inherit Base, __before', function(done){
|
|
var instance = new Cls2();
|
|
var name = instance.invoke('getName');
|
|
name.then(function(data){
|
|
assert.equal(data, 'before');
|
|
var afterName = instance.getName();
|
|
assert.equal(afterName, 'before');
|
|
done();
|
|
})
|
|
})
|
|
it('cls inherit Base, args', function(done){
|
|
var instance = new Cls3();
|
|
var name = instance.invoke('getName', 'getName');
|
|
name.then(function(data){
|
|
assert.equal(data, 'getName');
|
|
var afterName = instance.getName();
|
|
assert.equal(afterName, undefined);
|
|
done();
|
|
})
|
|
})
|
|
it('no __before & __after', function(done){
|
|
var instance = new Cls4();
|
|
instance.invoke('basename', 'getName.js').then(function(data){
|
|
assert.deepEqual(data, 'getName');
|
|
done();
|
|
}).catch(function(err){
|
|
console.log(err.stack)
|
|
});
|
|
})
|
|
it('basename', function(){
|
|
var instance = new Base();
|
|
var ret = instance.basename(__filename);
|
|
assert.equal(ret, 'base')
|
|
})
|
|
}) |