multica/server/cmd/multica/cmd_compat_test.go
Jiayuan 38d595d81d feat(cli): restructure CLI commands for better UX
- Add top-level `multica login` that combines auth + workspace auto-discovery
- Restructure daemon into subcommands: start, stop, status, logs
- Add background daemon mode with PID management
- Add daemon deregistration on shutdown (new API endpoint + SQL query)
- Remove unused commands: runtime list, status, agent get/delete/stop
- Make `config` show config directly instead of requiring `config show`
- Update README to reflect new CLI structure

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-29 01:43:45 +08:00

58 lines
1.8 KiB
Go

package main
import (
"testing"
"github.com/multica-ai/multica/server/internal/cli"
)
func TestLegacyCompatibilityCommandsRemainAvailable(t *testing.T) {
t.Run("auth login remains available", func(t *testing.T) {
if _, _, err := authCmd.Find([]string{"login"}); err != nil {
t.Fatalf("expected auth login command to exist: %v", err)
}
})
t.Run("workspace get remains available", func(t *testing.T) {
if _, _, err := workspaceCmd.Find([]string{"get"}); err != nil {
t.Fatalf("expected workspace get command to exist: %v", err)
}
})
t.Run("workspace members remains available", func(t *testing.T) {
if _, _, err := workspaceCmd.Find([]string{"members"}); err != nil {
t.Fatalf("expected workspace members command to exist: %v", err)
}
})
t.Run("config show and set remain available", func(t *testing.T) {
if _, _, err := configCmd.Find([]string{"show"}); err != nil {
t.Fatalf("expected config show command to exist: %v", err)
}
if _, _, err := configCmd.Find([]string{"set"}); err != nil {
t.Fatalf("expected config set command to exist: %v", err)
}
})
}
func TestRunConfigSetPersistsValues(t *testing.T) {
t.Setenv("HOME", t.TempDir())
if err := runConfigSet(nil, []string{"server_url", "http://example.com"}); err != nil {
t.Fatalf("runConfigSet(server_url) error = %v", err)
}
if err := runConfigSet(nil, []string{"workspace_id", "ws-123"}); err != nil {
t.Fatalf("runConfigSet(workspace_id) error = %v", err)
}
cfg, err := cli.LoadCLIConfig()
if err != nil {
t.Fatalf("LoadCLIConfig() error = %v", err)
}
if cfg.ServerURL != "http://example.com" {
t.Fatalf("ServerURL = %q, want %q", cfg.ServerURL, "http://example.com")
}
if cfg.WorkspaceID != "ws-123" {
t.Fatalf("WorkspaceID = %q, want %q", cfg.WorkspaceID, "ws-123")
}
}