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()); + }) + }) +})