用阿波罗服务器设置开玩笑的超级测试

时间:2020-05-30 06:06:21

标签: jestjs graphql apollo-server supertest

我正在尝试使用supertest和jest对我的阿波罗服务器进行测试,但它给出了错误,有人可以帮忙吗?

Timeout - Async callback was not invoked within the 5000 ms timeout specified by jest.setTimeout.Timeout - Async callback was not invoked within the 5000 ms timeout specified by jest.setTimeout.Error:

这是我的app.js,如果我不使用const app,则错误将是:app.address不是函数。

const { ApolloServer } = require("apollo-server");
const typeDefs = require("./schema/typeDefs");
const resolvers = require("./schema/resolvers");
const PORT = process.env.PORT || 4000;

const server = new ApolloServer({ typeDefs, resolvers });

  const app = () =>
    server
      .listen(PORT)
      .then(({ url }) => console.log("Apollo Server ready at: ", url))
      .catch((err) => console.log("Apollo server not connected ", err));
  module.exports = app;

这是我的admin.test.js,似乎卡在.get

const app = require("../app");
const request = require("supertest");
console.log(app);
const { gql } = require("apollo-server");

const findAllAdmin = gql`
  query findAllAdmin {
    admins {
      _id
      email
      password
    }
  }
`;

describe("Admin Service", () => {
  describe("GET /admins", () => {
    describe("Successful FindAll", () => {
      test("should return object with status 200 and all users", (done) => {
        request(app)
          .get("/admins")
          // .send(findAllAdmin)
          .end((err, res) => {
            if (err) {
              console.log(err);
              return done(err);
            } else {
              expect(res.status).toBe(200);
              expect(res.body.result).toEqual(expect.any(Array));
              return done();
            }
          });
      });
    });
  });
});

0 个答案:

没有答案