server.test.js 998 B

12345678910111213141516171819202122232425262728293031323334353637
  1. const fs = require('fs')
  2. const path = require('path')
  3. const tmpPath = require('os').tmpdir()
  4. /** @type {import("express").Express & serverMod.ExpressExtension} */
  5. let app
  6. if (!fs.existsSync(path.resolve(tmpPath, 'anonymous_token'))) {
  7. fs.writeFileSync(path.resolve(tmpPath, 'anonymous_token'), '', 'utf-8')
  8. }
  9. const serverMod = require('./server')
  10. before(async () => {
  11. const generateConfig = require('./generateConfig')
  12. await generateConfig()
  13. app = await serverMod.serveNcmApi({})
  14. if (app.server && app.server.address) {
  15. const addr = app.server.address()
  16. if (addr && typeof addr === 'object' && 'port' in addr) {
  17. global.host = `http://localhost:${addr.port}`
  18. return
  19. }
  20. }
  21. throw new Error('failed to set up host')
  22. })
  23. after((done) => {
  24. if (app.server) {
  25. app.server.close(done)
  26. return
  27. }
  28. throw new Error('failed to set up server')
  29. })
  30. fs.readdirSync(path.join(__dirname, 'test')).forEach((file) => {
  31. require(path.join(__dirname, 'test', file))
  32. })