diff --git a/README.md b/README.md index 1cf4f2cc..2f455066 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Then you can run a query: ```js db.all('SELECT 42 AS fortytwo', function(err, res) { if (err) { - throw err; + console.warn(err); } console.log(res[0].fortytwo) }); @@ -26,7 +26,7 @@ Other available methods are `each`, where the callback is invoked for each row, ```js db.all('SELECT ?::INTEGER AS fortytwo, ?::STRING as hello', 42, 'Hello, World', function(err, res) { if (err) { - throw err; + console.warn(err); } console.log(res[0].fortytwo) console.log(res[0].hello) @@ -47,7 +47,7 @@ You can create multiple connections, each with their own transaction context. ```js con.all('SELECT 42 AS fortytwo', function(err, res) { if (err) { - throw err; + console.warn(err); } console.log(res[0].fortytwo) }); @@ -64,7 +64,7 @@ To execute this statement, you can call for example `all()` on the `stmt` object ```js stmt.all(42, function(err, res) { if (err) { - throw err; + console.warn(err); } console.log(res[0].fortytwo) }); @@ -81,7 +81,7 @@ for (var i = 0; i < 10; i++) { stmt.finalize(); con.all('SELECT * FROM a', function(err, res) { if (err) { - throw err; + console.warn(err); } console.log(res) }); @@ -93,7 +93,7 @@ con.all('SELECT * FROM a', function(err, res) { var stmt = con.prepare('select ?::INTEGER as fortytwo', function(err, stmt) { stmt.all(42, function(err, res) { if (err) { - throw err; + console.warn(err); } console.log(res[0].fortytwo) }); diff --git a/test/affected.test.ts b/test/affected.test.ts index c58b653f..2b4de1e2 100644 --- a/test/affected.test.ts +++ b/test/affected.test.ts @@ -13,7 +13,7 @@ describe('query properties', function() { var j = 1; for (var i = 0; i < 5000; i++) { stmt.run(i, "demo", function(err: null | Error) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); // Relies on SQLite's row numbering to be gapless and starting // from 1. // @ts-ignore @@ -26,7 +26,7 @@ describe('query properties', function() { it.skip('should return the correct changes count', function(done) { db.run("UPDATE foo SET id = id + 1 WHERE id % 2 = 0", function(err: null | Error) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); // FIXME assert.equal(2500, this.changes); done(); }); diff --git a/test/columns.test.ts b/test/columns.test.ts index 3073b3de..637c63d6 100644 --- a/test/columns.test.ts +++ b/test/columns.test.ts @@ -8,7 +8,7 @@ describe('Column Types', function() { it('should prepare a statement and return the columns and their types', function(done) { // we dont include the large_enum and small_enum since they are huge and test the same code path as the small_enum var stmt = db.prepare("SELECT * EXCLUDE(medium_enum, large_enum) FROM test_all_types()", function(err: null | Error) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); let cols = stmt.columns(); @@ -263,4 +263,4 @@ describe('Column Types', function() { }); stmt.finalize(done); }); -}); \ No newline at end of file +}); diff --git a/test/config.test.ts b/test/config.test.ts index 847fcdc1..9843fb96 100644 --- a/test/config.test.ts +++ b/test/config.test.ts @@ -9,7 +9,7 @@ describe('user_agent', () => { db.all('PRAGMA USER_AGENT', (err: null | Error, rows: TableData) => { if (err) { - throw err; + done(new Error('Query failed unexpectedly')); } assert.match(rows[0].user_agent, /duckdb\/.*\(*\) nodejs/); done(); @@ -21,7 +21,7 @@ describe('user_agent', () => { db.all('PRAGMA USER_AGENT', (err: null | Error, rows: TableData) => { if (err) { - throw err; + done(new Error('Query failed unexpectedly')); } assert.match(rows[0].user_agent, /duckdb\/.*\(*\) nodejs a_framework/); done(); diff --git a/test/each.test.ts b/test/each.test.ts index de67c7c6..cf9f91ed 100644 --- a/test/each.test.ts +++ b/test/each.test.ts @@ -14,7 +14,7 @@ describe('each', function() { db.each('SELECT id, txt FROM foo WHERE ROWID < ?', total, function(err: null | Error, row: RowData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); retrieved++; if(retrieved === total) { @@ -29,7 +29,7 @@ describe('each', function() { var retrieved = 0; db.each('SELECT id, txt FROM foo WHERE ROWID < ?', total, function(err: null | Error, row: RowData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); retrieved++; }, function(err: null | Error, num: RowData) { assert.equal(retrieved, num); diff --git a/test/exec.test.ts b/test/exec.test.ts index 9cde91de..cf7404ba 100644 --- a/test/exec.test.ts +++ b/test/exec.test.ts @@ -12,14 +12,14 @@ describe('exec', function() { it('Database#exec', function(done) { var sql = fs.readFileSync('test/support/script.sql', 'utf8'); db.exec(sql, function(err: null | Error) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); done(); }); }); it('retrieve database structure', function(done) { db.all("SELECT type, name FROM sqlite_master ORDER BY type, name", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.deepEqual(rows, [ // { type: 'index', name: 'grid_key_lookup' }, // { type: 'index', name: 'grid_utfgrid_lookup' }, diff --git a/test/named_columns.test.ts b/test/named_columns.test.ts index 9c35df74..c597e1c9 100644 --- a/test/named_columns.test.ts +++ b/test/named_columns.test.ts @@ -21,7 +21,7 @@ describe.skip('named columns', function() { it('should retrieve the values', function(done) { db.get("SELECT txt, num FROM foo ORDER BY num", function(err, row) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(row.txt, "Lorem Ipsum"); assert.equal(row.num, 1); done(); @@ -30,7 +30,7 @@ describe.skip('named columns', function() { it('should be able to retrieve rowid of last inserted value', function(done) { db.get("SELECT last_insert_rowid() as last_id FROM foo", function(err, row) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(row.last_id, 1); done(); }); diff --git a/test/null_error.test.ts b/test/null_error.test.ts index 5c361b41..aaf8f8c0 100644 --- a/test/null_error.test.ts +++ b/test/null_error.test.ts @@ -17,14 +17,14 @@ describe('null error', function() { it('should insert rows with lots of null values', function(done) { var stmt = db.prepare('INSERT INTO febp_data VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', function(err: null | Error) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); for (var i = 0; i < 100; i++) { stmt.run([ '100005', 'Albertville City School District', 'ALABAMA', 'AL', '1', '856031', '753000', 'NULL', 'NULL', '6-Small Town', 'Town', 21, '130', '6624', '7140', '8731', '8520', '102', '88', '100', '94', '23352000', '27280000', '30106000', '33028000', '768478', '845886', '782696', '1096819', '1279663', '1168521', '561522', '657649', '684366', '687531', '710543', '727276', '726647', 'N/A', 'N/A', 'N/A', 'N/A', '986', '977', '1006', '1080250', '1202325', '1009962', '1109310', '70287', '93015', '14693.56', '13634.58', 'N/A', '0.230', '0.301', '0.268882175', '73', '26', '29', '3718', '3747', '3790', '2663', '2615', '2575', '75', '82', '89', '3', '2', '6', '11', '9', '8', '955', '1028', '1102', '1991', '2061', '2146', '649', '729', '770', '443', '278', '267', '0.860', '0.86', '0.8474', '0.84', '0.8235', '0.810', '0.84', '0.7729', '0.75', '0.7843', '1121', '1205', '0.74', '0.6862', '0.72', '0.7317', '0.78', '0.7766', '0.79', '0.7387', '0.84', '0.9255', '0.86', '0.9302', '0.88', '0.9308', '0.84', '0.8605' ]); } stmt.finalize(function(err) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); done(); }); }); diff --git a/test/prepare.test.ts b/test/prepare.test.ts index a75092cc..a48debee 100644 --- a/test/prepare.test.ts +++ b/test/prepare.test.ts @@ -14,7 +14,9 @@ describe('prepare', function() { err.message === 'Parser: syntax error at or near "CRATE' */) { done(); } - else throw err; + else { + done(new Error('Query failed unexpectedly')); + } }); }); @@ -56,11 +58,11 @@ describe('prepare', function() { i * Math.PI, null, function(err: null | Error) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); inserted++; } ).finalize(function(err) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); if (inserted == count) done(); }); } @@ -68,12 +70,12 @@ describe('prepare', function() { it('should prepare a statement and return values again', function(done) { var stmt = db.prepare("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err: null | Error) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(stmt.sql, 'SELECT txt, num, flt, blb FROM foo ORDER BY num'); }); stmt.each(function(err: null | Error, row: RowData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(row.txt, 'String ' + retrieved); assert.equal(row.num, retrieved); assert.equal(row.flt, retrieved * Math.PI); @@ -93,13 +95,13 @@ describe('prepare', function() { /* // get() is an abomination and should be killed it('should prepare a statement and run it ' + (count + 5) + ' times', function(done) { var stmt = db.prepare("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(stmt.sql, 'SELECT txt, num, flt, blb FROM foo ORDER BY num'); }); for (var i = 0; i < count + 5; i++) (function(i) { stmt.get(function(err, row) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); if (retrieved >= 1000) { assert.equal(row, undefined); @@ -138,7 +140,7 @@ describe('prepare', function() { it('should insert two rows', function(done) { db.prepare('INSERT INTO foo VALUES(4)').run(function(err: null | Error) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); inserted++; }).run(undefined, function (err: null | Error) { // The second time we pass undefined as a parameter. This is @@ -149,7 +151,7 @@ describe('prepare', function() { }; inserted++; }).finalize(function(err) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); if (inserted == 2) done(); }); }); @@ -157,12 +159,12 @@ describe('prepare', function() { /* it('should retrieve the data', function(done) { var stmt = db.prepare("SELECT num FROM foo", function(err) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); }); for (var i = 0; i < 2; i++) (function(i) { stmt.get(function(err, row) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert(row); assert.equal(row.num, 4); retrieved++; @@ -175,11 +177,11 @@ describe('prepare', function() { it('should retrieve the data', function(done) { var stmt = db.prepare("SELECT num FROM foo", function(err: null | Error) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); }); stmt.each(function(err: null | Error, row: RowData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.ok(row); assert.equal(row.num, 4); retrieved++; @@ -211,7 +213,7 @@ describe('prepare', function() { for (var i = 0; i < 10; i++) { stmt.reset(); stmt.get(function(err, row) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(row.txt, 'String 0'); assert.equal(row.num, 0); assert.equal(row.flt, 0.0); @@ -245,7 +247,7 @@ describe('prepare', function() { for (var i = 0; i < 10; i++) (function(i) { stmt.get(i * 10 + 1, function(err, row) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); var val = i * 10 + 1; assert.equal(row.txt, 'String ' + val); assert.equal(row.num, val); @@ -279,7 +281,7 @@ describe('prepare', function() { /* it('should retrieve particular rows', function(done) { db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num = ? AND txt = ?", 10, 'String 10') .get(function(err, row) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(row.txt, 'String 10'); assert.equal(row.num, 10); assert.equal(row.flt, 10 * Math.PI); @@ -292,7 +294,7 @@ describe('prepare', function() { it('should retrieve particular rows', function(done) { db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num = ? AND txt = ?") .each(10, 'String 10', function(err: null | Error, row: RowData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(row.txt, 'String 10'); assert.equal(row.num, 10); // assert.equal(row.flt, 10 * Math.PI); @@ -323,7 +325,7 @@ describe('prepare', function() { it('should retrieve particular rows', function(done) { db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num < ? ORDER BY num") .all(count, function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); for (var i = 0; i < rows.length; i++) { assert.equal(rows[i].txt, 'String ' + i); assert.equal(rows[i].num, i); @@ -353,7 +355,7 @@ describe('prepare', function() { it('should directly execute first statements', function(done) { db.prepare("insert into foo values (3); insert into foo values (4); select * from foo") .all(function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].a, 3); assert.equal(rows[1].a, 4); }) @@ -392,7 +394,7 @@ describe('prepare', function() { it('should retrieve particular rows', function(done) { db.prepare("SELECT txt, num, flt, blb FROM foo WHERE num > 5000") .all(function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.ok(rows.length === 0); }) .finalize(done); @@ -435,10 +437,10 @@ describe('prepare', function() { for (var i = 0; i < data.length; i++) { var stmt = db.prepare("INSERT INTO foo VALUES(?, ?, ?, ?)"); stmt.run(data[i][0], data[i][1], data[i][2], data[i][3], function(err: null | Error) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); inserted++; }).finalize(function(err) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); if (inserted == data.length) done(); }); } @@ -447,7 +449,7 @@ describe('prepare', function() { it('should retrieve all values', function(done) { db.prepare("SELECT txt, num, flt, blb FROM foo") .all(function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); for (var i = 0; i < rows.length; i++) { assert.ok(retrieved_marks[rows[i].num] !== true); @@ -485,7 +487,7 @@ describe('prepare', function() { it('should get a row', function(done) { db.get("SELECT txt, num, flt, blb FROM foo WHERE num = ? AND txt = ?", 10, 'String 10', function(err, row) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(row.txt, 'String 10'); assert.equal(row.num, 10); assert.equal(row.flt, 10 * Math.PI); @@ -524,7 +526,7 @@ describe('prepare', function() { i * Math.PI, null, function(err: null | Error) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); inserted++; if (inserted == count) done(); } @@ -534,7 +536,7 @@ describe('prepare', function() { it('should retrieve all rows', function(done) { db.all("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); for (var i = 0; i < rows.length; i++) { assert.equal(rows[i].txt, 'String ' + i); assert.equal(rows[i].num, i); diff --git a/test/serialization.test.ts b/test/serialization.test.ts index 3ebacff2..be847001 100644 --- a/test/serialization.test.ts +++ b/test/serialization.test.ts @@ -19,29 +19,30 @@ describe('serialize() and parallelize()', function() { db.parallelize(done); }); - it('should insert rows', function() { + it('should insert rows', function(done) { var stmt1 = db.prepare("INSERT INTO foo VALUES(?, ?, ?, ?)"); var stmt2 = db.prepare("INSERT INTO foo VALUES(?, ?, ?, ?)"); for (var i = 0; i < count; i++) { // Interleaved inserts with two statements. stmt1.run('String ' + i, i, i * Math.PI, null, function(err: null | Error) { - if (err) throw err; + if (err) {console.warn(err);done(new Error('Query failed unexpectedly'));} inserted1++; }); i++; stmt2.run('String ' + i, i, i * Math.PI, null, function(err: null | Error) { - if (err) throw err; + if (err) {console.warn(err);done(new Error('Query failed unexpectedly'));} inserted2++; }); } stmt1.finalize(); stmt2.finalize(); + done(); }); it('should have inserted all the rows after synchronizing with serialize()', function(done) { db.serialize(); db.all("SELECT txt, num, flt, blb FROM foo ORDER BY num", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); for (var i = 0; i < rows.length; i++) { assert.equal(rows[i].txt, 'String ' + i); assert.equal(rows[i].num, i); @@ -77,14 +78,14 @@ describe('serialize(fn)', function() { var d = new Date(Date.UTC(2018, 0, i)); var ts = new Date(Date.UTC(2021, 6, 10, 0, 0, i)); stmt.run('String ' + i, i, i * Math.PI, null, d, ts, function(err: null | Error) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); inserted++; }); } stmt.finalize(); db.all("SELECT txt, num, flt, blb, d, ts FROM foo ORDER BY num", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); for (var i = 0; i < rows.length; i++) { var d = new Date(Date.UTC(2018, 0, i)); var ts = new Date(Date.UTC(2021, 6, 10, 0, 0, i)); diff --git a/test/typescript_decls.test.ts b/test/typescript_decls.test.ts index ffdb6125..ad109adb 100644 --- a/test/typescript_decls.test.ts +++ b/test/typescript_decls.test.ts @@ -63,7 +63,7 @@ describe("TypeScript declarations", function () { it("typescript: Database#exec", function (done) { var sql = fs.readFileSync("test/support/script.sql", "utf8"); db.exec(sql, function (err: duckdb.DuckDbError | null) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); done(); }); }); @@ -72,7 +72,7 @@ describe("TypeScript declarations", function () { db.all( "SELECT type, name FROM sqlite_master ORDER BY type, name", function (err: duckdb.DuckDbError | null, rows: duckdb.TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.deepEqual(rows, [ { type: "table", name: "grid_key" }, { type: "table", name: "grid_utfgrid" }, @@ -125,7 +125,7 @@ describe("TypeScript declarations", function () { db.all( "select udf(21, 20, 1) v", function (err: duckdb.DuckDbError | null, rows: duckdb.TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, 42); } ); @@ -139,7 +139,7 @@ describe("TypeScript declarations", function () { "SELECT * FROM range(0, ?)", total, function (err: duckdb.DuckDbError | null, row: any) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); retrieved++; if (retrieved === total) { @@ -197,12 +197,12 @@ describe("typescript: prepared statements", function () { i * Math.PI, null, function (err: duckdb.DuckDbError | null) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); inserted++; } ) .finalize(function (err) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); if (inserted == count) done(); }); } diff --git a/test/udf.test.ts b/test/udf.test.ts index 902f4298..91975ba7 100644 --- a/test/udf.test.ts +++ b/test/udf.test.ts @@ -12,7 +12,7 @@ describe('UDFs', function() { it('0ary int', function(done) { db.register_udf("udf", "integer", () => 42); db.all("select udf() v", function(err: Error | null, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, 42); }); db.unregister_udf("udf", done); @@ -21,7 +21,7 @@ describe('UDFs', function() { it('0ary double', function(done) { db.register_udf("udf", "double", () => 4.2); db.all("select udf() v", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, 4.2); }); db.unregister_udf("udf", done); @@ -30,7 +30,7 @@ describe('UDFs', function() { it('0ary string', function(done) { db.register_udf("udf", "varchar", () => 'hello'); db.all("select udf() v", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, 'hello'); }); db.unregister_udf("udf", done); @@ -39,7 +39,7 @@ describe('UDFs', function() { it('0ary non-inlined string', function(done) { db.register_udf("udf", "varchar", () => 'this string is over 12 bytes'); db.all("select udf() v", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, 'this string is over 12 bytes'); }); db.unregister_udf("udf", done); @@ -48,7 +48,7 @@ describe('UDFs', function() { it('0ary int null', function(done) { db.register_udf("udf", "integer", () => undefined); db.all("select udf() v", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, undefined); }); db.unregister_udf("udf", done); @@ -58,7 +58,7 @@ describe('UDFs', function() { it('0ary string null', function(done) { db.register_udf("udf", "varchar", () => undefined); db.all("select udf() v", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, undefined); }); db.unregister_udf("udf", done); @@ -68,7 +68,7 @@ describe('UDFs', function() { it('unary int', function(done) { db.register_udf("udf", "integer", (x) => x+1); db.all("select udf(42) v", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, 43); }); db.unregister_udf("udf", done); @@ -77,7 +77,7 @@ describe('UDFs', function() { it('unary double', function(done) { db.register_udf("udf", "double", (x) => x); db.all("select udf(4.2::double) v", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, 4.2); }); db.unregister_udf("udf", done); @@ -86,7 +86,7 @@ describe('UDFs', function() { it('unary int null', function(done) { db.register_udf("udf", "integer", (x) => undefined); db.all("select udf(42) v", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, undefined); }); db.unregister_udf("udf", done); @@ -96,7 +96,7 @@ describe('UDFs', function() { it('unary double null', function(done) { db.register_udf("udf", "double", (x) => undefined); db.all("select udf(4.2::double) v", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, undefined); }); db.unregister_udf("udf", done); @@ -106,7 +106,7 @@ describe('UDFs', function() { it('unary string', function(done) { db.register_udf("udf", "varchar", (x) => 'hello ' + x); db.all("select udf('world') v", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, 'hello world'); }); db.unregister_udf("udf", done); @@ -115,7 +115,7 @@ describe('UDFs', function() { it('unary string null', function(done) { db.register_udf("udf", "varchar", (x) => undefined); db.all("select udf('world') v", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, undefined); }); db.unregister_udf("udf", done); @@ -124,7 +124,7 @@ describe('UDFs', function() { it('binary int', function(done) { db.register_udf("udf", "integer", (x, y) => x + y); db.all("select udf(40, 2) v", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, 42); }); db.unregister_udf("udf", done); @@ -133,7 +133,7 @@ describe('UDFs', function() { it('binary string', function(done) { db.register_udf("udf", "varchar", (x, y) => x + ' ' + y); db.all("select udf('hello', 'world') v", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, 'hello world'); }); db.unregister_udf("udf", done); @@ -142,7 +142,7 @@ describe('UDFs', function() { it('ternary int', function(done) { db.register_udf("udf", "integer", (x, y, z) => x + y + z); db.all("select udf(21, 20, 1) v", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, 42); }); db.unregister_udf("udf", done); @@ -151,7 +151,7 @@ describe('UDFs', function() { it('unary larger series', function(done) { db.register_udf("udf", "integer", (x) => 1); db.all("select sum(udf(range::double)) v from range(10000)", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, 10000); }); db.unregister_udf("udf", done); @@ -167,7 +167,7 @@ describe('UDFs', function() { it('tinyint', function(done) { db.register_udf("udf", "integer", (x) => x+1); db.all("select udf(42::tinyint) v", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, 43); }); db.unregister_udf("udf", done); @@ -176,7 +176,7 @@ describe('UDFs', function() { it('smallint', function(done) { db.register_udf("udf", "integer", (x) => x+1); db.all("select udf(42::smallint) v", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, 43); }); db.unregister_udf("udf", done); @@ -185,7 +185,7 @@ describe('UDFs', function() { it('int', function(done) { db.register_udf("udf", "integer", (x) => x+1); db.all("select udf(42::integer) v", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, 43); }); db.unregister_udf("udf", done); @@ -194,7 +194,7 @@ describe('UDFs', function() { it('timestamp', function(done) { db.register_udf("udf", "timestamp", (x) => x); db.all("select udf(timestamp '1992-09-20 11:30:00') v", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); }); db.unregister_udf("udf", done); }); @@ -204,7 +204,7 @@ describe('UDFs', function() { return (a.x == null ? -100 : a.x); }); db.all("SELECT min(udf({'x': (case when v % 2 = 0 then v else null end)::INTEGER, 'y': 42}))::INTEGER as foo FROM generate_series(1, 10000) as t(v)", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].foo, -100); }); db.unregister_udf("udf", done); @@ -215,7 +215,7 @@ describe('UDFs', function() { return (a.x == null ? -100 : a.x.y); }); db.all("SELECT min(udf({'x': (case when v % 2 = 0 then {'y': v::INTEGER } else null end), 'z': 42}))::INTEGER as foo FROM generate_series(1, 10000) as t(v)", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].foo, -100); }); db.unregister_udf("udf", done); @@ -224,7 +224,7 @@ describe('UDFs', function() { it('blob', function(done) { db.register_udf("udf", "varchar", (buf: Buffer) => buf.toString("hex")); db.all("select udf('\\xAA\\xAB\\xAC'::BLOB) v", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); assert.equal(rows[0].v, "aaabac"); }); db.unregister_udf("udf", done); diff --git a/test/unicode.test.ts b/test/unicode.test.ts index 9a920520..f6c40e6c 100644 --- a/test/unicode.test.ts +++ b/test/unicode.test.ts @@ -86,7 +86,7 @@ describe('unicode', function() { const stmt = db.prepare("INSERT INTO foo VALUES(?, ?)"); for (let i = 0; i < data.length; i++) { stmt.run(i, data[i], function(err: null | Error) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); inserted++; }); } @@ -95,7 +95,7 @@ describe('unicode', function() { it('should retrieve all values', function(done) { db.all("SELECT txt FROM foo ORDER BY id", function(err: null | Error, rows: TableData) { - if (err) throw err; + if (err) done(new Error('Query failed unexpectedly')); for (let i = 0; i < rows.length; i++) { assert.equal(rows[i].txt, data[i]);