From eb89b4ed129d3475d61e24d0f808ddde2d7419e9 Mon Sep 17 00:00:00 2001 From: Dan Stillman Date: Fri, 8 Jan 2016 03:31:43 -0500 Subject: [PATCH] Test for DB integrity check --- test/tests/schemaTest.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 test/tests/schemaTest.js diff --git a/test/tests/schemaTest.js b/test/tests/schemaTest.js new file mode 100644 index 000000000..dc1dcfcb3 --- /dev/null +++ b/test/tests/schemaTest.js @@ -0,0 +1,22 @@ +describe("Zotero.Schema", function() { + describe("#integrityCheck()", function () { + before(function* () { + yield resetDB({ + thisArg: this, + skipBundledFiles: true + }); + }) + + it("should repair a foreign key violation", function* () { + yield assert.eventually.isTrue(Zotero.Schema.integrityCheck()); + + yield Zotero.DB.queryAsync("PRAGMA foreign_keys = OFF"); + yield Zotero.DB.queryAsync("INSERT INTO itemTags VALUES (1234,1234,0)"); + yield Zotero.DB.queryAsync("PRAGMA foreign_keys = ON"); + + yield assert.eventually.isFalse(Zotero.Schema.integrityCheck()); + yield assert.eventually.isTrue(Zotero.Schema.integrityCheck(true)); + yield assert.eventually.isTrue(Zotero.Schema.integrityCheck()); + }) + }) +})