parent
4ed15ddfc3
commit
ac12d5891a
5 changed files with 0 additions and 0 deletions
86
test/tests/searchTest.js
Normal file
86
test/tests/searchTest.js
Normal file
|
@ -0,0 +1,86 @@
|
|||
describe("Zotero.Search", function() {
|
||||
describe("#save()", function () {
|
||||
it("should fail without a name", function* () {
|
||||
var s = new Zotero.Search;
|
||||
s.addCondition('title', 'is', 'test');
|
||||
var e = yield getPromiseError(s.saveTx());
|
||||
assert.ok(e);
|
||||
assert.equal(e.constructor.name, Error.prototype.constructor.name); // TEMP: Error mismatch
|
||||
assert.equal(e.message, "Name not provided for saved search");
|
||||
});
|
||||
|
||||
it("should save a new search", function* () {
|
||||
// Save search
|
||||
var s = new Zotero.Search;
|
||||
s.name = "Test";
|
||||
s.addCondition('title', 'is', 'test');
|
||||
var id = yield s.saveTx();
|
||||
assert.typeOf(id, 'number');
|
||||
|
||||
// Check saved search
|
||||
s = yield Zotero.Searches.getAsync(id);
|
||||
assert.ok(s);
|
||||
assert.instanceOf(s, Zotero.Search);
|
||||
assert.equal(s.libraryID, Zotero.Libraries.userLibraryID);
|
||||
assert.equal(s.name, "Test");
|
||||
yield s.loadConditions();
|
||||
var conditions = s.getConditions();
|
||||
assert.lengthOf(Object.keys(conditions), 1);
|
||||
assert.property(conditions, "0");
|
||||
var condition = conditions[0];
|
||||
assert.propertyVal(condition, 'condition', 'title')
|
||||
assert.propertyVal(condition, 'operator', 'is')
|
||||
assert.propertyVal(condition, 'value', 'test')
|
||||
assert.propertyVal(condition, 'required', false)
|
||||
});
|
||||
|
||||
it("should add a condition to an existing search", function* () {
|
||||
// Save search
|
||||
var s = new Zotero.Search;
|
||||
s.libraryID = Zotero.Libraries.userLibraryID;
|
||||
s.name = "Test";
|
||||
s.addCondition('title', 'is', 'test');
|
||||
var id = yield s.saveTx();
|
||||
assert.typeOf(id, 'number');
|
||||
|
||||
// Add condition
|
||||
s = yield Zotero.Searches.getAsync(id);
|
||||
yield s.loadConditions();
|
||||
s.addCondition('title', 'contains', 'foo');
|
||||
var saved = yield s.saveTx();
|
||||
assert.isTrue(saved);
|
||||
|
||||
// Check saved search
|
||||
s = yield Zotero.Searches.getAsync(id);
|
||||
yield s.loadConditions();
|
||||
var conditions = s.getConditions();
|
||||
assert.lengthOf(Object.keys(conditions), 2);
|
||||
});
|
||||
|
||||
it("should remove a condition from an existing search", function* () {
|
||||
// Save search
|
||||
var s = new Zotero.Search;
|
||||
s.libraryID = Zotero.Libraries.userLibraryID;
|
||||
s.name = "Test";
|
||||
s.addCondition('title', 'is', 'test');
|
||||
s.addCondition('title', 'contains', 'foo');
|
||||
var id = yield s.saveTx();
|
||||
assert.typeOf(id, 'number');
|
||||
|
||||
// Remove condition
|
||||
s = yield Zotero.Searches.getAsync(id);
|
||||
yield s.loadConditions();
|
||||
s.removeCondition(0);
|
||||
var saved = yield s.saveTx();
|
||||
assert.isTrue(saved);
|
||||
|
||||
// Check saved search
|
||||
s = yield Zotero.Searches.getAsync(id);
|
||||
yield s.loadConditions();
|
||||
var conditions = s.getConditions();
|
||||
assert.lengthOf(Object.keys(conditions), 1);
|
||||
assert.property(conditions, "0");
|
||||
assert.propertyVal(conditions[0], 'value', 'foo')
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue