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 = `