fix: add unit tests for user authentication and profile retrieval endpoints
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
"""
|
||||
Smoke tests - Basic tests to verify the testing framework is working properly
|
||||
"""
|
||||
import pytest
|
||||
import asyncio
|
||||
from tests.test_client import TestWebSocketClient, test_clients
|
||||
|
||||
|
||||
class TestSmokeTests:
|
||||
"""Basic smoke tests to verify the testing framework"""
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_single_client_connection(self):
|
||||
"""Test that a single client can connect to the server"""
|
||||
client = TestWebSocketClient("smoke_test")
|
||||
|
||||
# Should be able to connect
|
||||
connected = await client.connect()
|
||||
assert connected == True
|
||||
assert client.connected == True
|
||||
|
||||
# Should have player data
|
||||
assert client.player_data is not None
|
||||
assert client.player_data["nickname"] == "smoke_test"
|
||||
assert client.get_money() == 100000 # Starting money
|
||||
assert client.get_population() == 0 # Starting population
|
||||
|
||||
# Clean up
|
||||
await client.disconnect()
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_context_manager_client(self):
|
||||
"""Test the context manager for test clients"""
|
||||
async with test_clients("context_test") as [client]:
|
||||
assert client.connected == True
|
||||
assert client.player_data["nickname"] == "context_test"
|
||||
|
||||
# Should be able to send a simple action
|
||||
await client.send_cursor_move(5, 10)
|
||||
|
||||
# Connection should work without errors
|
||||
|
||||
# Client should be disconnected after context exit
|
||||
assert client.connected == False
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_multiple_client_context_manager(self):
|
||||
"""Test multiple clients using context manager"""
|
||||
async with test_clients("client1", "client2") as [c1, c2]:
|
||||
assert len([c1, c2]) == 2
|
||||
assert c1.connected == True
|
||||
assert c2.connected == True
|
||||
assert c1.player_data["nickname"] == "client1"
|
||||
assert c2.player_data["nickname"] == "client2"
|
||||
|
||||
# Both should be disconnected
|
||||
assert c1.connected == False
|
||||
assert c2.connected == False
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_basic_building_placement(self):
|
||||
"""Test basic building placement works"""
|
||||
async with test_clients("builder_unique") as [client]:
|
||||
# Should be able to place a building at unique coordinates
|
||||
import time
|
||||
x, y = int(time.time() % 100), int((time.time() * 2) % 100)
|
||||
await client.place_building("road", x, y)
|
||||
|
||||
# Should receive confirmation
|
||||
message = await client.receive_message(timeout=2.0)
|
||||
assert message is not None
|
||||
assert message["type"] == "building_placed"
|
||||
assert message["building"]["type"] == "road"
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_basic_chat(self):
|
||||
"""Test basic chat functionality"""
|
||||
async with test_clients("chatter1", "chatter2") as [sender, receiver]:
|
||||
# Clear any initial messages
|
||||
receiver.clear_messages()
|
||||
|
||||
# Send chat message
|
||||
await sender.send_chat("Hello from smoke test!")
|
||||
|
||||
# Receiver should get the message
|
||||
message = await receiver.receive_message(timeout=2.0)
|
||||
assert message is not None
|
||||
assert message["type"] == "chat"
|
||||
assert message["message"] == "Hello from smoke test!"
|
||||
assert message["nickname"] == "chatter1"
|
||||
Reference in New Issue
Block a user