#node.js #jestjs
Вопрос:
У меня возникли проблемы с разделением тестов на шутки в нескольких файлах.
Это мой tests/app.test.js
тестовый файл, в котором я объявляю свою beforeAll
функцию.
const fs = require("fs"); const { setupStrapi } = require("./helpers/strapi"); const supertest = require("supertest"); const defaults = require("superagent-defaults"); const { createUserWithJWT } = require("./helpers/auth"); let agent require("./auth"); /** this code is called once before any test is called */ jest.setTimeout(100000); /** this code is called once before any test is called */ beforeAll(async () =gt; { await setupStrapi(); // singleton so it can be called many times agent = defaults(supertest(strapi.server)); const jwt = await createUserWithJWT(); agent .set("accept", "application/json") .set("Content-Type", "application/json") .set("Authorization", "Bearer " jwt); }); it("strapi is defined", () =gt; { expect(strapi).toBeDefined(); }); it("should return users data for authenticated user", async () =gt; { await agent .get("/users/me") .expect(200) .then((data) =gt; { expect(data.body).toBeDefined(); expect(data.body.id).toBeDefined(); expect(data.body.username).toBeDefined(); expect(data.body.email).toBeDefined(); }); }); module.exports = { agent: agent }
Это мой второй тестовый файл tests/auth/index.js
const { agent } = require("../app.test"); it("should return users data for authenticated user", async () =gt; { await agent .get("/users/me") .expect("Content-Type", /json/) .expect(200) .then((data) =gt; { expect(data.body).toBeDefined(); expect(data.body.id).toBeDefined(); expect(data.body.username).toBeDefined(); expect(data.body.email).toBeDefined(); }); });
Я импортировал agent
объект , в tests/auth/index.js
который я экспортировал, tests/app.test.js
но я получаю ошибку TypeError: Cannot read property 'get' of undefined
.
Я вижу, что после того, как тест в моем tests/auth/index.js
запускается после функции beforeAll, это означает, что агент должен быть определен, и тесты внутри tests/app.test.js
успешно выполняются с объектом агента. Таким образом, это означает, что экспорт работает неправильно.
Почему в этом случае экспорт не работает?