diff --git a/index.js b/index.js index 76fe08e..599b0ef 100644 --- a/index.js +++ b/index.js @@ -337,3 +337,12 @@ prerender.set = function(name, value) { this[name] = value; return this; }; + +prerender.addUserAgents = function(newAgents) { + if (Array.isArray(newAgents)) { + this.crawlerUserAgents = this.crawlerUserAgents.concat(newAgents); + } else if (typeof newAgents === 'string') { + this.crawlerUserAgents.push(newAgents); + } + return this; +} diff --git a/package-lock.json b/package-lock.json index b752fe0..0995876 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "prerender-node", - "version": "3.8.0", + "version": "3.8.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "prerender-node", - "version": "3.8.0", + "version": "3.8.1", "license": "MIT", "devDependencies": { "mocha": "^6.2.0", diff --git a/package.json b/package.json index a92f2cb..7f3927a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "prerender-node", - "version": "3.8.0", + "version": "3.8.1", "description": "express middleware for serving prerendered javascript-rendered pages for SEO", "author": "Todd Hooper", "license": "MIT", diff --git a/test/index-spec.js b/test/index-spec.js index ca42bb6..8617ada 100644 --- a/test/index-spec.js +++ b/test/index-spec.js @@ -578,4 +578,25 @@ describe ('Prerender', function(){ }); }); + + describe('#addUserAgents', function() { + it('should add a single user agent', function() { + prerender.addUserAgents('NewBot/1.0'); + assert(prerender.crawlerUserAgents.includes('NewBot/1.0')); + }); + it('should add multiple user agents', function() { + prerender.addUserAgents(['BotOne/1.0', 'BotTwo/2.0']); + assert(prerender.crawlerUserAgents.includes('BotOne/1.0')); + assert(prerender.crawlerUserAgents.includes('BotTwo/2.0')); + }); + it('should not add duplicates', function() { + prerender.addUserAgents('NewBot/1.0'); + prerender.addUserAgents('NewBot/1.0'); + assert.equal(prerender.crawlerUserAgents.filter(agent => agent === 'NewBot/1.0').length, 1); + }); + it('should return the prerender instance', function() { + var result = prerender.addUserAgents('AnotherBot/1.0'); + assert.equal(result, prerender); + }); + }); });