From 9de18db7e11bd39527f1b5d1d039f17f85164728 Mon Sep 17 00:00:00 2001 From: isaacs Date: Tue, 13 Apr 2021 17:02:00 -0700 Subject: [PATCH] run smoke-test server with t.before --- smoke-tests/index.js | 6 +++--- smoke-tests/server.js | 31 +++++++++++++------------------ 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/smoke-tests/index.js b/smoke-tests/index.js index 1d352c62550db..d16f498725d73 100644 --- a/smoke-tests/index.js +++ b/smoke-tests/index.js @@ -16,9 +16,9 @@ t.cleanSnapshot = s => s.split(cwd).join('{CWD}') .replace(/^npm@.*\ /mg, 'npm ') // setup server -const registryServer = require('./server.js') -const { registry } = registryServer -t.test('setup server', { bail: true, buffered: false }, registryServer) +const { start, stop, registry } = require('./server.js') +t.before(start) +t.teardown(stop) // setup fixtures const path = t.testdir({ diff --git a/smoke-tests/server.js b/smoke-tests/server.js index 88cb5883da746..03aacb4b8c28a 100644 --- a/smoke-tests/server.js +++ b/smoke-tests/server.js @@ -14,8 +14,8 @@ let advisoryBulkResponse = null let failAdvisoryBulk = false let auditResponse = null let failAudit = false -const startServer = cb => { - const server = module.exports.server = http.createServer((req, res) => { +const startServer = () => new Promise((res, rej) => { + const server = exports.server = http.createServer((req, res) => { res.setHeader('connection', 'close') if (req.url === '/-/npm/v1/security/advisories/bulk') { @@ -226,15 +226,10 @@ const startServer = cb => { res.end(er.stack) } }) - server.listen(PORT, cb) -} - -module.exports = t => startServer(() => { - t.parent.teardown(() => module.exports.server.close()) - t.end() + server.listen(PORT, res) }) -module.exports.auditResponse = value => { +exports.auditResponse = value => { if (auditResponse && auditResponse !== value) { throw new Error('setting audit response, but already set\n' + '(did you forget to call the returned function on teardown?)') @@ -242,12 +237,12 @@ module.exports.auditResponse = value => { auditResponse = value return () => auditResponse = null } -module.exports.failAudit = () => { +exports.failAudit = () => { failAudit = true return () => failAudit = false } -module.exports.advisoryBulkResponse = value => { +exports.advisoryBulkResponse = value => { if (advisoryBulkResponse && advisoryBulkResponse !== value) { throw new Error('setting advisory bulk response, but already set\n' + '(did you forget to call the returned function on teardown?)') @@ -255,22 +250,22 @@ module.exports.advisoryBulkResponse = value => { advisoryBulkResponse = value return () => advisoryBulkResponse = null } -module.exports.failAdvisoryBulk = () => { +exports.failAdvisoryBulk = () => { failAdvisoryBulk = true return () => failAdvisoryBulk = false } -module.exports.registry = `http://localhost:${PORT}/` +exports.registry = `http://localhost:${PORT}/` -module.exports.start = startServer -module.exports.stop = () => module.exports.server.close() +exports.start = startServer +exports.stop = () => exports.server.close() if (require.main === module) { - startServer(() => { + startServer().then(() => { console.log(`Mock registry live at: - ${module.exports.registry} + ${exports.registry} Press ^D to close gracefully.`) }) process.openStdin() - process.stdin.on('end', () => module.exports.server.close()) + process.stdin.on('end', () => exports.stop()) }