Files
chat_grid/server/tests/test_config.py

60 lines
1.6 KiB
Python
Raw Normal View History

2026-02-20 08:16:43 -05:00
from pathlib import Path
import pytest
from app.config import load_config
def test_load_config_defaults_when_path_none() -> None:
cfg = load_config(None)
assert cfg.server.bind_ip == "127.0.0.1"
assert cfg.network.allow_insecure_ws is False
assert cfg.network.allowed_origins == []
2026-02-20 08:16:43 -05:00
assert cfg.storage.state_file == "runtime/items.json"
assert cfg.storage.state_save_debounce_ms == 200
assert cfg.storage.state_save_max_delay_ms == 1000
assert cfg.world.grid_size == 41
2026-02-20 08:16:43 -05:00
def test_load_config_requires_tls_when_insecure_disabled(tmp_path: Path) -> None:
config_path = tmp_path / "config.toml"
config_path.write_text(
"""
[network]
allow_insecure_ws = false
""".strip()
)
with pytest.raises(ValueError):
load_config(config_path)
def test_load_config_reads_state_save_timing(tmp_path: Path) -> None:
config_path = tmp_path / "config.toml"
config_path.write_text(
"""
[network]
allow_insecure_ws = true
[storage]
state_file = "runtime/items.json"
state_save_debounce_ms = 150
state_save_max_delay_ms = 900
""".strip()
)
cfg = load_config(config_path)
assert cfg.storage.state_save_debounce_ms == 150
assert cfg.storage.state_save_max_delay_ms == 900
def test_load_config_reads_allowed_origins(tmp_path: Path) -> None:
config_path = tmp_path / "config.toml"
config_path.write_text(
"""
[network]
allow_insecure_ws = true
allowed_origins = ["https://bestmidi.com", "https://www.bestmidi.com"]
""".strip()
)
cfg = load_config(config_path)
assert cfg.network.allowed_origins == ["https://bestmidi.com", "https://www.bestmidi.com"]