diff --git a/web/frontend/src/__tests__/task-tree.test.ts b/web/frontend/src/__tests__/task-tree.test.ts index 1423a0b..5ba6192 100644 --- a/web/frontend/src/__tests__/task-tree.test.ts +++ b/web/frontend/src/__tests__/task-tree.test.ts @@ -320,15 +320,14 @@ describe('KIN-127: статус revising', () => { expect(wrapper.find('a[href="/task/KIN-001"]').exists()).toBe(true) }) - it('Badge для статуса revising присутствует в списке задач', async () => { + it('Badge для статуса revising отображается с orange цветом', async () => { const tasks = [makeTask('KIN-001', 'revising', null)] const wrapper = await mountTasks(tasks) - // Badge с текстом revising должен присутствовать - const text = wrapper.text() - expect(text).toContain('revising') - // Badge должен иметь orange цвет - const orangeBadge = wrapper.find('.text-orange-400, .bg-orange-400, .bg-orange-500, .border-orange-400, .border-orange-500') + // Badge получает raw status string (decision #827: i18n на стороне вызывающего) + expect(wrapper.text()).toContain('revising') + // Badge с color="orange" применяет класс text-orange-400 (Badge.vue: colors.orange) + const orangeBadge = wrapper.find('.text-orange-400') expect(orangeBadge.exists()).toBe(true) }) }) @@ -379,8 +378,11 @@ describe('KIN-127: защита от циклических ссылок', () => const wrapper = await mountTasks(tasks) // Рендер завершился без ошибок expect(wrapper.exists()).toBe(true) - // При циклической ссылке ни одна задача не является «корневой» с дочерними — - // toggle кнопок быть не должно (дефолтное состояние: дети не показаны) + // rootFilteredTasks пустой: оба KIN-001 и KIN-002 имеют parent_task_id + // указывающий на существующую задачу → оба отфильтрованы (decision #817) + const taskLinks = wrapper.findAll('a[href^="/task/"]') + expect(taskLinks.length).toBe(0) + // toggle кнопок нет — задачи не попали в список (decision #826: независимые visited Set) const toggleBtns = wrapper.findAll('[data-testid="task-toggle-children"]') expect(toggleBtns.length).toBe(0) })