• 미루고 미루던(고의가 아님..ㅠ) 인터셉터 + creation acceptance test를 완성했다. 토큰 검증 로직은 걱정하지 말라는 팀원들의 말에 검증로직은 두고 인터셉터 구현을 했다.

    1. 인터셉터에서 request.getHeader("Authorization")을 이용해서 헤더값을 가져오고 (여기서 null이면 예외)
    2. 앞에 Bearer를 자른 후 토큰만 가지고 클레임셋, 서브젝트(which here is userId)를 가져와서 유저를 찾고
    3. request.setAttribute로 유저를 넣어줌

    근데 이걸 어떻게 테스트 하지 싶어서 검색해봤는데 인터셉터를 따로 테스트하려면 webClient의 테스트버전인 webTestClient나 restAssured같이 요청을 보낼 수 있는 api가 필요한데 인터셉터의 리퀘스트를 뽑아내려고 저걸 하려니 일단 인수테스트는 아니니 만들어진 restAssured 인수테스트용 베이스를 쓸 수도 없고 좀 애매하다고 생각되어서 어차피 인수테스트에서 검증이 될테니 스킵하기로 했다.. 좀 찝찝하긴 하다ㅠ

    그리고 이렇게 담긴 유저를 로그인 확인 용도 이외로 사용하지 않는 이상, 그러니까 arguementResolver로 유저를 받아 쓰지 않는 이상, 또 다시 말해서 실행되는 동작이 유저를 직접적으로 사용하지 않는 이상은 테스트를 돌릴 때 헤더에 일일히 넣어주는 것도 일일텐데 이 부분도 팀원들께 여쭤봐야 할 것 같다. 아닌가? 그룹 안에서 이루어지는 행동은 모두 그룹에 속한 사람인지를 확인해야하긴 하는데.. 좀 헷갈린다.

  • 그룹 인수테스트에서 테스트 유저를 스태틱으로 두고 @BeforeEach로 userRepository에 저장하는데 이렇게 되면 TEST_USER는 아이디값을 가지지 않게 되고 저장된 유저는 modifiedTime을 가지게 됨.. 이거때문에 자꾸 ignoringFields를 넣는데 이래도 되나 싶다