//여기가 user.test.js 입니다.
jest.mock("../models/user");
const User = require("../models/user");
const { addFollowing } = require("../controllers/user");
describe("addFollowing", () => {
const req = {
user: { id: 1 },
params: { id: 2 },
};
const res = {
send: jest.fn(),
};
const next = jest.fn();
test("사용자를 찾아 팔로잉을 추가하고 success를 응답해야 함", async () => {
User.findOne.mockReturnValue(
Promise.resolve({
addFollowing(id) {
return Promise.resolve(true);
},
})
);
await addFollowing(req, res, next);
expect(res.send).toBeCalledWith("success");
});
test("사용자를 못 찾으면 next(error)를 호출함", async () => {
const error = "사용자 못 찾음";
User.findOne.mockReturnValue(Promise.reject(error));
await addFollowing(req, res, next);
expect(next).toBeCalledWith(error);
});
});
//여기서 부터가 user.js
const User = require("../models/user");
exports.addFollowing = async (req, res, next) => {
try {
const user = await User.findOne({ where: { id: req.user.id } });
if (user) {
await user.addFollowing(parseInt(req.params.id, 10));
res.send("success");
} else {
res.status(404).send("no user");
}
} catch (error) {
console.error(error);
next(error);
}
};
계속 같은 코드에서 같은 오류가 나서 혹시나 하는 마음에 github에 있는 것들을 복사해서 가져와서 테스트를 했는데도
Test suite failed to run
Call retries were exceeded
at ChildProcessWorker.initialize (node_modules/jest-worker/build/workers/ChildProcessWorker.js:193:21)
라는 내용만 나오고 추가적인 에러 메세지는 없는 걸 보니 버전 문제 같은데 혹시 버전 문제가 아니라면 다른 문제가 있는 걸까요?