mirror of
https://github.com/thinkjs/thinkjs.git
synced 2026-01-18 14:26:56 +00:00
178 lines
4.6 KiB
JavaScript
178 lines
4.6 KiB
JavaScript
'use strict';
|
|
|
|
var assert = require('assert');
|
|
var path = require('path');
|
|
var fs = require('fs');
|
|
var muk = require('muk');
|
|
|
|
|
|
for(var filepath in require.cache){
|
|
delete require.cache[filepath];
|
|
}
|
|
var Index = require('../../../lib/index.js');
|
|
var instance = new Index();
|
|
instance.load();
|
|
|
|
think.APP_PATH = path.dirname(__dirname) + think.sep + 'testApp';
|
|
|
|
var BaseSession = think.adapter('session', 'memory');
|
|
|
|
describe('adapter/session/memory.js', function(){
|
|
it('get instance', function(){
|
|
var instance = new BaseSession({
|
|
cookie: 'welefen',
|
|
timeout: 100
|
|
});
|
|
assert.equal(instance.timeout, 100);
|
|
assert.equal(instance.cookie, 'welefen');
|
|
assert.equal(instance.gcType, 'session_base');
|
|
})
|
|
it('get data, undefined', function(done){
|
|
var instance = new BaseSession({
|
|
cookie: 'welefen',
|
|
timeout: 100
|
|
});
|
|
instance.get('welefen').then(function(data){
|
|
assert.equal(data, undefined);
|
|
done();
|
|
})
|
|
})
|
|
it('get data, string', function(done){
|
|
var instance = new BaseSession({
|
|
cookie: 'welefen',
|
|
timeout: 100
|
|
});
|
|
instance.set('welefen', 'suredy').then(function(){
|
|
return instance.get('welefen')
|
|
}).then(function(data){
|
|
assert.equal(data, 'suredy');
|
|
done();
|
|
})
|
|
})
|
|
it('get data, object', function(done){
|
|
var instance = new BaseSession({
|
|
cookie: 'welefen',
|
|
timeout: 100
|
|
});
|
|
instance.set('welefen', {name: 'suredy'}).then(function(){
|
|
return instance.get('welefen')
|
|
}).then(function(data){
|
|
assert.deepEqual(data, {name: 'suredy'});
|
|
done();
|
|
})
|
|
})
|
|
it('get data, object 1', function(done){
|
|
var instance = new BaseSession({
|
|
cookie: 'welefen',
|
|
timeout: 100
|
|
});
|
|
instance.set('welefen1', {name: 'suredy'}).then(function(){
|
|
return instance.get('welefen1')
|
|
}).then(function(data){
|
|
assert.deepEqual(data, {name: 'suredy'});
|
|
done();
|
|
})
|
|
})
|
|
it('get data, exipred', function(done){
|
|
var instance = new BaseSession({
|
|
cookie: 'welefen',
|
|
timeout: 100
|
|
});
|
|
instance.set('welefen2', {name: 'suredy'}, 0.01).then(function(){
|
|
setTimeout(function(){
|
|
instance.get('welefen2').then(function(data){
|
|
assert.equal(data, undefined);
|
|
done();
|
|
})
|
|
}, 40)
|
|
})
|
|
})
|
|
it('get all data', function(done){
|
|
var instance = new BaseSession({
|
|
cookie: 'welefen',
|
|
timeout: 100
|
|
});
|
|
instance.set('welefen2', {name: 'suredy'}, 100).then(function(){
|
|
setTimeout(function(){
|
|
instance.get().then(function(data){
|
|
assert.deepEqual(data, { welefen2: { name: 'suredy' } });
|
|
done();
|
|
})
|
|
}, 40)
|
|
})
|
|
})
|
|
it('delete data', function(done){
|
|
var instance = new BaseSession({
|
|
cookie: 'welefen',
|
|
timeout: 100
|
|
});
|
|
instance.set('welefen', 'suredy').then(function(){
|
|
return instance.delete('welefen')
|
|
}).then(function(){
|
|
return instance.get('welefen')
|
|
}).then(function(data){
|
|
assert.equal(data, undefined);
|
|
done();
|
|
})
|
|
})
|
|
it('delete data, key not exist', function(done){
|
|
var instance = new BaseSession({
|
|
cookie: 'eeeee',
|
|
timeout: 100
|
|
});
|
|
return instance.delete('welefen3333').then(function(){
|
|
return instance.get('welefen3333')
|
|
}).then(function(data){
|
|
assert.equal(data, undefined);
|
|
done();
|
|
})
|
|
})
|
|
it('delete all', function(done){
|
|
var instance = new BaseSession({
|
|
cookie: 'welefen',
|
|
timeout: 100
|
|
});
|
|
instance.set('name', 'welefen').then(function(){
|
|
return instance.delete()
|
|
}).then(function(){
|
|
return instance.get()
|
|
}).then(function(data){
|
|
assert.equal(data, undefined);
|
|
done();
|
|
})
|
|
})
|
|
it('gc', function(done){
|
|
var instance = new BaseSession({
|
|
cookie: 'welefen',
|
|
timeout: 100
|
|
});
|
|
instance.set('name', 'welefen', 0.01).then(function(){
|
|
setTimeout(function(){
|
|
instance.gc().then(function(){
|
|
return instance.get();
|
|
}).then(function(data){
|
|
assert.equal(data, undefined);
|
|
done();
|
|
})
|
|
}, 50)
|
|
})
|
|
})
|
|
it('gc', function(done){
|
|
var instance = new BaseSession({
|
|
cookie: 'welefen',
|
|
timeout: 100
|
|
});
|
|
instance.set('name', 'welefen', 0.01).then(function(){
|
|
return instance.set('fasdfasdf', 'fasdfasdf');
|
|
}).then(function(){
|
|
setTimeout(function(){
|
|
instance.gc().then(function(){
|
|
return instance.get();
|
|
}).then(function(data){
|
|
assert.deepEqual(data, { name: 'welefen', fasdfasdf: 'fasdfasdf' });
|
|
done();
|
|
})
|
|
}, 50)
|
|
})
|
|
})
|
|
}) |