1
0
Files
lanyuanxiaoyao ef3fa6a06a feat: 添加模板变量验证功能
- 在 ResourceValidator 中添加 validate_template_vars 方法
- 在验证阶段检查用户是否提供了模板所需的必需变量
- 缺少必需变量时返回 ERROR 级别错误
- 添加 9 个单元测试用例验证功能
- 同步更新 OpenSpec 规格文档
2026-03-03 01:00:21 +08:00

2.2 KiB
Raw Blame History

ADDED Requirements

Requirement: 验证器必须检查模板必需变量

当 YAML 使用模板时,系统 SHALL 验证用户是否提供了模板所需的必需变量。

Scenario: 提供所有必需变量

  • WHEN 模板定义了 vars: [{name: title, required: true}],且用户 YAML 提供了 vars: {title: "Hello"}
  • THEN 验证通过,不报错

Scenario: 缺少必需变量

  • WHEN 模板定义了 vars: [{name: title, required: true}],但用户 YAML 的 vars 中没有提供 title
  • THEN 验证器报告 ERROR 级别错误:"缺少模板必需变量: title"

Scenario: 多个必需变量部分缺失

  • WHEN 模板定义了 vars: [{name: title, required: true}, {name: subtitle, required: true}],但用户只提供了 vars: {title: "Hello"}
  • THEN 验证器报告 ERROR 级别错误,包含所有缺少的必需变量

Scenario: 可选变量缺失

  • WHEN 模板定义了 vars: [{name: subtitle, required: false}],用户没有提供该变量
  • THEN 验证通过,不报错

Scenario: 提供默认值时缺少可选变量

  • WHEN 模板定义了 vars: [{name: subtitle, required: false, default: ""}],用户没有提供该变量
  • THEN 验证通过,不报错(使用默认值)

Requirement: 验证器必须支持多幻灯片模板变量检查

系统 SHALL 检查每个使用模板的幻灯片,确保其提供了模板所需的必需变量。

Scenario: 不同幻灯片使用不同模板

  • WHEN 幻灯片 1 使用模板 A需要变量 title幻灯片 2 使用模板 B需要变量 image
  • THEN 验证器分别检查每个幻灯片的变量,提供独立的错误信息

Scenario: 多个幻灯片使用同一模板

  • WHEN 幻灯片 1 和幻灯片 2 都使用同一模板,都缺少必需变量
  • THEN 验证器报告两个错误,分别对应各自的幻灯片位置

Requirement: 验证器必须提供清晰的错误位置信息

当缺少必需变量时,验证器 SHALL 在错误信息中包含幻灯片位置。

Scenario: 错误信息包含幻灯片位置

  • WHEN 幻灯片 2 使用模板但缺少必需变量
  • THEN 错误信息包含位置:"幻灯片 2: 缺少模板必需变量: title"