feat(recipe): drafts

This commit is contained in:
mso7nueh
2026-02-18 18:04:01 +03:00
parent 75983818d1
commit 9753644570
6 changed files with 127 additions and 39 deletions

View File

@@ -438,5 +438,44 @@ void main() {
expect(cubit.validateAll(), true);
});
// validateForDraft tests
test('validateForDraft - возвращает false когда title не задан', () {
expect(cubit.validateForDraft(), false);
expect(cubit.state.titleValidationError, 'Поле не заполнено');
});
test('validateForDraft - возвращает false когда title слишком короткий', () {
cubit.replaceTitle('AB');
expect(cubit.validateForDraft(), false);
expect(cubit.state.titleValidationError, 'Минимальная длина 3 символа ');
});
test('validateForDraft - возвращает true когда задан только title', () {
cubit.replaceTitle('Мой черновик');
expect(cubit.validateForDraft(), true);
expect(cubit.state.titleValidationError, isNull);
});
test('validateForDraft - сбрасывает ошибки остальных полей', () {
// Сначала вызываем validateAll, чтобы появились ошибки
cubit.validateAll();
expect(cubit.state.descriptionValidationError, isNotNull);
expect(cubit.state.imageValidationError, isNotNull);
// Теперь задаём title и вызываем validateForDraft
cubit.replaceTitle('Мой черновик');
final result = cubit.validateForDraft();
expect(result, true);
expect(cubit.state.descriptionValidationError, isNull);
expect(cubit.state.cookingTimeValidationError, isNull);
expect(cubit.state.activeTimeValidationError, isNull);
expect(cubit.state.servingsValidationError, isNull);
expect(cubit.state.energyPerServingValidationError, isNull);
expect(cubit.state.imageValidationError, isNull);
expect(cubit.state.stepsValidationError, isNull);
expect(cubit.state.ingredientsValidationError, isNull);
});
});
}