mirror of
https://gitlab.com/Binaryify/neteasecloudmusicapi.git
synced 2025-05-23 22:37:41 +08:00
test(server): more reliable test for server
This commit is contained in:
parent
4e434a2691
commit
9e0c900f6f
15
app.test.js
15
app.test.js
@ -1,15 +0,0 @@
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
|
||||
let app
|
||||
before(() => {
|
||||
app = require('./app.js')
|
||||
global.host = 'http://localhost:' + app.server.address().port
|
||||
})
|
||||
after((done) => {
|
||||
app.server.close(done)
|
||||
})
|
||||
|
||||
fs.readdirSync(path.join(__dirname, 'test')).forEach((file) => {
|
||||
require(path.join(__dirname, 'test', file))
|
||||
})
|
13
package-lock.json
generated
13
package-lock.json
generated
@ -26,6 +26,7 @@
|
||||
"devDependencies": {
|
||||
"@types/express": "^4.17.13",
|
||||
"@types/express-fileupload": "^1.2.2",
|
||||
"@types/mocha": "^9.1.0",
|
||||
"@types/node": "16.11.19",
|
||||
"@typescript-eslint/eslint-plugin": "5.0.0",
|
||||
"@typescript-eslint/parser": "5.0.0",
|
||||
@ -266,6 +267,12 @@
|
||||
"integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/mocha": {
|
||||
"version": "9.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.0.tgz",
|
||||
"integrity": "sha512-QCWHkbMv4Y5U9oW10Uxbr45qMMSzl4OzijsozynUAgx3kEHUdXB00udx2dWDQ7f2TU2a2uuiFaRZjCe3unPpeg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "16.11.19",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.19.tgz",
|
||||
@ -5941,6 +5948,12 @@
|
||||
"integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/mocha": {
|
||||
"version": "9.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.1.0.tgz",
|
||||
"integrity": "sha512-QCWHkbMv4Y5U9oW10Uxbr45qMMSzl4OzijsozynUAgx3kEHUdXB00udx2dWDQ7f2TU2a2uuiFaRZjCe3unPpeg==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "16.11.19",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.19.tgz",
|
||||
|
@ -4,7 +4,7 @@
|
||||
"description": "网易云音乐 NodeJS 版 API",
|
||||
"scripts": {
|
||||
"start": "node app.js",
|
||||
"test": "mocha -r intelli-espower-loader -t 20000 app.test.js --exit",
|
||||
"test": "mocha -r intelli-espower-loader -t 20000 server.test.js --exit",
|
||||
"lint": "eslint \"**/*.{js,ts}\"",
|
||||
"lint-fix": "eslint --fix \"**/*.{js,ts}\"",
|
||||
"prepare": "husky install",
|
||||
@ -58,6 +58,7 @@
|
||||
"devDependencies": {
|
||||
"@types/express": "^4.17.13",
|
||||
"@types/express-fileupload": "^1.2.2",
|
||||
"@types/mocha": "^9.1.0",
|
||||
"@types/node": "16.11.19",
|
||||
"@typescript-eslint/eslint-plugin": "5.0.0",
|
||||
"@typescript-eslint/parser": "5.0.0",
|
||||
|
33
server.test.js
Normal file
33
server.test.js
Normal file
@ -0,0 +1,33 @@
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const serverMod = require('./server')
|
||||
|
||||
/** @type {import("express").Express & serverMod.ExpressExtension} */
|
||||
let app
|
||||
|
||||
before(async () => {
|
||||
app = await serverMod.serveNcmApi({})
|
||||
|
||||
if (app.server && app.server.address) {
|
||||
const addr = app.server.address()
|
||||
if (addr && typeof addr === 'object' && 'port' in addr) {
|
||||
global.host = `http://localhost:${addr.port}`
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
throw new Error('failed to set up host')
|
||||
})
|
||||
|
||||
after((done) => {
|
||||
if (app.server) {
|
||||
app.server.close(done)
|
||||
return
|
||||
}
|
||||
|
||||
throw new Error('failed to set up server')
|
||||
})
|
||||
|
||||
fs.readdirSync(path.join(__dirname, 'test')).forEach((file) => {
|
||||
require(path.join(__dirname, 'test', file))
|
||||
})
|
Loading…
x
Reference in New Issue
Block a user