Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions lib/request.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,8 @@ export default async function requestAndResultsFormatter(options: OpenGraphScrap
throw new Error('408 Request Timeout');
case 410:
throw new Error('410 Gone');
case 429:
throw new Error('429 Too Many Requests');
case 500:
throw new Error('500 Internal Server Error');
case 502:
Expand Down
22 changes: 22 additions & 0 deletions tests/unit/openGraphScraper.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -505,6 +505,28 @@ describe('return ogs', function () {
});
});

it('when the request sends a 429 error', function () {
mockAgent.get('http://www.testerror.com')
.intercept({ path: '/' })
.reply(429, {
message: '429 Too Many Requests',
code: '429',
});

return ogs({ url: 'http://www.testerror.com' })
.then(function () {
expect('').to.be.eql('this should not happen');
})
.catch(function (data) {
expect(data.error).to.be.eql(true);
expect(data.result.error).to.eql('429 Too Many Requests');
expect(data.result.errorDetails.toString()).to.eql('Error: 429 Too Many Requests');
expect(data.result.success).to.eql(false);
expect(data.response).to.be.eql(undefined);
expect(data.html).to.be.eql(undefined);
});
});

it('when the request sends a general error', function () {
mockAgent.get('http://www.testerror.com')
.intercept({ path: '/' })
Expand Down
Loading