From e891ef29a158fc6ad2d02ec9317df1d7dcf30cc8 Mon Sep 17 00:00:00 2001 From: Art Date: Sat, 18 Sep 2021 08:34:01 +0300 Subject: [PATCH] modified backend @PostMapping("login") endpoint to return User (#19, #18) --- .../backend/controller/UserResource.java | 12 +++--------- .../backend/controller/UserResourceTest.java | 19 +++++++++++-------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResource.java b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResource.java index 68f7fb6..4ec5596 100644 --- a/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResource.java +++ b/support-portal-backend/src/main/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResource.java @@ -46,21 +46,15 @@ public class UserResource { } @PostMapping("login") - public ResponseEntity login(@RequestBody User user) { + public ResponseEntity login(@RequestBody User user) { authenticate(user.getUsername(), user.getPassword()); UserDetails userDetails = userService.loadUserByUsername(user.getUsername()); - - HttpResponse httpResponse = HttpResponse.builder() - .httpStatus(OK) - .reason(OK.getReasonPhrase().toUpperCase()) - .message("User logged in successfully") - .httpStatusCode(OK.value()) - .build(); + User byUsername = userService.findByUsername(user.getUsername()); return ResponseEntity.ok() .header(SecurityConstants.JWT_TOKEN_HEADER, jwtTokenProvider.generateJwtToken(userDetails)) - .body(httpResponse); + .body(byUsername); } @PostMapping("add") diff --git a/support-portal-backend/src/test/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResourceTest.java b/support-portal-backend/src/test/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResourceTest.java index 85f99c4..ba19200 100644 --- a/support-portal-backend/src/test/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResourceTest.java +++ b/support-portal-backend/src/test/java/net/shyshkin/study/fullstack/supportportal/backend/controller/UserResourceTest.java @@ -198,20 +198,23 @@ class UserResourceTest extends BaseUserTest { .username(username) .password(password) .build(); - var responseEntity = restTemplate.postForEntity("/user/login", userLogin, HttpResponse.class); + var responseEntity = restTemplate.postForEntity("/user/login", userLogin, User.class); //then log.debug("Response Entity: {}", responseEntity); assertThat(responseEntity.getStatusCode()).isEqualTo(OK); assertThat(responseEntity.getBody()) .isNotNull() - .hasNoNullFieldsOrProperties() - .satisfies(httpResponse -> assertAll( - () -> assertThat(httpResponse.getHttpStatusCode()).isEqualTo(200), - () -> assertThat(httpResponse.getHttpStatus()).isEqualTo(OK), - () -> assertThat(httpResponse.getReason()).isEqualTo("OK"), - () -> assertThat(httpResponse.getMessage()).isEqualTo(expectedMessage) - )); + .hasNoNullFieldsOrPropertiesExcept("lastLoginDate", "lastLoginDateDisplay", "password") + .hasFieldOrPropertyWithValue("username", fakeUser.getUsername()) + .hasFieldOrPropertyWithValue("email", fakeUser.getEmail()) + .hasFieldOrPropertyWithValue("firstName", fakeUser.getFirstName()) + .hasFieldOrPropertyWithValue("lastName", fakeUser.getLastName()) + .hasFieldOrPropertyWithValue("isActive", true) + .hasFieldOrPropertyWithValue("isNotLocked", true) + .hasFieldOrPropertyWithValue("role", "ROLE_ADMIN") + .satisfies(u -> assertThat(u.getProfileImageUrl()).endsWith(String.format("/user/image/profile/%s/avatar.jpg", u.getUserId()))); + String token = responseEntity.getHeaders().getFirst(JWT_TOKEN_HEADER); log.debug("Token: {}", token); assertThat(token).isNotBlank();