package cli import ( "strings" "testing" ) // go test 執行時 stdin 不是終端機,輸入驗證應在連線資料庫前就失敗。 func TestRunUpdatePasswordValidatesInput(t *testing.T) { tests := []struct { name string args []string wantErr string }{ {"缺 username", nil, "username"}, {"username 僅空白", []string{"-username", " "}, "username"}, {"省略 -password 且非終端機", []string{"-username", "alice"}, "-password"}, {"新密碼過短", []string{"-username", "alice", "-password", "1234567"}, "8"}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { err := runUpdatePassword(tt.args) if err == nil || !strings.Contains(err.Error(), tt.wantErr) { t.Fatalf("runUpdatePassword(%v) = %v, want error containing %q", tt.args, err, tt.wantErr) } }) } }