jest를 통해 테스트코드를 작성하는 과정에서 계속해서 경로에 대한 에러가 발생했다.
Please check your configuration for these entries:
{
"moduleNameMapper": {
"/^prisma\\/(.*)$/": "/Users/donghyeoklim/Desktop/boostcamp/web17_morak/app/backend/$1"
},
"resolver": undefined
}
1 | import { ForbiddenException, Injectable, NotFoundException } from '@nestjs/common';
> 2 | import { PrismaService } from 'prisma/prisma.service';
| ^
3 | import { Group, Member } from '@prisma/client';
4 | import { MemberInformationDto } from 'src/member/dto/member.dto';
5 | import { CreateGroupsDto } from './dto/create-groups.dto';
예를 들면 이러한 에러
처음에는 member API에 대한 테스트코드를 작성하는데 계속 AtGuard 파일에 대한 경로 에러가 발생했다.
member.controller.ts
import { AtGuard } from 'src/auth/guards/at.guard';
@Controller('member')
@UseGuards(AtGuard)
export class MemberController {
constructor(private readonly memberService: MemberService) {}
@Get('/me')
async getUserData(@Req() req: Request, @Res() res: Response): Promise<void> {
try {
const encryptedToken = req.cookies.access_token;
const userData = await this.memberService.getUserData(encryptedToken);
res.json(userData);
} catch (error) {
throw new UnauthorizedException('Failed to get user profile');
}
}
}
이러한 코드에서 AtGuard에 대해 계속 경로 에러가 발생했다.
이는 Jest에서 테스트 코드를 작성할 때 해당 컨트롤러를 가져오는 과정에서 경로를 참조하지 못해서 발생한다.
import { AtGuard } from '../../src/auth/guards/at.guard';
이렇게 작성을 해주면 오류가 해결이 되었다.
../../
으로 세세하게 설정해주는 것
하지만 이 방법은 import 자동완성을 한 것을 전부 수정해줘야하는 번거로움이 존재한다.