diff --git a/lib/index.js b/lib/index.js
index 34967c4..ee830a2 100755
--- a/lib/index.js
+++ b/lib/index.js
@@ -43,22 +43,16 @@ function generateXML(data) {
let fullContent = '' + img + ' ' + item.title + '
' + menu + '' + item.content;
item_values.push({'turbo:content': {_cdata: fullContent}});
-
- let relatedLink = function(related) {
- return (
- '' +
- related.text +
- ''
- );
- };
- ifTruePush(item.related, item_values, {
- 'yandex:related': item.related.map(relatedLink).join('')
- });
+ if (typeof item.related !== "undefined") {
+ ifTruePush(item.related, item_values, {
+ 'yandex:related': item.related.map(
+ function (related) {
+ return '' + related.text + '';
+ }
+ ).join('')
+ });
+ }
channel.push({item: item_values});
});
diff --git a/test/expectedOutput/relatedItem.xml b/test/expectedOutput/relatedItem.xml
new file mode 100644
index 0000000..651e107
--- /dev/null
+++ b/test/expectedOutput/relatedItem.xml
@@ -0,0 +1 @@
+http://example.com/rss.xmlru- http://example.com/article4?this&thathttp://example.com/article4?this&thatSat, 26 May 2012 21:00:00 GMTLightAir
item title
hello
]]><link url="http://example.com/related/post1" img="http://example.com/i/img1.jpg">related link text 1</link><link url="http://example.com/related/post2" img="http://example.com/i/img2.jpg">related link text 2</link>
diff --git a/test/index.js b/test/index.js
index 136eaa8..0b5e815 100644
--- a/test/index.js
+++ b/test/index.js
@@ -1,27 +1,25 @@
// prova is a wrapper for tape
// use npm run test:browser to run tests in a browser
-var test = require('tape');
+const test = require('tape');
-var YTurbo = require('..');
+const YTurbo = require('..');
-var includeFolder = require('include-folder');
-var expectedOutput = includeFolder(__dirname + '/expectedOutput', /.*\.xml$/);
+const includeFolder = require('include-folder');
+const expectedOutput = includeFolder(__dirname + '/expectedOutput', /.*\.xml$/);
require('mockdate').set('Wed, 10 Dec 2014 19:04:57 GMT');
test('empty feed', function(t) {
t.plan(2);
- var feed = new YTurbo();
+ let feed = new YTurbo();
t.equal(feed.xml(), expectedOutput.default.trim());
feed.item();
t.equal(feed.xml(), expectedOutput.defaultOneItem.trim());
});
test('default item', function(t) {
-
t.plan(1);
-
- var feed = new YTurbo({
+ let feed = new YTurbo({
title: 'title',
description: 'description',
link: 'http://example.com/rss.xml',
@@ -32,3 +30,33 @@ test('default item', function(t) {
t.equal(feed.xml(), expectedOutput.defaultItem.trim());
});
+
+test('related item', function(t) {
+ t.plan(1);
+ let feed = new YTurbo({
+ title: 'title',
+ description: 'description',
+ link: 'http://example.com/rss.xml',
+ site_url: 'http://example.com'
+ });
+
+ feed.item({
+ title: 'item title',
+ image_url: 'http://example.com/example.png',
+ url: 'http://example.com/article4?this&that',
+ author: 'LightAir',
+ date: 'May 27, 2012',
+ content: '
hello
',
+ related: [{
+ link: 'http://example.com/related/post1',
+ image_url: 'http://example.com/i/img1.jpg',
+ text: 'related link text 1'
+ }, {
+ link: 'http://example.com/related/post2',
+ image_url: 'http://example.com/i/img2.jpg',
+ text: 'related link text 2'
+ }]
+ });
+
+ t.equal(feed.xml(), expectedOutput.relatedItem.trim());
+});