diff --git a/packages/metascraper-audio/package.json b/packages/metascraper-audio/package.json index 903936e6b..7488e36a1 100644 --- a/packages/metascraper-audio/package.json +++ b/packages/metascraper-audio/package.json @@ -40,5 +40,11 @@ "scripts": { "test": "NODE_PATH=.. TZ=UTC ava --timeout 15s" }, - "license": "MIT" + "license": "MIT", + "ava": { + "files": [ + "test/**/*.js", + "!test/helpers.js" + ] + } } diff --git a/packages/metascraper-audio/test/helpers.js b/packages/metascraper-audio/test/helpers.js new file mode 100644 index 000000000..f8e39b93b --- /dev/null +++ b/packages/metascraper-audio/test/helpers.js @@ -0,0 +1,24 @@ +'use strict' + +const { default: listen } = require('async-listen') +const { createServer } = require('http') + +const closeServer = server => + require('util').promisify(server.close.bind(server))() + +const runServer = async (t, handler, opts) => { + const server = createServer(async (req, res) => { + try { + await handler({ req, res }) + } catch (error) { + console.error(error) + res.statusCode = 500 + res.end() + } + }) + const url = await listen(server, { port: 0, host: '0.0.0.0', ...opts }) + t.teardown(() => closeServer(server)) + return url.toString() +} + +module.exports = { runServer } diff --git a/packages/metascraper-audio/test/iframe.js b/packages/metascraper-audio/test/iframe.js index 88678a4d8..9418d8259 100644 --- a/packages/metascraper-audio/test/iframe.js +++ b/packages/metascraper-audio/test/iframe.js @@ -1,25 +1,19 @@ 'use strict' -const { default: listen } = require('async-listen') -const { createServer } = require('http') const test = require('ava') -const closeServer = server => - require('util').promisify(server.close.bind(server))() +const { runServer } = require('./helpers') const createMetascraper = (...args) => require('metascraper')([require('../src')(...args)]) test('absolute http', async t => { - const server = createServer((_, res) => { + const url = await runServer(t, ({ res }) => { res.setHeader('Content-Type', 'text/html') res.end( '' ) }) - - t.teardown(() => closeServer(server)) - const url = (await listen(server, { port: 0, host: '0.0.0.0' })).toString() const html = `