Throw an error if item type isn't set when saving
And add a test for throwing from setField(), which already happens.
This commit is contained in:
parent
7879e5432a
commit
26e1372f46
|
@ -781,7 +781,7 @@ Zotero.Item.prototype.setField = function(field, value, loadIn) {
|
||||||
|
|
||||||
let itemTypeID = this.itemTypeID;
|
let itemTypeID = this.itemTypeID;
|
||||||
if (!itemTypeID) {
|
if (!itemTypeID) {
|
||||||
throw ('Item type must be set before setting field data');
|
throw new Error('Item type must be set before setting field data');
|
||||||
}
|
}
|
||||||
|
|
||||||
var fieldID = Zotero.ItemFields.getID(field);
|
var fieldID = Zotero.ItemFields.getID(field);
|
||||||
|
@ -1173,6 +1173,9 @@ Zotero.Item.prototype._saveData = Zotero.Promise.coroutine(function* (env) {
|
||||||
var options = env.options;
|
var options = env.options;
|
||||||
|
|
||||||
var itemTypeID = this.itemTypeID;
|
var itemTypeID = this.itemTypeID;
|
||||||
|
if (!itemTypeID) {
|
||||||
|
throw new Error("Item type must be set before saving");
|
||||||
|
}
|
||||||
|
|
||||||
var sqlColumns = [];
|
var sqlColumns = [];
|
||||||
var sqlValues = [];
|
var sqlValues = [];
|
||||||
|
|
|
@ -19,6 +19,11 @@ describe("Zotero.Item", function () {
|
||||||
});
|
});
|
||||||
|
|
||||||
describe("#setField", function () {
|
describe("#setField", function () {
|
||||||
|
it("should throw an error if item type isn't set", function* () {
|
||||||
|
var item = new Zotero.Item;
|
||||||
|
assert.throws(item.setField.bind(item, 'title', 'test'), "Item type must be set before setting field data");
|
||||||
|
})
|
||||||
|
|
||||||
it("should mark a field as changed", function () {
|
it("should mark a field as changed", function () {
|
||||||
var item = new Zotero.Item('book');
|
var item = new Zotero.Item('book');
|
||||||
item.setField('title', 'Foo');
|
item.setField('title', 'Foo');
|
||||||
|
|
Loading…
Reference in New Issue
Block a user