d355e0e71d
* feat(desktop): configure repository discovery
* fix(config): preserve additive default migration
* fix(desktop): stabilize session-actions-menu gateway mock for repo-scan subscribe
projects.ts now runs $gateway.subscribe(syncReposScanning) at module load, and
nanostores fires the subscriber synchronously. session-actions-menu.test.ts
reaches projects.ts transitively via the session store but mocked
@/store/gateway without $gateway, crashing the whole desktop vitest suite
("No \ export is defined"). Simply adding $gateway: atom(null) exposed a
second issue: the synchronous subscriber calls the mock's activeGateway()
during the transitive import, before the module-level const initializes (TDZ).
Hoist the mock fns via vi.hoisted() so activeGateway is defined before the
hoisted vi.mock factory runs, and add $gateway: atom(null) to the mock. Mirrors
the self-contained mock pattern already used in projects.test.ts. Also maps the
PR author's commit email for attribution.
Supersedes #67630; incorporates review feedback from that PR.
Co-authored-by: Rudimar Ronsoni <rudimar@outlook.com>
---------
Co-authored-by: Rudimar Ronsoni <rudimar@outlook.com>
Co-authored-by: Austin Pickett <austinpickett@users.noreply.github.com>
17 lines
640 B
Python
17 lines
640 B
Python
from hermes_cli.config import DEFAULT_CONFIG
|
|
from hermes_cli.web_server import CONFIG_SCHEMA
|
|
|
|
|
|
def test_desktop_repo_discovery_defaults_preserve_existing_behavior():
|
|
desktop = DEFAULT_CONFIG["desktop"]
|
|
|
|
assert desktop["repo_scan_enabled"] is True
|
|
assert desktop["repo_scan_roots"] == []
|
|
assert desktop["repo_scan_exclude_paths"] == []
|
|
|
|
|
|
def test_desktop_repo_discovery_keys_are_in_generated_schema():
|
|
assert CONFIG_SCHEMA["desktop.repo_scan_enabled"]["type"] == "boolean"
|
|
assert CONFIG_SCHEMA["desktop.repo_scan_roots"]["type"] == "list"
|
|
assert CONFIG_SCHEMA["desktop.repo_scan_exclude_paths"]["type"] == "list"
|