www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

schemaTest.js (1685B)


      1 describe("Zotero.Schema", function() {
      2 	describe("#initializeSchema()", function () {
      3 		it("should set last client version", function* () {
      4 			yield resetDB({
      5 				thisArg: this,
      6 				skipBundledFiles: true
      7 			});
      8 			
      9 			var sql = "SELECT value FROM settings WHERE setting='client' AND key='lastVersion'";
     10 			var lastVersion = yield Zotero.DB.valueQueryAsync(sql);
     11 			yield assert.eventually.equal(Zotero.DB.valueQueryAsync(sql), Zotero.version);
     12 		});
     13 	});
     14 	
     15 	describe("#updateSchema()", function () {
     16 		it("should set last client version", function* () {
     17 			var sql = "REPLACE INTO settings (setting, key, value) VALUES ('client', 'lastVersion', ?)";
     18 			return Zotero.DB.queryAsync(sql, "5.0old");
     19 			
     20 			yield Zotero.Schema.updateSchema();
     21 			
     22 			var sql = "SELECT value FROM settings WHERE setting='client' AND key='lastVersion'";
     23 			var lastVersion = yield Zotero.DB.valueQueryAsync(sql);
     24 			yield assert.eventually.equal(Zotero.DB.valueQueryAsync(sql), Zotero.version);
     25 		});
     26 	});
     27 	
     28 	describe("#integrityCheck()", function () {
     29 		before(function* () {
     30 			yield resetDB({
     31 				thisArg: this,
     32 				skipBundledFiles: true
     33 			});
     34 		})
     35 		
     36 		it("should repair a foreign key violation", function* () {
     37 			yield assert.eventually.isTrue(Zotero.Schema.integrityCheck());
     38 			
     39 			yield Zotero.DB.queryAsync("PRAGMA foreign_keys = OFF");
     40 			yield Zotero.DB.queryAsync("INSERT INTO itemTags VALUES (1234,1234,0)");
     41 			yield Zotero.DB.queryAsync("PRAGMA foreign_keys = ON");
     42 			
     43 			yield assert.eventually.isFalse(Zotero.Schema.integrityCheck());
     44 			yield assert.eventually.isTrue(Zotero.Schema.integrityCheck(true));
     45 			yield assert.eventually.isTrue(Zotero.Schema.integrityCheck());
     46 		})
     47 	})
     48 })