77 lines
2.2 KiB
JavaScript
77 lines
2.2 KiB
JavaScript
const {TimeChainDataSqliteRecord,ConnectToDatabase, TimeChainDataSqliteFile, TimeChainDataSqliteTag, TimeChainDataSqliteTagLink} = require('../src/data/sqlite');
|
|
const { nanoid } = require('nanoid');
|
|
const { unsubscribe } = require('pubsub-js');
|
|
|
|
let db = null;
|
|
|
|
beforeAll(() => {
|
|
db = ConnectToDatabase(__dirname + "/test.db");
|
|
});
|
|
|
|
afterAll(()=>{
|
|
db.close();
|
|
})
|
|
|
|
test("Should create a records table", ()=>{
|
|
const rec = new TimeChainDataSqliteRecord();
|
|
|
|
const st = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?");
|
|
const res = st.get('records');
|
|
|
|
expect(res).not.toBeNull();
|
|
expect(res.name).toEqual('records');
|
|
});
|
|
|
|
test("Should create a files table", ()=>{
|
|
const file = new TimeChainDataSqliteFile();
|
|
|
|
const st = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?");
|
|
const res = st.get('files');
|
|
|
|
expect(res).not.toBeNull();
|
|
expect(res.name).toEqual('files');
|
|
|
|
});
|
|
|
|
test("Should create a tags table", ()=>{
|
|
const tags = new TimeChainDataSqliteTag();
|
|
|
|
const st = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?");
|
|
const res = st.get('tags');
|
|
|
|
expect(res).not.toBeNull();
|
|
expect(res.name).toEqual('tags');
|
|
|
|
|
|
});
|
|
|
|
test("Should create a tags link table", ()=>{
|
|
const links = new TimeChainDataSqliteTagLink();
|
|
|
|
const st = db.prepare("SELECT name FROM sqlite_master WHERE type='table' AND name=?");
|
|
const res = st.get('taglink');
|
|
|
|
expect(res).not.toBeNull();
|
|
expect(res.name).toEqual('taglink');
|
|
});
|
|
|
|
test("Should create a record in the database and then remove it",async ()=>{
|
|
const rec = new TimeChainDataSqliteRecord();
|
|
const id = nanoid();
|
|
const hash = "fakehash";
|
|
const content = "This is a test";
|
|
const mime = "text/plain";
|
|
const ts = Math.floor(Date.now());
|
|
|
|
return rec.add(id,ts,content,mime,hash).then(res=>{
|
|
expect(res).toEqual(1);
|
|
return rec.get(id).then(res=>{
|
|
expect(res.uuid).toEqual(id);
|
|
expect(res.timestamp).toEqual(ts);
|
|
expect(res.mime).toEqual(mime);
|
|
expect(res.content).toEqual(content);
|
|
expect(res.hash).toEqual(hash);
|
|
return rec.delete(id);
|
|
})
|
|
})
|
|
}) |