Skip to content

Commit 553ade9

Browse files
author
Ubuntu
committed
add missing-fields test
1 parent 299ad58 commit 553ade9

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

index.js

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -37,23 +37,21 @@ var getContent = function(content) {
3737
var parseAtomFeed = function(xmlObj, callback) {
3838
var feed = xmlObj.feed;
3939
var json = {feed: {entries: []}};
40-
if (feed.link[0] && feed.link[0].$.href) {
41-
json.feed.link = feed.link[0].$.href;
40+
if (feed.link) {
41+
if (feed.link[0] && feed.link[0].$.href) json.feed.link = feed.link[0].$.href;
42+
if (feed.link[1] && feed.link[1].$.href) json.feed.feedUrl = feed.link[1].$.href;
4243
}
43-
if (feed.link[1] && feed.link[1].$.href) {
44-
json.feed.feedUrl = feed.link[1].$.href;
45-
}
46-
if (feed.title[0]) {
47-
json.feed.title = feed.title[0];
44+
if (feed.title) {
45+
if (feed.title[0]) json.feed.title = feed.title[0];
4846
}
4947
var entries = feed.entry;
5048
(entries || []).forEach(function (entry) {
5149
var item = {};
52-
if (entry.title) item.title = entry.title[0];
53-
if (entry.link) item.link = entry.link[0].$.href;
54-
if (entry.updated) item.pubDate = new Date(entry.updated[0]).toISOString();
55-
if (entry.author) item.author = entry.author[0].name[0];
56-
if (entry.content) {
50+
if (entry.title && entry.title.length) item.title = entry.title[0];
51+
if (entry.link && entry.link.length) item.link = entry.link[0].$.href;
52+
if (entry.updated && entry.updated.length) item.pubDate = new Date(entry.updated[0]).toISOString();
53+
if (entry.author && entry.author.length) item.author = entry.author[0].name[0];
54+
if (entry.content && entry.content.length) {
5755
item.content = getContent(entry.content[0]);
5856
item.contentSnippet = getSnippet(item.content)
5957
}

test/parser.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,8 @@ describe('Parser', function() {
4747
it('should parse reddits new feed', function(done) {
4848
testParseForFile('reddit-home', 'rss', done);
4949
})
50+
51+
it('should parse with missing fields', function(done) {
52+
testParseForFile('missing-fields', 'atom', done)
53+
})
5054
})

0 commit comments

Comments
 (0)