diff --git a/searchitunes.js b/searchitunes.js index 79bd05b..6ca9722 100644 --- a/searchitunes.js +++ b/searchitunes.js @@ -83,6 +83,11 @@ module.exports = async function SearchItunes ( { const res = await fetch( url, options ); const data = await res.json(); + // API error + if ( data.errorMessage ) { + throw new Error( `API: ${data.errorMessage}` ); + } + // Empty result if ( ! data.results || ! data.results.length ) { throw new Error( 'no results' ); diff --git a/test.js b/test.js index 5695a05..be48133 100644 --- a/test.js +++ b/test.js @@ -203,6 +203,28 @@ dotest.add( 'Default timeout', async test => { } ); +dotest.add( 'API error', async test => { + let error; + let data; + + try { + data = await app( { + id: 'error-test', + } ); + } + catch ( err ) { + error = err; + } + + test() + .isError( 'fail', 'error', error ) + .isRegexpMatch( 'fail', 'error.message', error?.message, /^API: .+/ ) + .isUndefined( 'fail', 'data', data ) + .done() + ; +} ); + + // Start the tests dotest.run();