gcli2api / internal /auth /permhint_test.go
a3216's picture
chore: 同步到上游 1.12.0-panel + 凭证同步/独立启动器/保活
6d60378 verified
Raw History Blame Contribute Delete
886 Bytes
package auth
import (
"os"
"path/filepath"
"runtime"
"strings"
"testing"
)
// TestSaveAtomicPermissionHint 无写权限目录下保存,错误应包含 Docker chown 指引。
func TestSaveAtomicPermissionHint(t *testing.T) {
if runtime.GOOS == "windows" || os.Geteuid() == 0 {
t.Skip("Windows 无 POSIX 权限语义 / root 无权限限制,跳过")
}
dir := t.TempDir()
ro := filepath.Join(dir, "ro")
os.MkdirAll(ro, 0o555) // 只读目录
defer os.Chmod(ro, 0o755)
a := &Auth{AccessToken: "at", RefreshToken: "rt", ExpiresAt: 1,
UID: "u1", FilePath: filepath.Join(ro, "workbuddy-u1.json")}
err := a.SaveAtomic()
if err == nil {
t.Fatal("只读目录保存应失败")
}
if !strings.Contains(err.Error(), "chown") || !strings.Contains(err.Error(), "10001") {
t.Errorf("权限错误应包含 Docker 指引,实际: %v", err)
}
}