Skip to content

Commit 1dd38e2

Browse files
committed
Fix itemFromCSLJSON throwing when Presentation has no event-place
Regression 6b4d04f
1 parent 6b4d04f commit 1dd38e2

2 files changed

Lines changed: 15 additions & 1 deletion

File tree

test/tests/utilities_itemTest.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,20 @@ describe("Zotero.Utilities.Item", function () {
8888

8989
assert.propertyVal(item, 'place', place);
9090
});
91+
92+
it("should not set Place to undefined for Presentation item without `event-place`", function () {
93+
let data = loadSampleData('citeProcJSExport');
94+
var json = Object.assign({}, data.presentation);
95+
delete json['event-place'];
96+
assert.notProperty(json, 'event-place');
97+
assert.notProperty(json, 'publisher-place');
98+
99+
let item = newItem();
100+
assert.doesNotThrow(
101+
() => Zotero.Utilities.Item.itemFromCSLJSON(item, json)
102+
);
103+
assert.notProperty(item, 'place');
104+
});
91105
});
92106

93107
describe("itemToCSLJSON", function () {

utilities_item.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ var Utilities_Item = {
308308
let eventPlaceTypes = [
309309
'audioRecording', 'presentation', 'videoRecording'
310310
];
311-
if (eventPlaceTypes.includes(item.itemType)) {
311+
if (eventPlaceTypes.includes(item.itemType) && cslItem['event-place'] !== undefined) {
312312
cslItem['publisher-place'] = cslItem['event-place'];
313313
delete cslItem['event-place'];
314314
}

0 commit comments

Comments
 (0)