Skip to content

Недостаточная статическая валидация #23

Description

@Holdinalt

Я столкнулся с тем, что успешный spec-box validate не гарантирует полного и однозначного соответствия между YAML assertions и Jest-тестами. Хотелось бы добавить проверки отсутствующих пар и дублирующихся identity, чтобы автоматически обнаруживать такие ошибки во время написания и изменения тестов с помощью ИИ.

Ожидаемый контракт:

  • без записи в YAML не должно быть теста;
  • без соответствующего теста не должно быть YAML assertion;
  • каждому assertion соответствует ровно один тест и наоборот.
    Текущее поведение

При исследовании @spec-box/sync@1.2.1 обнаружили:

  • Jest-тест без YAML assertion вызывает jest-unused;
  • YAML assertion без Jest-теста остаётся в состоянии Unknown, но не вызывает ошибку — команда завершается с кодом 0;
  • Jest-тесты с одинаковым полным именем схлопываются в Map, поэтому дубликаты могут остаться незамеченными.
    Из-за этого ИИ может описать сценарий в YAML, забыть реализовать его в spec и получить успешный результат валидации. Такой результат не позволяет использовать проверку как надёжный сигнал для следующего шага работы.

Ожидаемое и фактическое поведение

Ситуация Ожидаемый результат Фактический результат
Однозначное соответствие YAML ↔ Jest Успех Успех
Jest-тест без YAML assertion Ошибка Ошибка, exit code 1
YAML assertion без Jest-теста Ошибка Успех, exit code 0
Несколько Jest-тестов с одинаковым полным identity и соответствующим YAML assertion Ошибка Успех, exit code 0

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions