From 6d8151474c71254bf8f97035ab71116b8862925f Mon Sep 17 00:00:00 2001 From: Gros Frumos Date: Thu, 19 Mar 2026 21:54:36 +0200 Subject: [PATCH] kin: KIN-130-frontend_dev --- .../__tests__/task-detail-revising-badge.test.ts | 2 +- web/frontend/src/__tests__/task-tree.test.ts | 6 +++--- web/frontend/tsconfig.json | 3 ++- web/frontend/tsconfig.vitest.json | 14 ++++++++++++++ web/frontend/vite.config.ts | 1 + 5 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 web/frontend/tsconfig.vitest.json diff --git a/web/frontend/src/__tests__/task-detail-revising-badge.test.ts b/web/frontend/src/__tests__/task-detail-revising-badge.test.ts index a4e1497..cd9d30d 100644 --- a/web/frontend/src/__tests__/task-detail-revising-badge.test.ts +++ b/web/frontend/src/__tests__/task-detail-revising-badge.test.ts @@ -110,7 +110,7 @@ describe('KIN-UI-017: TaskDetail — statusColor() для статуса revisin const header = wrapper.find('h1') expect(header.exists()).toBe(true) // Ищем Badge рядом с заголовком задачи — он должен быть orange, не gray/blue - const grayBadgeInHeader = wrapper.find('.text-gray-400.text-xs.rounded') + const _grayBadgeInHeader = wrapper.find('.text-gray-400.text-xs.rounded') // text-gray-400 может встречаться в других элементах, но мы проверяем наличие orange const orangeBadge = wrapper.find('.text-orange-400') expect(orangeBadge.exists()).toBe(true) diff --git a/web/frontend/src/__tests__/task-tree.test.ts b/web/frontend/src/__tests__/task-tree.test.ts index f2767f8..83894a1 100644 --- a/web/frontend/src/__tests__/task-tree.test.ts +++ b/web/frontend/src/__tests__/task-tree.test.ts @@ -253,7 +253,7 @@ describe('KIN-127: дерево задач — отступы', () => { // Обёртка корневой задачи const taskWrapper = wrapper.find('div[style*="padding-left"]') if (taskWrapper.exists()) { - expect(taskWrapper.element.style.paddingLeft).toBe('0px') + expect((taskWrapper.element as HTMLElement).style.paddingLeft).toBe('0px') } else { // Если стиль не задан явно для 0 — это тоже приемлемо expect(true).toBe(true) @@ -278,7 +278,7 @@ describe('KIN-127: дерево задач — отступы', () => { w.find('a[href="/task/KIN-002"]').exists() ) expect(child1Wrapper?.exists()).toBe(true) - expect(child1Wrapper?.element.style.paddingLeft).toBe('24px') + expect((child1Wrapper?.element as HTMLElement | undefined)?.style.paddingLeft).toBe('24px') }) it('Задача второго уровня имеет paddingLeft 48px', async () => { @@ -304,7 +304,7 @@ describe('KIN-127: дерево задач — отступы', () => { w.find('a[href="/task/KIN-003"]').exists() ) expect(child2Wrapper?.exists()).toBe(true) - expect(child2Wrapper?.element.style.paddingLeft).toBe('48px') + expect((child2Wrapper?.element as HTMLElement | undefined)?.style.paddingLeft).toBe('48px') }) }) diff --git a/web/frontend/tsconfig.json b/web/frontend/tsconfig.json index 1ffef60..08c8a90 100644 --- a/web/frontend/tsconfig.json +++ b/web/frontend/tsconfig.json @@ -2,6 +2,7 @@ "files": [], "references": [ { "path": "./tsconfig.app.json" }, - { "path": "./tsconfig.node.json" } + { "path": "./tsconfig.node.json" }, + { "path": "./tsconfig.vitest.json" } ] } diff --git a/web/frontend/tsconfig.vitest.json b/web/frontend/tsconfig.vitest.json new file mode 100644 index 0000000..aa9527b --- /dev/null +++ b/web/frontend/tsconfig.vitest.json @@ -0,0 +1,14 @@ +{ + "extends": "./tsconfig.node.json", + "compilerOptions": { + "types": ["node", "vitest/globals"], + "lib": ["ES2023", "DOM"], + "moduleResolution": "bundler", + "noUnusedLocals": false, + "noUnusedParameters": false + }, + "include": [ + "src/__tests__/**/*.ts", + "src/**/__tests__/**/*.ts" + ] +} diff --git a/web/frontend/vite.config.ts b/web/frontend/vite.config.ts index 186393b..0d53811 100644 --- a/web/frontend/vite.config.ts +++ b/web/frontend/vite.config.ts @@ -13,5 +13,6 @@ export default defineConfig({ environment: 'jsdom', globals: true, setupFiles: ['./src/__tests__/vitest-setup.ts'], + typecheck: { tsconfig: './tsconfig.vitest.json' }, }, })