DefinitelyTyped/types/sqlite3-promise/sqlite3-promise-tests.ts
jonathanlb 27b4e6995c sqlite3-promise type definitions (#38504)
* sqlite3-promise type definitions

* Update index.d.ts

* incorporating uniqueiniquity improvements
2019-09-24 11:37:25 -07:00

77 lines
2.0 KiB
TypeScript

import * as sqlite3 from 'sqlite3-promise';
runExamples();
function createDb(): sqlite3.Database {
return new sqlite3.Database(
':memory:', sqlite3.OPEN_CREATE | sqlite3.OPEN_READWRITE);
}
async function runExamples() {
// Wraps all, get, and run
let db = createDb();
let query = 'CREATE TABLE rows (str TEXT, num INT)';
await db.runAsync(query);
query = 'INSERT INTO rows (str, num) VALUES (\'foo\', 11), (\'bar\', 19)';
await db.runAsync(query);
query = 'SELECT rowid, * FROM rows';
let result = await db.allAsync(query);
// expect(result.length).toBe(2);
query = 'SELECT str FROM rows WHERE num=19';
result = await db.allAsync(query);
// expect(result).toEqual([{str: 'bar'}]);
query = 'SELECT str FROM rows WHERE num=19';
const singleResult = await db.getAsync(query);
// expect(singleResult).toEqual({str: 'bar'});
await db.closeAsync();
// Wraps each
db = createDb();
db.serialize(() => {
db.run("CREATE TABLE lorem (info TEXT)");
const stmt = db.prepare("INSERT INTO lorem VALUES (?)");
for (let i = 0; i < 10; i++) {
stmt.run("Ipsum " + i);
}
stmt.finalize();
});
let sum = 0;
const eachResult = await db.eachAsync(
"SELECT rowid AS id, info FROM lorem",
(err, row) => { sum += row.id; });
// expect(result).toBe(10);
// expect(sum).toBe(55);
await db.closeAsync();
// Wraps exec
db = createDb();
query = `CREATE TABLE lorem (info TEXT);
INSERT INTO lorem VALUES ('foo')`;
const statement = await db.execAsync(query);
query = 'SELECT str FROM rows WHERE num=19';
result = await db.allAsync(query);
// expect(result).toEqual([{str: 'bar'}]);
await db.closeAsync();
// Wraps verbose
const verbose = sqlite3.verbose();
db = new verbose.Database(
':memory:', verbose.OPEN_CREATE | verbose.OPEN_READWRITE);
query = `CREATE TABLE rows (str TEXT, num INT);
INSERT INTO rows (str, num) VALUES ('foo', 11), ('bar', 19)`;
await db.execAsync(query);
query = 'SELECT str FROM rows WHERE num=19';
result = await db.allAsync(query);
// expect(result).toEqual([{str: 'bar'}]);
await db.closeAsync();
}