Polish onboarding flow docs and retry acceptance tests

This commit is contained in:
Thales Maciel 2026-02-26 17:58:16 -03:00
parent 992d22a138
commit ed950cb7c4
2 changed files with 47 additions and 4 deletions

View file

@ -78,6 +78,20 @@ class _FakeDaemon:
return True
class _RetrySetupDesktop(_FakeDesktop):
def __init__(self):
super().__init__()
self.setup_invocations = 0
def run_tray(self, _state_getter, on_quit, **kwargs):
setup_cb = kwargs.get("on_setup_wizard")
if setup_cb is not None and self.setup_invocations == 0:
self.setup_invocations += 1
setup_cb()
return
on_quit()
class AmanCliTests(unittest.TestCase):
def test_parse_cli_args_defaults_to_run_command(self):
args = aman._parse_cli_args(["--dry-run"])
@ -186,6 +200,28 @@ class AmanCliTests(unittest.TestCase):
self.assertFalse(path.exists())
daemon_cls.assert_not_called()
def test_run_command_missing_config_cancel_then_retry_setup(self):
with tempfile.TemporaryDirectory() as td:
path = Path(td) / "config.json"
args = aman._parse_cli_args(["run", "--config", str(path)])
desktop = _RetrySetupDesktop()
onboard_cfg = Config()
onboarding_results = [
OnboardingResult(completed=False, config=None, aborted_reason="cancelled"),
OnboardingResult(completed=True, config=onboard_cfg, aborted_reason=None),
]
with patch("aman._lock_single_instance", return_value=object()), patch(
"aman.get_desktop_adapter", return_value=desktop
), patch(
"aman.run_onboarding_wizard",
side_effect=onboarding_results,
), patch("aman.Daemon", _FakeDaemon):
exit_code = aman._run_command(args)
self.assertEqual(exit_code, 0)
self.assertTrue(path.exists())
self.assertEqual(desktop.setup_invocations, 1)
if __name__ == "__main__":