mirror of
https://github.com/ipnet-mesh/meshcore-hub.git
synced 2026-07-04 08:51:36 +02:00
0db0ebf9b2
- Add Member database model with name, callsign, role, description, contact, and public_key fields - Add Member Pydantic schemas (MemberCreate, MemberUpdate, MemberRead, MemberList) - Add members table to initial migration - Add members API endpoints (GET/POST/PUT/DELETE /api/v1/members) - Add member_import.py for importing from JSON files - Update web layer to fetch members from API instead of file - Add SEED_HOME setting (defaults to ./seed) for seed data files - Add 'collector seed' command to import node_tags.json and members.json - Rename tags.json to node_tags.json for consistency - Move example seed data from example/data/* to example/seed/ - Update tests and configuration
42 lines
1.6 KiB
Python
42 lines
1.6 KiB
Python
"""Tests for the members page route."""
|
|
|
|
from fastapi.testclient import TestClient
|
|
|
|
|
|
class TestMembersPage:
|
|
"""Tests for the members page."""
|
|
|
|
def test_members_returns_200(self, client: TestClient) -> None:
|
|
"""Test that members page returns 200 status code."""
|
|
response = client.get("/members")
|
|
assert response.status_code == 200
|
|
|
|
def test_members_returns_html(self, client: TestClient) -> None:
|
|
"""Test that members page returns HTML content."""
|
|
response = client.get("/members")
|
|
assert "text/html" in response.headers["content-type"]
|
|
|
|
def test_members_contains_network_name(self, client: TestClient) -> None:
|
|
"""Test that members page contains the network name."""
|
|
response = client.get("/members")
|
|
assert "Test Network" in response.text
|
|
|
|
def test_members_without_data_shows_empty(self, client: TestClient) -> None:
|
|
"""Test that members page with no API data shows no members."""
|
|
response = client.get("/members")
|
|
# Should still render successfully
|
|
assert response.status_code == 200
|
|
|
|
def test_members_with_api_data_shows_members(
|
|
self, client_with_members: TestClient
|
|
) -> None:
|
|
"""Test that members page with API data shows member data."""
|
|
response = client_with_members.get("/members")
|
|
assert response.status_code == 200
|
|
# Check for member data from mock API response
|
|
assert "Alice" in response.text
|
|
assert "Bob" in response.text
|
|
assert "W1ABC" in response.text
|
|
assert "W2XYZ" in response.text
|
|
assert "Admin" in response.text
|