Skip to content
2 changes: 1 addition & 1 deletion comfy_cli/output/branding.py
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ def _access_token_line(expires_at: int | None) -> Text:


# ---------------------------------------------------------------------------
# Welcome banner — the big one, shown after auth login success
# Welcome banner — the big one, shown after cloud login success
# ---------------------------------------------------------------------------


Expand Down
16 changes: 16 additions & 0 deletions tests/comfy_cli/command/test_run_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,22 @@ def test_build_steps_contains_full_surface(self):
]:
assert needle in titles, f"missing coverage for: {needle}"

def test_whoami_step_targets_cloud_not_auth(self):
# Sign-in status lives under `comfy cloud whoami`; `comfy auth` is the
# model-host token group. Guard against regressing back to `auth whoami`.
state = run_cli._DemoState(workflow_path="/tmp/x.json")
steps = run_cli._build_steps(state)
whoami = [s for s in steps if "whoami" in s.title.lower()]
assert len(whoami) == 1, "expected exactly one whoami demo step"
invs = whoami[0].invocations or []
assert invs, "whoami step should expose invocations"
for inv in invs:
assert "whoami" in inv.argv, f"unexpected whoami argv: {inv.argv}"
assert "cloud" in inv.argv, f"whoami step must target cloud: {inv.argv}"
assert "auth" not in inv.argv, f"whoami step must not use auth: {inv.argv}"
assert "cloud whoami" in inv.label, f"unexpected whoami label: {inv.label}"
assert "auth whoami" not in inv.label, f"whoami label must not use auth: {inv.label}"

def test_build_steps_includes_parallel_fleet(self):
state = run_cli._DemoState(workflow_path="/tmp/x.json")
steps = run_cli._build_steps(state)
Expand Down
152 changes: 152 additions & 0 deletions tests/comfy_cli/fixtures/cli_command_inventory.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
comfy _watch [hidden]
comfy _watch _watch-job
comfy agent-review [hidden]
comfy assets
comfy assets push
comfy auth
comfy auth list
comfy auth remove
comfy auth set
comfy cloud
comfy cloud login
comfy cloud logout
comfy cloud set-base-url
comfy cloud set-key
comfy cloud whoami
comfy code-search
comfy cs [hidden]
comfy dependency
comfy discover
comfy download
comfy env
comfy feedback
comfy free
comfy generate
comfy help
comfy install
comfy jobs
comfy jobs cancel
comfy jobs ls
comfy jobs status
comfy jobs wait
comfy jobs watch
comfy launch
comfy logs
comfy manager
comfy manager clear
comfy manager disable
comfy manager disable-gui
comfy manager enable-gui
comfy manager enable-legacy-gui
comfy manager migrate-legacy
comfy manager uv-compile-default
comfy model
comfy model _download-worker [hidden]
comfy model download
comfy model download-cancel
comfy model download-status
comfy model downloads
comfy model list
comfy model remove
comfy models
comfy models list-folder
comfy models list-folders
comfy models search
comfy models show
comfy node
comfy node bisect
comfy node bisect bad
comfy node bisect good
comfy node bisect reset
comfy node bisect start
comfy node deps
comfy node deps-in-workflow
comfy node disable
comfy node enable
comfy node fix
comfy node init
comfy node install
comfy node install-deps
comfy node pack
comfy node publish
comfy node registry-install [hidden]
comfy node registry-list [hidden]
comfy node reinstall
comfy node restore-dependencies
comfy node restore-snapshot
comfy node save-snapshot
comfy node scaffold
comfy node show
comfy node simple-show
comfy node uninstall
comfy node update
comfy node update-cache
comfy node uv-sync
comfy node validate
comfy nodes
comfy nodes categories
comfy nodes downstream
comfy nodes ls
comfy nodes path
comfy nodes refresh
comfy nodes search
comfy nodes show
comfy nodes types
comfy nodes upstream
comfy outdated
comfy pr-cache
comfy pr-cache clean
comfy pr-cache list
comfy preview
comfy project
comfy project init
comfy project status
comfy run
comfy run-cli
comfy run-template
comfy set-default
comfy setup
comfy skill [hidden]
comfy skill install
comfy skill list
comfy skill show
comfy skill status
comfy skill uninstall
comfy skill validate
comfy skills
comfy skills install
comfy skills list
comfy skills show
comfy skills status
comfy skills uninstall
comfy skills validate
comfy standalone
comfy stop
comfy system-stats
comfy templates
comfy templates fetch
comfy templates ls
comfy templates refresh
comfy templates show
comfy tracking
comfy tracking disable
comfy tracking enable
comfy update
comfy upload
comfy validate
comfy which
comfy workflow
comfy workflow compose
comfy workflow decompose
comfy workflow delete
comfy workflow fragment
comfy workflow fragment ls
comfy workflow fragment show
comfy workflow fragment validate
comfy workflow get
comfy workflow list
comfy workflow notes
comfy workflow save
comfy workflow set-slot
comfy workflow slots
comfy workflow vary
2 changes: 2 additions & 0 deletions tests/comfy_cli/output/test_branding.py
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,7 @@ def test_intro_banner_signed_out_includes_wordmark_and_login_hint():
assert "comfy install" in out
assert "comfy launch" in out
assert "comfy cloud login" in out
assert "comfy auth login" not in out # `comfy auth ...` is the model-host token group, not Cloud sign-in
assert "comfy discover" in out
assert "comfy --help" in out
assert "not signed in" in out
Expand Down Expand Up @@ -230,4 +231,5 @@ def test_signed_out_banner_points_at_login():
out = _render(signed_out_banner(base_url="https://testcloud.comfy.org"))
assert "not signed in" in out
assert "comfy cloud login" in out
assert "comfy auth login" not in out # `comfy auth ...` is the model-host token group, not Cloud sign-in
assert "testcloud.comfy.org" in out
Loading
Loading