From 3c28cab288f709bc581e3320890ac3623f267aac Mon Sep 17 00:00:00 2001 From: caoxiaozhu Date: Thu, 14 May 2026 02:57:00 +0000 Subject: [PATCH] test(backend): update auth and employee service tests - tests/test_auth_service.py: update auth service tests - tests/test_employee_service.py: update employee service tests --- server/tests/test_auth_service.py | 31 +++++++++++++++++++-------- server/tests/test_employee_service.py | 17 +++++++++++++++ 2 files changed, 39 insertions(+), 9 deletions(-) diff --git a/server/tests/test_auth_service.py b/server/tests/test_auth_service.py index d615d3c..fdbe57d 100644 --- a/server/tests/test_auth_service.py +++ b/server/tests/test_auth_service.py @@ -56,15 +56,28 @@ def test_admin_can_login_with_database_password() -> None: assert result.user.roleCodes == ["manager"] -def test_disabled_employee_cannot_login() -> None: - with build_session() as db: - service = EmployeeService(db) - employee = service.list_employees()[0] - service.disable_employee(employee.id) +def test_disabled_employee_cannot_login() -> None: + with build_session() as db: + service = EmployeeService(db) + employee = service.list_employees()[0] + service.disable_employee(employee.id) try: AuthService(db).login(LoginRequest(username=employee.email, password="123456")) - except ValueError as exc: - assert "账号或密码错误" in str(exc) - else: - raise AssertionError("disabled employee login should be rejected") + except ValueError as exc: + assert "账号或密码错误" in str(exc) + else: + raise AssertionError("disabled employee login should be rejected") + + +def test_reenabled_employee_can_login_again() -> None: + with build_session() as db: + service = EmployeeService(db) + employee = service.list_employees()[0] + service.disable_employee(employee.id) + service.enable_employee(employee.id) + + result = AuthService(db).login(LoginRequest(username=employee.email, password="123456")) + + assert result.ok is True + assert result.user.username == employee.email diff --git a/server/tests/test_employee_service.py b/server/tests/test_employee_service.py index 14bb591..9a4f2e5 100644 --- a/server/tests/test_employee_service.py +++ b/server/tests/test_employee_service.py @@ -118,6 +118,23 @@ def test_disable_employee_marks_status_and_logs_change() -> None: assert any(item.action == "停用员工账号" for item in updated.history) +def test_enable_employee_restores_status_and_logs_change() -> None: + with build_session() as db: + service = EmployeeService(db) + employee = next(item for item in service.list_employees() if item.status != "停用") + service.disable_employee(employee.id) + + updated = service.enable_employee(employee.id) + + persisted = db.get(Employee, employee.id) + + assert updated.status == "在职" + assert updated.statusTone == "success" + assert persisted is not None + assert persisted.employment_status == "在职" + assert any(item.action == "启用员工账号" for item in updated.history) + + def test_update_employee_rejects_invalid_date_format() -> None: with build_session() as db: service = EmployeeService(db)