Files
portal/app/tests/Frontend/ChangePasswordCard.spec.ts
T
Дмитрий dab91b62f7 test(фронт): привёл стенд в зелёный — 10 протухших спеков под актуальные компоненты
Все падения — устаревшие ожидания тестов (компоненты менялись намеренно):
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>
2026-06-28 12:58:19 +03:00

32 lines
1.3 KiB
TypeScript

import { describe, it, expect } from 'vitest';
import { mount } from '@vue/test-utils';
import { createVuetify } from 'vuetify';
import ChangePasswordCard from '../../resources/js/components/settings/security/ChangePasswordCard.vue';
const vuetify = createVuetify();
describe('ChangePasswordCard (Q.DEFER.003 sub-B)', () => {
const factory = () => mount(ChangePasswordCard, { global: { plugins: [vuetify] } });
it('renders heading «Пароль»', () => {
const wrapper = factory();
expect(wrapper.find('h3').text()).toBe('Пароль');
});
it('shows last-change hint text', () => {
// Дата берётся из GET /api/account/security; без backend (в тесте) — честное
// «не менялся» (хардкод-демо «12.04.2026» убран намеренно, не показываем фейк).
const wrapper = factory();
expect(wrapper.text()).toContain('Последняя смена: не менялся');
});
it('renders «Сменить пароль» button with lock-reset icon', () => {
const wrapper = factory();
const btn = wrapper.find('button');
expect(btn.exists()).toBe(true);
expect(btn.text()).toContain('Сменить пароль');
expect(wrapper.find('.mdi-lock-reset').exists()).toBe(true);
});
});