Files
alterminal/updatepassword_test.go
T

29 lines
830 B
Go

package main
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)
}
})
}
}