forked from Gitlink/gitlink-cli
84 lines
1.8 KiB
Go
84 lines
1.8 KiB
Go
package auth
|
|
|
|
import (
|
|
"bytes"
|
|
"os"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/gitlink-org/gitlink-cli/internal/i18n"
|
|
)
|
|
|
|
func TestAuthTokenLoginUsesLocalizedPrompt(t *testing.T) {
|
|
tr, err := i18n.New(i18n.Options{Locale: "zh-CN"})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
oldStoreToken := storeToken
|
|
var storedToken string
|
|
storeToken = func(token string) error {
|
|
storedToken = token
|
|
return nil
|
|
}
|
|
t.Cleanup(func() {
|
|
storeToken = oldStoreToken
|
|
})
|
|
|
|
cmd := NewAuthCmd(tr)
|
|
cmd.SetArgs([]string{"login", "--token"})
|
|
cmd.SetIn(strings.NewReader("test-token\n"))
|
|
var out bytes.Buffer
|
|
cmd.SetOut(&out)
|
|
cmd.SetErr(&out)
|
|
|
|
if err := cmd.Execute(); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if storedToken != "test-token" {
|
|
t.Fatalf("stored token = %q, want test-token", storedToken)
|
|
}
|
|
output := out.String()
|
|
if !strings.Contains(output, "粘贴你的访问 Token") {
|
|
t.Fatalf("expected localized token prompt, got:\n%s", output)
|
|
}
|
|
if !strings.Contains(output, "Token 已保存") {
|
|
t.Fatalf("expected localized token saved message, got:\n%s", output)
|
|
}
|
|
}
|
|
|
|
func TestAuthStatusUsesLocalizedNotLoggedIn(t *testing.T) {
|
|
t.Setenv("GITLINK_CONFIG_DIR", t.TempDir())
|
|
t.Setenv(envTokenVar, "")
|
|
|
|
tr, err := i18n.New(i18n.Options{Locale: "zh-CN"})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
oldLoadToken := loadToken
|
|
loadToken = func() (string, error) {
|
|
return "", os.ErrNotExist
|
|
}
|
|
t.Cleanup(func() {
|
|
loadToken = oldLoadToken
|
|
})
|
|
|
|
cmd := NewAuthCmd(tr)
|
|
cmd.SetArgs([]string{"status"})
|
|
var out bytes.Buffer
|
|
cmd.SetOut(&out)
|
|
cmd.SetErr(&out)
|
|
|
|
if err := cmd.Execute(); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
output := out.String()
|
|
if !strings.Contains(output, "未登录") {
|
|
t.Fatalf("expected localized not logged in message, got:\n%s", output)
|
|
}
|
|
if !strings.Contains(output, "gitlink-cli auth login") {
|
|
t.Fatalf("expected login hint, got:\n%s", output)
|
|
}
|
|
}
|