diff --git a/.gitignore b/.gitignore index 21fcfdf..ec5c1be 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ node_modules/ -t.js +test/secrets.js diff --git a/test/test.js b/test/basic.js similarity index 100% rename from test/test.js rename to test/basic.js diff --git a/test/integration.js b/test/integration.js new file mode 100644 index 0000000..aa5a304 --- /dev/null +++ b/test/integration.js @@ -0,0 +1,137 @@ + +// Try to get an access key to run all this test. +// If the file doesn't exist or it doesn't contain an access key, it +// should still run the basic tests; thus throwing an exception must +// be avoided. +try{ + var accKey = require('./secrets').accKey; +} +catch(e){ console.log(e) } + +if(!accKey){ + return console.error("Need to include an access key in your secrets.js"); +} + + +var Bing = require('../')({ accKey: accKey}) + , should = require('should') + + +describe("Bing Search", function(){ + + this.timeout(1000 * 10); + + it('works without options', function(done){ + + Bing.search('nigger vs chink', function(err, res, body){ + + should.not.exist(err); + should.exist(res); + should.exist(body); + + body.d.results.should.have.length(50); + + //TODO check it contains the right fields + done(); + }); + }); + + it('finds only 5 results', function(done){ + Bing.search('nigger vs chink', function(err, res, body){ + + should.not.exist(err); + should.exist(res); + should.exist(body); + + body.d.results.should.have.length(5); + + done(); + }, + { + top: 5, + market: 'en-US', + adult: 'Strict' + }); + }); + +}); + + +describe("Bing Images", function(){ + + this.timeout(1000 * 10); + + it('finds images with specific options', function(done){ + Bing.images('pizza', + function(err, res, body){ + + should.not.exist(err); + should.exist(res); + should.exist(body); + + body.d.results.should.have.length(3); + + done(); + }, + { + top: 3, + adult: 'Off', + imagefilters: { size: 'small', color: 'monochrome' } + }); + }); + +}); + + +describe("Bing News", function(){ + + this.timeout(1000 * 10); + + it('finds news with specific options', function(done){ + + Bing.news('ps4', function(err, res, body){ + //TODO try unaccepted options like imagefilters + + should.not.exist(err); + should.exist(res); + should.exist(body); + + body.d.results.should.have.length(10); + + done(); + }, + { + top: 10, + skip: 1, + newsortby: 'Date' + }); + }); + +}); + + +describe("Bing Video", function(){ + + this.timeout(1000 * 10); + + it('finds videos with specific options', function(done){ + + Bing.video('monkey vs frog', function(err, res, body){ + + should.not.exist(err); + should.exist(res); + should.exist(body); + + body.d.results.should.have.length(10); + + //TODO try here unaccepted options like imagefilters + + done(); + }, + { + top: 10 + }); + }); + +}); + diff --git a/test/secrets.js.example b/test/secrets.js.example new file mode 100644 index 0000000..7aea5a4 --- /dev/null +++ b/test/secrets.js.example @@ -0,0 +1,4 @@ +module.exports = { + accKey: '' +}; +