61b774a7a4
remove (unnamed) into the group names just leave it a empty string, remove Focused on windows how should the browser know what windows are focused
63 lines
2.4 KiB
Python
63 lines
2.4 KiB
Python
import json
|
|
from pathlib import Path
|
|
|
|
import pytest
|
|
|
|
from browser_cli.client import BrowserNotConnected, _resolve_socket, active_browser_targets, display_browser_name
|
|
|
|
def test_resolve_socket_raises_when_registry_missing(monkeypatch):
|
|
monkeypatch.delenv("BROWSER_CLI_PROFILE", raising=False)
|
|
monkeypatch.setattr("browser_cli.client.REGISTRY_PATH", Path("/nonexistent/browser-cli-registry.json"))
|
|
|
|
with pytest.raises(BrowserNotConnected, match="Cannot resolve a browser socket automatically"):
|
|
_resolve_socket()
|
|
|
|
def test_resolve_socket_uses_only_active_registry_entry(monkeypatch, tmp_path):
|
|
monkeypatch.delenv("BROWSER_CLI_PROFILE", raising=False)
|
|
|
|
socket_path = tmp_path / "browser.sock"
|
|
socket_path.write_text("")
|
|
registry_path = tmp_path / "registry.json"
|
|
registry_path.write_text(json.dumps({"abc-uuid": str(socket_path)}))
|
|
|
|
monkeypatch.setattr("browser_cli.client.REGISTRY_PATH", registry_path)
|
|
|
|
assert _resolve_socket() == str(socket_path)
|
|
|
|
def test_resolve_socket_raises_when_multiple_active_entries(monkeypatch, tmp_path):
|
|
monkeypatch.delenv("BROWSER_CLI_PROFILE", raising=False)
|
|
|
|
first_socket = tmp_path / "one.sock"
|
|
second_socket = tmp_path / "two.sock"
|
|
first_socket.write_text("")
|
|
second_socket.write_text("")
|
|
registry_path = tmp_path / "registry.json"
|
|
registry_path.write_text(json.dumps({"uuid-1": str(first_socket), "uuid-2": str(second_socket)}))
|
|
|
|
monkeypatch.setattr("browser_cli.client.REGISTRY_PATH", registry_path)
|
|
|
|
with pytest.raises(BrowserNotConnected, match="Multiple browser instances are active: uuid-1, uuid-2"):
|
|
_resolve_socket()
|
|
|
|
|
|
def test_display_browser_name_uses_uuid_stem_for_default():
|
|
assert display_browser_name("default", "/tmp/.browser_cli/550e8400-e29b-41d4-a716-446655440000.sock") == (
|
|
"550e8400-e29b-41d4-a716-446655440000"
|
|
)
|
|
|
|
|
|
def test_active_browser_targets_filters_stale_entries(monkeypatch, tmp_path):
|
|
active_socket = tmp_path / "work.sock"
|
|
active_socket.write_text("")
|
|
stale_socket = tmp_path / "stale.sock"
|
|
registry_path = tmp_path / "registry.json"
|
|
registry_path.write_text(json.dumps({"work": str(active_socket), "default": str(stale_socket)}))
|
|
|
|
monkeypatch.setattr("browser_cli.client.REGISTRY_PATH", registry_path)
|
|
|
|
targets = active_browser_targets()
|
|
|
|
assert len(targets) == 1
|
|
assert targets[0].profile == "work"
|
|
assert targets[0].display_name == "work"
|