dab91b62f7
Все падения — устаревшие ожидания тестов (компоненты менялись намеренно): SettingsView (роутер+вкладка Реквизиты+события), LegalDoc (реальные доки под ЮKassa), ProjectsView (BulkActionsBar v-show→isVisible), ErrorView (убран фейк REQ/INC), PricingTiers (формат «500 ₽»), KanbanCard (costKopecks→«—»), ChangePassword (дата из API), DealDetail (русские ярлыки статусов), DealsView (RuDateField на v-menu), SupplierIntegration (window.confirm→v-dialog). Изменены ТОЛЬКО тесты, компоненты не тронуты. Полный прогон: 127 файлов / 992 теста зелёные. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
42 lines
1.9 KiB
TypeScript
42 lines
1.9 KiB
TypeScript
import { describe, it, expect } from 'vitest';
|
||
import { mount } from '@vue/test-utils';
|
||
import { createVuetify } from 'vuetify';
|
||
import KanbanCard from '../../resources/js/components/kanban/KanbanCard.vue';
|
||
import { MOCK_DEALS } from '../../resources/js/composables/mockDeals';
|
||
|
||
describe('KanbanCard.vue', () => {
|
||
const factory = (deal = MOCK_DEALS[0]) =>
|
||
mount(KanbanCard, {
|
||
props: { deal },
|
||
global: { plugins: [createVuetify()] },
|
||
});
|
||
|
||
it('рендерит имя, телефон, проект и стоимость', () => {
|
||
// Карточка показывает ФАКТ списания (costKopecks), а не legacy cost; при отсутствии
|
||
// списания — «—». Формат проверяем на сделке с costKopecks=185000 → «1 850 ₽».
|
||
const wrapper = factory({ ...MOCK_DEALS[0], costKopecks: 185000 });
|
||
const text = wrapper.text();
|
||
expect(text).toContain('Анна Соколова');
|
||
expect(text).toContain('+7 (916) 871-23-45');
|
||
expect(text).toContain('Натяжные потолки');
|
||
expect(text).toMatch(/1\s+850\s*₽/);
|
||
});
|
||
|
||
it('показывает «—» в стоимости когда списания ещё не было (costKopecks=null)', () => {
|
||
const wrapper = factory({ ...MOCK_DEALS[0], costKopecks: null });
|
||
expect(wrapper.find('.card-cost').text()).toBe('—');
|
||
});
|
||
|
||
it('показывает initials менеджера', () => {
|
||
const wrapper = factory(MOCK_DEALS[0]);
|
||
expect(wrapper.text()).toContain('ИП');
|
||
});
|
||
|
||
it('emit-ит open(id) при клике', async () => {
|
||
const wrapper = factory(MOCK_DEALS[0]);
|
||
await wrapper.find('.kanban-card').trigger('click');
|
||
expect(wrapper.emitted('open')).toBeTruthy();
|
||
expect(wrapper.emitted('open')?.[0]).toEqual([MOCK_DEALS[0].id]);
|
||
});
|
||
});
|