Skip to content

Commit 8092125

Browse files
committed
cli: Register auth command as implemented in command surface
1 parent f18f4d2 commit 8092125

7 files changed

Lines changed: 80 additions & 27 deletions

File tree

cli/src/command_surface.rs

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@ pub const COMMANDS: &[CommandContract] = &[
3434
status: ImplementationStatus::Implemented,
3535
purpose: "Validate local git-hook installation readiness",
3636
},
37+
CommandContract {
38+
name: services::auth_command::NAME,
39+
status: ImplementationStatus::Implemented,
40+
purpose: "Authenticate with WorkOS and inspect local auth state",
41+
},
3742
CommandContract {
3843
name: services::mcp::NAME,
3944
status: ImplementationStatus::Placeholder,
@@ -84,13 +89,14 @@ pub fn help_text() -> String {
8489
Usage:\n sce [command]\n\n\
8590
Config usage:\n sce config <show|validate> [--format <text|json>] [options]\n\n\
8691
Setup usage:\n sce setup [--opencode|--claude|--both] [--non-interactive] [--hooks] [--repo <path>]\n\n\
92+
Auth usage:\n sce auth <login|logout|status> [--format <text|json>]\n\n\
8793
Completion usage:\n sce completion --shell <bash|zsh|fish>\n\n\
8894
Output format contract:\n Supported commands accept --format <text|json>\n\n\
89-
Examples:\n sce setup\n sce setup --opencode --non-interactive --hooks\n sce setup --hooks --repo ../demo-repo\n sce doctor --format json\n sce version --format json\n\n\
95+
Examples:\n sce setup\n sce setup --opencode --non-interactive --hooks\n sce setup --hooks --repo ../demo-repo\n sce auth status\n sce auth login --format json\n sce doctor --format json\n sce version --format json\n\n\
9096
Commands:\n{}\n\n\
9197
Setup defaults to interactive target selection when no setup target flag is passed, and installs hooks in the same run.\n\
9298
Use '--hooks' to install required git hooks for the current repository or '--repo <path>' for a specific repository.\n\
93-
`setup`, `doctor`, and `hooks` are implemented; `mcp` and `sync` remain placeholder-oriented.\n",
99+
`setup`, `doctor`, `auth`, `hooks`, `version`, and `completion` are implemented; `mcp` and `sync` remain placeholder-oriented.\n",
94100
command_rows
95101
)
96102
}
@@ -126,6 +132,25 @@ mod tests {
126132
assert!(help.contains("version"));
127133
}
128134

135+
#[test]
136+
fn command_surface_includes_auth_as_known_implemented_command() {
137+
let auth = COMMANDS
138+
.iter()
139+
.find(|command| command.name == crate::services::auth_command::NAME)
140+
.expect("auth command should be listed");
141+
142+
assert_eq!(auth.status, ImplementationStatus::Implemented);
143+
assert!(crate::command_surface::is_known_command("auth"));
144+
}
145+
146+
#[test]
147+
fn help_text_mentions_auth_usage_examples() {
148+
let help = help_text();
149+
assert!(help.contains("sce auth <login|logout|status> [--format <text|json>]"));
150+
assert!(help.contains("sce auth status"));
151+
assert!(help.contains("sce auth login --format json"));
152+
}
153+
129154
#[test]
130155
fn help_text_mentions_completion_command() {
131156
let help = help_text();

context/architecture.md

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

context/cli/placeholder-foundation.md

Lines changed: 5 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

context/glossary.md

Lines changed: 3 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

context/overview.md

Lines changed: 3 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)