Implement user search functionality and enhance supervisor management UI

This commit is contained in:
Ross
2026-06-15 10:28:32 +01:00
parent fc9f2ed6af
commit 35ab7443d2
8 changed files with 268 additions and 44 deletions
+43
View File
@@ -140,3 +140,46 @@ def test_cid_manager_can_send_password_reset_from_account_profile(client, create
assert mail.outbox[0].to == ["managed@example.com"]
@pytest.mark.django_db
def test_people_page_and_user_search(client, create_users, create_cid_manager):
# Log in as cid_user_manager
client.force_login(create_cid_manager)
# 1. Test standard GET request to /people page
response = client.get(reverse("people"))
assert response.status_code == 200
assert b"Quick User Search" in response.content
assert b"hx-indicator=\"#search-indicator\"" in response.content
# 2. Test HTMX GET request with empty query
response_empty = client.get(
reverse("people"),
{"q": ""},
HTTP_HX_REQUEST="true",
)
assert response_empty.status_code == 200
assert response_empty.content == b""
# 3. Test HTMX GET request with matching query
user1, user2 = create_users
response_search = client.get(
reverse("people"),
{"q": "user1"},
HTTP_HX_REQUEST="true",
)
assert response_search.status_code == 200
assert b"user1" in response_search.content
assert b"user1@user.com" in response_search.content
assert b"Actions" in response_search.content
# 4. Test HTMX GET request with no matching users
response_no_match = client.get(
reverse("people"),
{"q": "nonexistent_username_xyz"},
HTTP_HX_REQUEST="true",
)
assert response_no_match.status_code == 200
assert b"No users found matching" in response_no_match.content