@PostMapping("/refresh-token")
    public CustomResponse<TokenResponse> refreshToken(@RequestBody @Valid final TokenRefreshRequest tokenRefreshRequest) {
        return refreshTokenService.refreshToken(tokenRefreshRequest);
    }
@Test
    void refreshToken_ValidRequest_ReturnsTokenResponse() throws Exception {

        // Given
        TokenRefreshRequest tokenRefreshRequest = TokenRefreshRequest.builder()
                .refreshToken("validRefreshToken")
                .build();

        TokenResponse tokenResponse = TokenResponse.builder()
                .accessToken("newAccessToken")
                .accessTokenExpiresAt(System.currentTimeMillis() + 3600)
                .refreshToken("newRefreshToken")
                .build();

        CustomResponse<TokenResponse> expectedResponse = CustomResponse.successOf(tokenResponse);

        // When
        when(refreshTokenService.refreshToken(any(TokenRefreshRequest.class))).thenReturn(expectedResponse);

        // Then
        mockMvc.perform(post("/api/v1/authentication/users/refresh-token")
                        .contentType(MediaType.APPLICATION_JSON)
                        .content(objectMapper.writeValueAsString(tokenRefreshRequest)))
                .andExpect(status().isOk())
                .andExpect(jsonPath("$.isSuccess").value(true))
                .andExpect(jsonPath("$.httpStatus").value("OK"))
                .andExpect(jsonPath("$.response.accessToken").value("newAccessToken"));

        verify(refreshTokenService, times(1)).refreshToken(any(TokenRefreshRequest.class));
    }