초기 커밋
This commit is contained in:
40
tests/unit/test_security.py
Normal file
40
tests/unit/test_security.py
Normal file
@@ -0,0 +1,40 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from app.core.constants import TokenType
|
||||
from app.core.security import (
|
||||
create_access_token,
|
||||
create_refresh_token,
|
||||
decode_token,
|
||||
hash_password,
|
||||
verify_password,
|
||||
)
|
||||
|
||||
|
||||
def test_password_hash_and_verify() -> None:
|
||||
password = "securepassword123"
|
||||
hashed = hash_password(password)
|
||||
assert hashed != password
|
||||
assert verify_password(password, hashed)
|
||||
assert not verify_password("wrongpassword", hashed)
|
||||
|
||||
|
||||
def test_create_access_token() -> None:
|
||||
token = create_access_token(subject=1, role="admin")
|
||||
payload = decode_token(token)
|
||||
assert payload is not None
|
||||
assert payload["sub"] == "1"
|
||||
assert payload["role"] == "admin"
|
||||
assert payload["type"] == TokenType.ACCESS
|
||||
|
||||
|
||||
def test_create_refresh_token() -> None:
|
||||
token = create_refresh_token(subject=1)
|
||||
payload = decode_token(token)
|
||||
assert payload is not None
|
||||
assert payload["sub"] == "1"
|
||||
assert payload["type"] == TokenType.REFRESH
|
||||
|
||||
|
||||
def test_decode_invalid_token() -> None:
|
||||
result = decode_token("invalid.token.string")
|
||||
assert result is None
|
||||
Reference in New Issue
Block a user