Use variables for temp table names in DB tests

This commit is contained in:
Dan Stillman 2015-04-26 17:45:45 -04:00
parent 0471a393eb
commit ba9adffa68

View File

@ -1,33 +1,35 @@
describe("Zotero.DB", function() { describe("Zotero.DB", function() {
describe("#executeTransaction()", function () { describe("#executeTransaction()", function () {
it("should roll back on error", function* () { it("should roll back on error", function* () {
yield Zotero.DB.queryAsync("CREATE TABLE tmpRollbackOnError (foo INT)"); var tmpTable = "tmpRollbackOnError";
yield Zotero.DB.queryAsync("INSERT INTO tmpRollbackOnError VALUES (1)"); yield Zotero.DB.queryAsync("CREATE TABLE " + tmpTable + " (foo INT)");
yield Zotero.DB.queryAsync("INSERT INTO " + tmpTable + " VALUES (1)");
try { try {
yield Zotero.DB.executeTransaction(function* () { yield Zotero.DB.executeTransaction(function* () {
yield Zotero.DB.queryAsync("INSERT INTO tmpRollbackOnError VALUES (2)"); yield Zotero.DB.queryAsync("INSERT INTO " + tmpTable + " VALUES (2)");
throw 'Aborting transaction -- ignore'; throw 'Aborting transaction -- ignore';
}); });
} }
catch (e) { catch (e) {
if (typeof e != 'string' || !e.startsWith('Aborting transaction')) throw e; if (typeof e != 'string' || !e.startsWith('Aborting transaction')) throw e;
} }
var count = yield Zotero.DB.valueQueryAsync("SELECT COUNT(*) FROM tmpRollbackOnError"); var count = yield Zotero.DB.valueQueryAsync("SELECT COUNT(*) FROM " + tmpTable + "");
assert.equal(count, 1); assert.equal(count, 1);
var conn = yield Zotero.DB._getConnectionAsync(); var conn = yield Zotero.DB._getConnectionAsync();
assert.isFalse(conn.transactionInProgress); assert.isFalse(conn.transactionInProgress);
yield Zotero.DB.queryAsync("DROP TABLE tmpRollbackOnError"); yield Zotero.DB.queryAsync("DROP TABLE " + tmpTable);
}); });
it("should run onRollback callbacks", function* () { it("should run onRollback callbacks", function* () {
var tmpTable = "tmpOnRollback";
var callbackRan = false; var callbackRan = false;
yield Zotero.DB.queryAsync("CREATE TABLE tmpOnRollback (foo INT)"); yield Zotero.DB.queryAsync("CREATE TABLE " + tmpTable + " (foo INT)");
try { try {
yield Zotero.DB.executeTransaction( yield Zotero.DB.executeTransaction(
function* () { function* () {
yield Zotero.DB.queryAsync("INSERT INTO tmpOnRollback VALUES (1)"); yield Zotero.DB.queryAsync("INSERT INTO " + tmpTable + " VALUES (1)");
throw 'Aborting transaction -- ignore'; throw 'Aborting transaction -- ignore';
}, },
{ {
@ -42,19 +44,20 @@ describe("Zotero.DB", function() {
} }
assert.ok(callbackRan); assert.ok(callbackRan);
yield Zotero.DB.queryAsync("DROP TABLE tmpOnRollback"); yield Zotero.DB.queryAsync("DROP TABLE " + tmpTable);
}); });
it("should run onRollback callbacks for nested transactions", function* () { it("should run onRollback callbacks for nested transactions", function* () {
var tmpTable = "tmpOnNestedRollback";
var callback1Ran = false; var callback1Ran = false;
var callback2Ran = false; var callback2Ran = false;
yield Zotero.DB.queryAsync("CREATE TABLE tmpOnNestedRollback (foo INT)"); yield Zotero.DB.queryAsync("CREATE TABLE " + tmpTable + " (foo INT)");
try { try {
yield Zotero.DB.executeTransaction(function* () { yield Zotero.DB.executeTransaction(function* () {
yield Zotero.DB.queryAsync("INSERT INTO tmpOnNestedRollback VALUES (1)"); yield Zotero.DB.queryAsync("INSERT INTO " + tmpTable + " VALUES (1)");
yield Zotero.DB.executeTransaction( yield Zotero.DB.executeTransaction(
function* () { function* () {
yield Zotero.DB.queryAsync("INSERT INTO tmpOnNestedRollback VALUES (2)"); yield Zotero.DB.queryAsync("INSERT INTO " + tmpTable + " VALUES (2)");
throw 'Aborting transaction -- ignore'; throw 'Aborting transaction -- ignore';
}, },
@ -77,7 +80,7 @@ describe("Zotero.DB", function() {
assert.ok(callback1Ran); assert.ok(callback1Ran);
assert.ok(callback2Ran); assert.ok(callback2Ran);
yield Zotero.DB.queryAsync("DROP TABLE tmpOnNestedRollback"); yield Zotero.DB.queryAsync("DROP TABLE " + tmpTable);
}); });
}) })
}); });