rss-braider/test/index.js

158 lines
5.0 KiB
JavaScript
Raw Normal View History

var test = require('tape'),
2014-12-26 22:47:48 +00:00
RssBraider = require('../index'),
includeFolder = require('include-folder'),
expectedOutput = includeFolder(__dirname + '/expected_output', /.*\.xml$/);
// lastBuildDate will always be this value
var mockdate = require('mockdate').set('Wed, 31 Dec 2014 00:00:01 GMT');
2015-06-11 21:52:38 +00:00
test('generate feed. No plugins', function(t) {
2014-12-26 22:47:48 +00:00
t.plan(1);
var feeds = {};
feeds.sample_feed = require("./feeds/sample_feed").feed;
2014-12-26 22:47:48 +00:00
var braider_options = {
2015-01-29 00:53:54 +00:00
feeds : feeds,
indent : " ",
date_sort_order : "desc"
2014-12-26 22:47:48 +00:00
};
var rss_braider = RssBraider.createClient(braider_options);
rss_braider.processFeed('sample_feed', 'rss', function(err, data){
if (err) {
2014-12-26 23:37:34 +00:00
return t.fail(err);
2014-12-26 22:47:48 +00:00
}
2015-01-29 00:53:54 +00:00
// console.log(data);
t.equal(data, expectedOutput.fileFeedOutput);
});
});
2015-06-11 21:52:38 +00:00
test('generate feed and process through plugins', function(t) {
2015-01-31 00:15:30 +00:00
t.plan(1);
var feeds = {};
feeds.sample_feed = require("./feeds/sample_feed_plugins").feed;
2015-01-31 00:15:30 +00:00
var braider_options = {
feeds : feeds,
indent : " ",
date_sort_order : "desc",
plugins_directories : [__dirname + '/../examples/plugins/']
2015-01-31 00:15:30 +00:00
};
var rss_braider = RssBraider.createClient(braider_options);
rss_braider.processFeed('sample_feed', 'rss', function(err, data){
if (err) {
return t.fail(err);
}
// console.log(data);
t.equal(data, expectedOutput.fileFeedOutputPlugins);
});
});
2015-06-11 21:52:38 +00:00
test('de-duplicate feed', function(t) {
2015-01-29 00:53:54 +00:00
t.plan(1);
var feeds = {};
feeds.sample_feed = require("./feeds/sample_feed_duplicates").feed;
2015-01-29 00:53:54 +00:00
var braider_options = {
feeds : feeds,
indent : " ",
dedupe_fields : ["title", "guid"],
plugins_directories : [__dirname + '/../examples/plugins/']
2015-01-29 00:53:54 +00:00
};
var rss_braider = RssBraider.createClient(braider_options);
2015-06-12 19:52:55 +00:00
rss_braider.logger.level('info');
2015-01-29 00:53:54 +00:00
rss_braider.processFeed('sample_feed', 'rss', function(err, data){
if (err) {
return t.fail(err);
}
// console.log(data);
2015-01-31 00:15:30 +00:00
t.equal(data, expectedOutput.fileFeedOutputPlugins);
2014-12-26 22:47:48 +00:00
});
});
2015-06-11 21:52:38 +00:00
test('sort feed articles by date descending', function(t) {
t.plan(1);
var feeds = {};
feeds.sample_feed = require("./feeds/date_sort").feed;
var braider_options = {
feeds : feeds,
indent : " ",
date_sort_order : "desc",
plugins_directories : [__dirname + '/../examples/plugins/']
};
var rss_braider = RssBraider.createClient(braider_options);
rss_braider.processFeed('sample_feed', 'rss', function(err, data){
if (err) {
return t.fail(err);
}
// console.log(data);
t.equal(data, expectedOutput.dateDescOutput);
});
});
2015-06-11 21:52:38 +00:00
test('sort feed articles by date ascending', function(t) {
t.plan(1);
var feeds = {};
feeds.sample_feed = require("./feeds/date_sort").feed;
var braider_options = {
feeds : feeds,
indent : " ",
date_sort_order : "asc",
plugins_directories : [__dirname + '/../examples/plugins/']
};
var rss_braider = RssBraider.createClient(braider_options);
rss_braider.processFeed('sample_feed', 'rss', function(err, data){
if (err) {
return t.fail(err);
}
// console.log(data);
t.equal(data, expectedOutput.dateAscOutput);
});
});
test('filter all articles out using plugin', function(t) {
t.plan(1);
var feeds = {};
feeds.sample_feed = require("./feeds/no_elements").feed;
var braider_options = {
feeds : feeds,
indent : " ",
date_sort_order : "asc",
plugins_directories : [__dirname + '/../examples/plugins/']
};
var rss_braider = RssBraider.createClient(braider_options);
2015-06-11 22:48:13 +00:00
rss_braider.logger.level('info');
rss_braider.processFeed('sample_feed', 'rss', function(err, data){
if (err) {
return t.fail(err);
}
2015-06-11 21:52:38 +00:00
// console.log(data);
t.equal(data, expectedOutput.emptyFeed);
});
2015-06-12 18:42:27 +00:00
});
test("Don't break when a filter fails and returns null", function(t) {
t.plan(1);
var feeds = {};
feeds.sample_feed = require("./feeds/sample_feed_bad_plugin").feed;
var braider_options = {
feeds : feeds,
indent : " ",
date_sort_order : "asc",
plugins_directories : [__dirname + '/../examples/plugins/']
};
var rss_braider = RssBraider.createClient(braider_options);
rss_braider.logger.level('info');
rss_braider.processFeed('sample_feed', 'rss', function(err, data){
if (err) {
return t.fail(err);
}
// console.log(data);
t.equal(data, expectedOutput.fileFeedBadPlugin);
});
});