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