Files
MeshChatX/tests/backend/test_config_manager.py
Sudo-Ivan 00b4290735
All checks were successful
CI / test-backend (push) Successful in 15s
CI / lint (push) Successful in 42s
CI / build-frontend (push) Successful in 9m35s
feat(tests): add comprehensive test suite for backend functionality, including database, configuration, and telemetry utilities
2026-01-02 19:41:05 -06:00

65 lines
1.9 KiB
Python

import os
import tempfile
import pytest
from meshchatx.src.backend.database import Database
from meshchatx.src.backend.config_manager import ConfigManager
@pytest.fixture
def db():
fd, path = tempfile.mkstemp()
os.close(fd)
database = Database(path)
database.initialize()
yield database
database.close()
if os.path.exists(path):
os.remove(path)
def test_config_manager_get_default(db):
config = ConfigManager(db)
assert config.display_name.get() == "Anonymous Peer"
assert config.theme.get() == "light"
assert config.lxmf_inbound_stamp_cost.get() == 8
def test_config_manager_set_get(db):
config = ConfigManager(db)
config.display_name.set("Test User")
assert config.display_name.get() == "Test User"
config.lxmf_inbound_stamp_cost.set(20)
assert config.lxmf_inbound_stamp_cost.get() == 20
config.auto_announce_enabled.set(True)
assert config.auto_announce_enabled.get() is True
def test_config_manager_persistence(db):
config = ConfigManager(db)
config.display_name.set("Persistent User")
# New manager instance with same DB
config2 = ConfigManager(db)
assert config2.display_name.get() == "Persistent User"
def test_config_manager_type_safety(db):
config = ConfigManager(db)
# IntConfig
config.lxmf_inbound_stamp_cost.set(
"15"
) # Should handle string to int if implementation allows or just store it
# Looking at implementation might be better, but let's test basic set/get
config.lxmf_inbound_stamp_cost.set(15)
assert isinstance(config.lxmf_inbound_stamp_cost.get(), int)
assert config.lxmf_inbound_stamp_cost.get() == 15
# BoolConfig
config.auto_announce_enabled.set(True)
assert config.auto_announce_enabled.get() is True
config.auto_announce_enabled.set(False)
assert config.auto_announce_enabled.get() is False