Как я могу протестировать сервер express с помощью супертеста в следующем. js? - PullRequest
1 голос
/ 06 мая 2020

Я создал веб-страницу своего портфолио с помощью next. js теперь мне нужно его протестировать. для тестирования сервера express я использую supertest. Но проблема в том, что мне нужно рефакторинг express, чтобы использовать его. Потому что супертесту необходимо получить доступ к app () перед прослушиванием.

Я начал так, как раньше реализовал в приложении node.js. Поместите код express в app. js и вызовите его в index. js.

const express = require("express");
const server = express();
const authService = require("./services/auth");
const bodyParser = require("body-parser");
//put all the middlewares here

module.exports = server;

, а затем в index. js

const server = require("express")();
// const { parse } = require("url");
const next = require("next");
const routes = require("../routes");

const path = require("path");
require("./mongodb");

const dev = process.env.NODE_ENV !== "production";
const app = next({ dev });
// const handle = app.getRequestHandler(); //this is built in next route handler
const handle = routes.getRequestHandler(app);


app
  .prepare()
  .then(() => {
     const server = require("./app");
     //I required this outside too but it did not solve the issue


    server.listen(3000, (err) => {
      if (err) throw err;
      console.log("> Ready on http://localhost:3000");
    });
  })
  .catch((ex) => {
    console.error(ex.stack);
    process.exit(1);
  });

с этим настроил, express слушает, я могу подключиться к mongodb, во время запуска проблем нет.

Когда я запрашиваю localhost: 3000, от localhost нет ответа, он крутится до тайм-аута

...