mirror of
https://github.com/thinkjs/thinkjs.git
synced 2026-01-18 14:26:56 +00:00
107 lines
4.4 KiB
JavaScript
107 lines
4.4 KiB
JavaScript
'use strict';
|
|
|
|
var assert = require('assert');
|
|
var path = require('path');
|
|
var fs = require('fs');
|
|
var muk = require('muk');
|
|
|
|
|
|
var Index = require('../../../lib/index.js');
|
|
var instance = new Index();
|
|
instance.load();
|
|
|
|
think.APP_PATH = path.dirname(__dirname) + think.sep + 'testApp';
|
|
|
|
var Sqlite = think.safeRequire(path.resolve(__dirname, '../../../lib/adapter/db/sqlite.js'));
|
|
|
|
|
|
|
|
describe('adapter/db/sqlite', function(){
|
|
it('get instance', function(){
|
|
var instance = new Sqlite();
|
|
assert.equal(instance._socket, null)
|
|
})
|
|
it('get socket', function(){
|
|
var instance = new Sqlite();
|
|
var socket = instance.socket();
|
|
assert.equal(instance._socket == socket, true);
|
|
})
|
|
it('get socket, again', function(){
|
|
var instance = new Sqlite();
|
|
var socket = instance.socket();
|
|
var socket1 = instance.socket();
|
|
assert.equal(socket1 == socket, true);
|
|
})
|
|
it('escape string', function(){
|
|
var instance = new Sqlite();
|
|
var str = instance.escapeString("welefen'suredy");
|
|
assert.equal(str, "welefen\'\'suredy");
|
|
})
|
|
it('escape string, multi', function(){
|
|
var instance = new Sqlite();
|
|
var str = instance.escapeString("welefen'sur'edy");
|
|
assert.equal(str, "welefen\'\'sur\'\'edy");
|
|
})
|
|
it('parseLimit, empty', function(){
|
|
var instance = new Sqlite();
|
|
var str = instance.parseLimit();
|
|
assert.equal(str, '')
|
|
})
|
|
it('parseLimit, number', function(){
|
|
var instance = new Sqlite();
|
|
var str = instance.parseLimit(12);
|
|
assert.equal(str, ' LIMIT 12')
|
|
})
|
|
it('parseLimit, string', function(){
|
|
var instance = new Sqlite();
|
|
var str = instance.parseLimit('12');
|
|
assert.equal(str, ' LIMIT 12')
|
|
})
|
|
it('parseLimit, string 1', function(){
|
|
var instance = new Sqlite();
|
|
var str = instance.parseLimit('12, 10');
|
|
assert.equal(str, ' LIMIT 10 OFFSET 12')
|
|
})
|
|
it('parseLimit, array', function(){
|
|
var instance = new Sqlite();
|
|
var str = instance.parseLimit([12, 10]);
|
|
assert.equal(str, ' LIMIT 10 OFFSET 12')
|
|
})
|
|
it('get fields', function(done){
|
|
var instance = new Sqlite();
|
|
instance.query = function(sql){
|
|
if(sql === 'PRAGMA table_info( user )'){
|
|
return Promise.resolve([{"cid":0,"name":"id","type":"INTEGER","notnull":1,"dflt_value":null,"pk":1},{"cid":1,"name":"name","type":"TEXT","notnull":1,"dflt_value":null,"pk":0},{"cid":2,"name":"pwd","type":"TEXT","notnull":1,"dflt_value":null,"pk":0},{"cid":3,"name":"create_time","type":"INTEGER","notnull":1,"dflt_value":null,"pk":0}]);
|
|
}
|
|
return Promise.resolve([]);
|
|
}
|
|
instance.getSchema('user').then(function(data){
|
|
assert.deepEqual(data, {"id":{"name":"id","type":"INTEGER","required":true,"primary":true,"auto_increment":false,"unique":false},"name":{"name":"name","type":"TEXT","required":true,"primary":false,"auto_increment":false,"unique":false},"pwd":{"name":"pwd","type":"TEXT","required":true,"primary":false,"auto_increment":false,"unique":false},"create_time":{"name":"create_time","type":"INTEGER","required":true,"primary":false,"auto_increment":false,"unique":false}})
|
|
done();
|
|
})
|
|
})
|
|
it('getSchema 1', function(done){
|
|
var instance = new Sqlite();
|
|
instance.query = function(sql){
|
|
if(sql === 'PRAGMA table_info( user )'){
|
|
return Promise.resolve([{"cid":0,"name":"id","type":"INTEGER","notnull":1,"dflt_value":null,"pk":1},{"cid":1,"name":"name","type":"TEXT","notnull":1,"dflt_value":null,"pk":0},{"cid":2,"name":"pwd","type":"TEXT","notnull":1,"dflt_value":null,"pk":0},{"cid":3,"name":"create_time","type":"INTEGER","notnull":1,"dflt_value":null,"pk":0}]);
|
|
}else if(sql === 'PRAGMA INDEX_LIST( user )'){
|
|
return Promise.resolve([{
|
|
name: 'xxxx',
|
|
unique: true
|
|
}, {
|
|
name: 'test'
|
|
}]);
|
|
}else if(sql === 'PRAGMA index_info( xxxx )'){
|
|
return Promise.resolve([{
|
|
name: 'name'
|
|
}])
|
|
}
|
|
return Promise.resolve([]);
|
|
}
|
|
instance.getSchema('user').then(function(data){
|
|
assert.deepEqual(data, {"id":{"name":"id","type":"INTEGER","required":true,"primary":true,"auto_increment":false,"unique":false},"name":{"name":"name","type":"TEXT","required":true,"primary":false,"auto_increment":false,"unique":true},"pwd":{"name":"pwd","type":"TEXT","required":true,"primary":false,"auto_increment":false,"unique":false},"create_time":{"name":"create_time","type":"INTEGER","required":true,"primary":false,"auto_increment":false,"unique":false}});
|
|
done();
|
|
})
|
|
})
|
|
}) |