Приложение заметок: инструкция с проверкой сохранения и повтора
Журнал команд показывает создание заметки, повтор запроса и отказ сохранения; текст инструкции привязан к фактическому поведению.
Задача и принятое решение
После нажатия «Сохранить» пользователь должен отличать запись от ошибки и неопределенного результата. Я сделал маленький журнал заметок с ключом операции и видимыми состояниями.
Создание заметки требует ID, текста и успешного хранилища. Повтор ключа возвращает прежнюю запись, ошибка не увеличивает число заметок. Руководство использует эти же поля и объясняет проверку после повтора.
Хранилище локальное, на время расчета страницы. Перезагрузка не сохраняет пользовательские данные.
Руководство, версия 1.0
| Условие | Действие | Результат | Если не получилось |
|---|---|---|---|
| Нужно создать заметку | Заполните ID, текст и новый ключ операции. | Строка содержит непустой текст. | Пробелы без текста не принимаются. |
| Хранилище доступно | Выполните расчет и найдите «Сохранено: ID». | Счетчик заметок увеличился, текст виден в результате. | Ошибка не должна выглядеть как сохраненная запись. |
| Ответ после сохранения потерян | Повторите тот же ключ операции. | Появляется «Повтор», счетчик не растет. | Не создавайте новый ключ до проверки старого. |
| Есть ошибка сохранения | Сохраните введенный текст отдельно; повторите после восстановления хранилища. | Текст появляется только после успешного исхода. | Данные страницы исчезают после перезагрузки. |
Проверить решение
Измените исходные строки или параметры и пересчитайте результат. Данные остаются в этой странице.
| Ключ | ID | Статус | Записей после |
|---|---|---|---|
| R1 | N1 | Сохранено: N1 | 1 |
| R1 | N1 | Повтор: N1 | 1 |
| R2 | N2 | Ошибка сохранения | 1 |
| R3 | N3 | Ошибка: заполните ID и текст | 1 |
N1: Проверить комплект макета
Исходный набор
Это полный вход для приложенного локального инструмента. Руководство относится именно к этой версии интерфейса.
Изменить входные строки
Посмотреть исходные строки
| Команда | Ключ | ID | Текст | Хранилище |
|---|---|---|---|---|
| save | R1 | N1 | Проверить комплект макета | ok |
| save | R1 | N1 | Проверить комплект макета | ok |
| save | R2 | N2 | Уточнить размер | error |
| save | R3 | N3 | ok |
Что получилось
Исходный журнал создает N1 один раз и возвращает его на одинаковый повтор R1. Пустой ключ, конфликт содержимого под тем же ключом и новый ключ для существующего ID дают отказ. Ошибка хранилища и пустой текст не создают запись; после восстановления сохраняется N2.
Выполненная проверка
| Проверка | Результат |
|---|---|
| Одна заметка, повтор не дублирует, две ошибки не сохраняют | Пройдена |
| Восстановление хранилища позволяет создать N2 | Пройдена |
| Пробелы не считаются текстом заметки | Пройдена |
| Пустой ключ операции отклоняется | Пройдена |
| Тот же ключ с другим содержимым дает конфликт | Пройдена |
| Новый ключ не перезаписывает существующий ID | Пройдена |
Стенд не моделирует распределенную БД, конкурентные изменения или постоянное хранение.
Скачать материалы и повторить проверку
source.json · source.csv · result.json · result.csv · engine.js · verify.cjs · checks.json · style.css · manual.txt
Локальная проверка: node verify.cjs. Нужен Node.js; сетевые обращения не выполняются.