From 2a41a2d24675b8764ec4deac3060fc2b8a3e3923 Mon Sep 17 00:00:00 2001 From: Frank Cash Date: Sat, 26 Oct 2019 12:33:06 -0700 Subject: [PATCH] Wrapper to ensure {Crawls: []} --- helpers/index.js | 6 +++++- routes/hackernews.js | 4 ++-- routes/lobsters.js | 6 +++--- routes/reddit.js | 4 ++-- test/metadata_wrapper.test.js | 11 +++++++++++ 5 files changed, 23 insertions(+), 8 deletions(-) create mode 100644 test/metadata_wrapper.test.js diff --git a/helpers/index.js b/helpers/index.js index 0f0e9fb..216f827 100644 --- a/helpers/index.js +++ b/helpers/index.js @@ -3,4 +3,8 @@ exports.url_refer = (url)=>{ return url+="?utm_source=hackerqueue" } return url -}; \ No newline at end of file +}; + +exports.wrap = (arr)=>{ + return {Crawls: arr} +} diff --git a/routes/hackernews.js b/routes/hackernews.js index 35ed95b..4cccb9e 100644 --- a/routes/hackernews.js +++ b/routes/hackernews.js @@ -39,7 +39,7 @@ function parse(html){ exports.htop = function(req,res){ request('https://news.ycombinator.com', function(error, response, html){ if(!error && response.statusCode === 200){ - res.send({Crawls: parse(html, "news.ycombinator.com")}); + res.send(helpers.wrap(parse(html, "news.ycombinator.com"))); } }); @@ -48,7 +48,7 @@ exports.htop = function(req,res){ exports.hnew = function(req,res){ request('https://news.ycombinator.com/newest', function(error, response, html){ if(!error && response.statusCode === 200){ - res.send({Crawls: parse(html, "news.ycombinator.com/newest")}); + res.send(helpers.wrap(parse(html, "news.ycombinator.com/newest"))); } }); diff --git a/routes/lobsters.js b/routes/lobsters.js index b6f5e98..e1deab0 100644 --- a/routes/lobsters.js +++ b/routes/lobsters.js @@ -90,8 +90,8 @@ const parseLobsterResponse = function(html) { exports.ltop = function(req, res){ request('https://lobste.rs', function(error, response, html){ if(!error && response.statusCode === 200){ - let metadataArray = parseLobsterResponse(html); - res.send({Crawls: metadataArray}); + const metadataArray = parseLobsterResponse(html); + res.send(helpers.wrap(metadataArray)); } }); }; @@ -100,7 +100,7 @@ exports.lnew = function(req, res){ request('https://lobste.rs/recent', function(error, response, html){ if(!error && response.statusCode === 200){ const metadataArray = parseLobsterResponse(html); - res.send({Crawls: metadataArray}); + res.send(helpers.wrap(metadataArray)); } }); }; diff --git a/routes/reddit.js b/routes/reddit.js index b2c4319..c49b50b 100644 --- a/routes/reddit.js +++ b/routes/reddit.js @@ -54,7 +54,7 @@ function parse(html, source){ exports.rtop = function(req,res){ request('http://www.reddit.com/r/programming', function(error, response, html){ if(!error && response.statusCode === 200){ - res.send({Crawls: parse(html, "reddit.com/r/programming")}); + res.send(helpers.wrap(parse(html, "reddit.com/r/programming"))); } }); }; @@ -63,7 +63,7 @@ exports.rtop = function(req,res){ exports.rnew = function(req,res){ request('http://www.reddit.com/r/programming/new/', function(error, response, html){ if(!error && response.statusCode === 200){ - res.send({Crawls: parse(html, "reddit.com/r/programming/new")}); + res.send(helpers.wrap(parse(html, "reddit.com/r/programming/new"))); } }); }; diff --git a/test/metadata_wrapper.test.js b/test/metadata_wrapper.test.js new file mode 100644 index 0000000..9b501b0 --- /dev/null +++ b/test/metadata_wrapper.test.js @@ -0,0 +1,11 @@ +const assert = require('assert'); +const helpers = require('../helpers'); + +describe('MetaData Array Modification', ()=>{ + describe("Wrapper", ()=>{ + it("Shuld return a JSON object instead of an Array", function(){ + const res = helpers.wrap([{url: "localhost:3000"}]) + assert.equal(res.Crawls.length, 1) + }); + }); +})