本文档提供了 /trust 命令系列的测试步骤和预期结果。
# 确保没有环境变量干扰
unset UEVO_TRUSTED_DIRS
# 创建测试目录结构
mkdir -p /tmp/trust-test/project1
mkdir -p /tmp/trust-test/project2
mkdir -p /tmp/trust-test/project3
echo "test file" > /tmp/trust-test/project1/test.txt# 备份现有配置(如果有)
cp ~/.gemini/settings.json ~/.gemini/settings.json.backup 2>/dev/null || true
# 启动CLI
gemini# 在CLI中执行
/trust status预期结果:
- 显示当前目录不受信任
- 显示无可信目录配置
- 无环境变量配置
/trust add /tmp/trust-test/project1预期结果:
- 成功添加消息:
✓ Added trusted directory: /tmp/trust-test/project1 - 提示重启CLI生效
/trust list预期结果:
- 显示1个可信目录
- 目录状态为存在(✓)
- 递归设置为Yes
/trust add /tmp/trust-test/project2
/trust add /tmp/trust-test/project3预期结果:
- 每次都成功添加
- 显示成功消息
/trust add /tmp/trust-test/project1预期结果:
- 显示"Directory is already trusted"消息
- 不重复添加
/trust list # 查看当前列表
/trust remove 2 # 删除第2个项目预期结果:
- 成功删除project2
- 显示删除确认消息
/trust remove /tmp/trust-test/project3预期结果:
- 成功删除project3
- 显示删除确认消息
/trust remove /nonexistent/path预期结果:
- 显示错误消息:"Directory not found in trusted list"
/trust check /tmp/trust-test/project1预期结果:
- 显示"TRUSTED"状态
- 说明该路径在可信目录中
/trust check /tmp/some-other-path预期结果:
- 显示"NOT TRUSTED"状态
- 提示如何添加为可信目录
/trust check /tmp/trust-test/project1/subdir预期结果:
- 显示"TRUSTED"状态(因为recursive=true)
/trust clear预期结果:
- 显示清除成功消息
- 提示重启CLI生效
/trust list预期结果:
- 显示"No trusted directories configured"
# 退出CLI
/quit
# 设置环境变量
export UEVO_TRUSTED_DIRS="/tmp/trust-test/project1:/tmp/trust-test/project2"
# 重新启动CLI
gemini/trust list预期结果:
- 显示环境变量配置的目录
- 显示"Environment Variable"部分
- 显示优先级说明
# 尝试添加配置文件中的目录
/trust add /tmp/trust-test/project3
/trust list预期结果:
- 环境变量目录仍然显示
- 配置文件中的目录也会显示
- 说明优先级关系
# 退出CLI并清理环境变量
/quit
unset UEVO_TRUSTED_DIRS
# 创建测试文件
mkdir -p /tmp/trust-test/write-test
echo "original content" > /tmp/trust-test/write-test/test.txt# 启动CLI并进入测试目录
gemini
cd /tmp/trust-test/write-test
# 尝试文件操作(应该需要确认)
"请修改test.txt文件的内容"预期结果:
- 文件操作需要用户确认
- Shell命令受到权限限制
# 添加当前目录为可信
/trust add .
/quit # 重启生效
# 重新启动并测试
gemini
cd /tmp/trust-test/write-test
# 再次尝试文件操作(应该无需确认)
"请修改test.txt文件的内容"预期结果:
- 文件操作无需确认
- Shell命令无权限限制
/trust add /this/path/does/not/exist预期结果:
- 显示"Directory does not exist"错误
/trust add /tmp/trust-test/project1/test.txt预期结果:
- 显示"Path is not a directory"错误
# 尝试添加需要特殊权限的目录(如果有)
/trust add /root # 在普通用户下预期结果:
- 可能显示权限相关错误
- 或成功添加但在使用时出错
# 在CLI中清理
/trust clear
/quit
# 在shell中清理
rm -rf /tmp/trust-test
mv ~/.gemini/settings.json.backup ~/.gemini/settings.json 2>/dev/null || true
unset UEVO_TRUSTED_DIRS- 基础状态显示
- 添加单个目录
- 添加多个目录
- 重复添加处理
- 通过索引删除
- 通过路径删除
- 删除不存在项处理
- 路径信任检查
- 递归目录信任
- 清除所有配置
- 环境变量配置
- 环境变量优先级
- 文件操作权限集成
- Shell命令权限集成
- 错误路径处理
- 文件vs目录检查
- 权限错误处理
- 重启要求:通过
/trust命令修改的配置需要重启CLI才能生效 - 环境变量优先级:环境变量会覆盖配置文件设置
- 绝对路径:内部统一使用绝对路径,相对路径会被转换
- 平台差异:Windows和Unix路径处理可能有细微差异
- 确认已重启CLI
- 检查环境变量是否干扰
- 验证配置文件格式
- 使用绝对路径
- 检查目录是否存在
- 验证权限设置
- 确认当前目录在可信目录中
- 检查recursive设置
- 重启CLI确保配置生效