it('with http error returns error message', function(done) { var url = 'http://www.omdbapi.com/?s=Terminator&r=json&v=1'; var params = { query: 'Terminator' }; jsonHttp.getJson.withArgs(url).yields('timeout error', null); _shouldHaveErrorMessage( params, 'timeout error', done); });
it('with imdb error returns error message', function(done) { var url = 'http://www.omdbapi.com/?s=Alcatraz&r=json&v=1'; var response = { Error: 'message from imdb server' }; var params = { query: 'Alcatraz' }; jsonHttp.getJson.withArgs(url).yields(null, response); _shouldHaveErrorMessage( params, 'message from imdb server', done); });
it('with imdb data returns response data', function(done) { var url = 'http://www.omdbapi.com/?s=The%20Brain%20Terminator&r=json&v=1'; var response = { Title: 'The Brain Terminator', Year: '2012' }; var params = { query: 'The Brain Terminator' }; jsonHttp.getJson.withArgs(url).yields(null, response); omdbApi.search(params, function(err, data) { data.should.eql(response); done(); }); });
omdbApi.search(params, function() { jsonHttp.getJson.calledWith(url, 10000).should.equal(true); done(); });
afterEach(function() { jsonHttp.getJson.restore(); });
beforeEach(function() { sinon.stub(jsonHttp, 'getJson'); jsonHttp.getJson.yields(null, { title: 'film title' }); });
omdbApi.search(params, function() { jsonHttp.getJson .calledWith(expectedUrl) .should.equal(true); done(); });