fix: переименовать вид обращения "Жалоба" в "Обращение"
Обновлены label в KIND_OPTIONS, комментарии и placeholder ФИО в форме. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -4,7 +4,7 @@ import { COMPANY_OPTIONS, getAppealFieldsConfig } from './model';
|
||||
// правило из getAppealFieldsConfig — если оно разойдётся, форма и валидация
|
||||
// начнут спорить друг с другом. Эти тесты фиксируют контракт правила.
|
||||
describe('getAppealFieldsConfig', () => {
|
||||
it('жалоба: описание обязательно, предложение показано, но необязательно', () => {
|
||||
it('обращение: описание обязательно, предложение показано, но необязательно', () => {
|
||||
const fields = getAppealFieldsConfig('complaint');
|
||||
expect(fields.situation).toEqual({ visible: true, required: true });
|
||||
expect(fields.suggestion).toEqual({ visible: true, required: false });
|
||||
|
||||
@@ -43,7 +43,7 @@ export const COMPANY_OPTIONS: ISelectOption[] = [
|
||||
// значением ниже (EMPTY_FEEDBACK.kind), так что выбор пользователя.
|
||||
export const KIND_OPTIONS: ISelectOption[] = [
|
||||
{ value: 'suggestion', label: 'Предложение' },
|
||||
{ value: 'complaint', label: 'Жалоба' },
|
||||
{ value: 'complaint', label: 'Обращение' },
|
||||
{ value: 'other', label: 'Другое' }
|
||||
];
|
||||
|
||||
@@ -61,7 +61,7 @@ export interface IAppealFieldsConfig {
|
||||
|
||||
/**
|
||||
* Состав полей зависит от вида обращения:
|
||||
* жалоба — обязательно описание, а предложение — на желание автора;
|
||||
* обращение — обязательно описание, а предложение — на желание автора;
|
||||
* предложение — только само предложение, «ситуации» ещё нет;
|
||||
* другое — свободное описание, без предложения.
|
||||
* Одно правило на форму и на валидацию, чтобы они не разошлись.
|
||||
|
||||
@@ -28,7 +28,7 @@ export const TEXTS = {
|
||||
|
||||
placeholders: {
|
||||
company: 'Выберите компанию',
|
||||
fullName: 'Иванов Иван Иванович',
|
||||
fullName: 'Нурлан Нурланович Нурланов',
|
||||
position: 'Например: инженер-проектировщик',
|
||||
kindOther: 'Свой вариант',
|
||||
situation: 'Опишите, что произошло: когда, где, кто участвовал',
|
||||
|
||||
@@ -6,7 +6,7 @@ const VALID_COMPANY = '9de064a4-44c8-88ef-11ec-8285925d83d2';
|
||||
const LONG_TEXT = 'Развёрнутое описание, которого достаточно для проверки правила';
|
||||
const SHORT_TEXT = 'коротко';
|
||||
|
||||
/** Полностью заполненное «жалоба»-обращение — стартовая точка для тестов. */
|
||||
/** Полностью заполненное обращение — стартовая точка для тестов. */
|
||||
function buildValidComplaint(overrides: Partial<IFeedbackData> = {}): IFeedbackData {
|
||||
return {
|
||||
...EMPTY_FEEDBACK,
|
||||
@@ -61,17 +61,17 @@ describe('validateFeedback: вид обращения "Другое"', () => {
|
||||
// Состав обязательных полей зависит от вида обращения (см. getAppealFieldsConfig
|
||||
// в model.ts) — эти тесты фиксируют контракт, чтобы форма и валидация не разошлись.
|
||||
describe('validateFeedback: обязательность полей по видам обращения', () => {
|
||||
it('жалоба: описание ситуации обязательно', () => {
|
||||
it('обращение: описание ситуации обязательно', () => {
|
||||
const errors = validateFeedback(buildValidComplaint({ situation: '' }));
|
||||
expect(errors.situation).toBeDefined();
|
||||
});
|
||||
|
||||
it('жалоба: предложение по улучшению НЕ обязательно', () => {
|
||||
it('обращение: предложение по улучшению НЕ обязательно', () => {
|
||||
const errors = validateFeedback(buildValidComplaint({ suggestion: '' }));
|
||||
expect(errors.suggestion).toBeUndefined();
|
||||
});
|
||||
|
||||
it('жалоба: если предложение всё же указано, но слишком коротко — ошибка', () => {
|
||||
it('обращение: если предложение всё же указано, но слишком коротко — ошибка', () => {
|
||||
const errors = validateFeedback(buildValidComplaint({ suggestion: SHORT_TEXT }));
|
||||
expect(errors.suggestion).toBeDefined();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user