46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/rogeecn/wxapp-kouqiang-guahao/backend/internal/config"
|
|
"github.com/spf13/cobra"
|
|
)
|
|
|
|
func TestRootCommandDefaultsToServe(t *testing.T) {
|
|
cfg := config.Config{
|
|
Addr: ":9800",
|
|
DatabasePath: ":memory:",
|
|
SchemaPath: "migrations/schema.sql",
|
|
LogLevel: "info",
|
|
}
|
|
var calls []string
|
|
handlers := commandHandlers{
|
|
serve: func(cmd *cobra.Command, args []string) error {
|
|
calls = append(calls, "serve")
|
|
return nil
|
|
},
|
|
migrate: func(cmd *cobra.Command, args []string) error {
|
|
calls = append(calls, "migrate")
|
|
return nil
|
|
},
|
|
seed: func(cmd *cobra.Command, args []string) error {
|
|
calls = append(calls, "seed")
|
|
return nil
|
|
},
|
|
}
|
|
|
|
cmd := newRootCommand(&cfg, handlers)
|
|
cmd.SetArgs([]string{"--addr", "127.0.0.1:18080"})
|
|
|
|
if err := cmd.Execute(); err != nil {
|
|
t.Fatalf("execute root command: %v", err)
|
|
}
|
|
if len(calls) != 1 || calls[0] != "serve" {
|
|
t.Fatalf("calls = %v, want [serve]", calls)
|
|
}
|
|
if cfg.Addr != "127.0.0.1:18080" {
|
|
t.Fatalf("cfg.Addr = %q, want flag value", cfg.Addr)
|
|
}
|
|
}
|