package com.tourguide.security; import com.tourguide.config.properties.JwtProperties; import com.tourguide.modules.user.domain.ClientType; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; /** 验证三端 Token 的 clientType 声明不会混淆。 */ class JwtTokenServiceTest { private final JwtTokenService tokenService = createTokenService(); @Test void shouldKeepClientTypeInToken() { assertThat(tokenService.parse(tokenService.createToken(1L, "admin", "ADMIN", ClientType.ADMIN)).getClientType()).isEqualTo(ClientType.ADMIN); assertThat(tokenService.parse(tokenService.createToken(2L, "mini", "MINI_USER", ClientType.MINI)).getClientType()).isEqualTo(ClientType.MINI); assertThat(tokenService.parse(tokenService.createToken(3L, "guide", "GUIDE_USER", ClientType.GUIDE)).getClientType()).isEqualTo(ClientType.GUIDE); } private JwtTokenService createTokenService() { JwtProperties properties = new JwtProperties(); properties.setIssuer("tourguide-test"); properties.setSecret("tourguide-test-secret-key-at-least-32-bytes"); properties.setExpirationSeconds(3600); return new JwtTokenService(properties); } }