Files
seedPass/src/tests/test_state_manager.py
2025-07-24 21:04:04 -04:00

36 lines
1.1 KiB
Python

from tempfile import TemporaryDirectory
from pathlib import Path
from seedpass.core.state_manager import StateManager
from nostr.client import DEFAULT_RELAYS
def test_state_manager_round_trip():
with TemporaryDirectory() as tmpdir:
sm = StateManager(Path(tmpdir))
state = sm.state
assert state["relays"] == list(DEFAULT_RELAYS)
assert state["last_bip85_idx"] == 0
assert state["last_sync_ts"] == 0
assert state["manifest_id"] is None
assert state["delta_since"] == 0
sm.add_relay("wss://example.com")
sm.update_state(
last_bip85_idx=5,
last_sync_ts=123,
manifest_id="mid",
delta_since=111,
)
sm2 = StateManager(Path(tmpdir))
state2 = sm2.state
assert "wss://example.com" in state2["relays"]
assert state2["last_bip85_idx"] == 5
assert state2["last_sync_ts"] == 123
assert state2["manifest_id"] == "mid"
assert state2["delta_since"] == 111
sm2.remove_relay(1) # remove first default relay
assert len(sm2.list_relays()) == len(DEFAULT_RELAYS)