import json from browser_cli.registry import load_registry, save_registry, update_registry def test_load_registry_tolerates_trailing_garbage_from_old_non_atomic_writes(tmp_path): registry = tmp_path / "registry.json" registry.write_text('{"main": "/tmp/.browser_cli/main.sock"}"}', encoding="utf-8") assert load_registry(registry) == {"main": "/tmp/.browser_cli/main.sock"} def test_update_registry_repairs_corrupted_registry_and_preserves_entries(tmp_path): registry = tmp_path / "registry.json" registry.write_text('{"main": "/tmp/.browser_cli/main.sock"}"}', encoding="utf-8") update_registry("work", "/tmp/.browser_cli/work.sock", registry) assert json.loads(registry.read_text(encoding="utf-8")) == { "main": "/tmp/.browser_cli/main.sock", "work": "/tmp/.browser_cli/work.sock", } def test_save_registry_writes_valid_json_atomically(tmp_path): registry = tmp_path / "registry.json" save_registry({"main": "/tmp/main.sock"}, registry) assert json.loads(registry.read_text(encoding="utf-8")) == {"main": "/tmp/main.sock"}