import { describe, it, expect } from 'vitest'; import { mount } from '@vue/test-utils'; import { createVuetify } from 'vuetify'; import BalanceCard from '../../resources/js/components/billing/BalanceCard.vue'; const vuetify = createVuetify(); function factory() { return mount(BalanceCard, { global: { plugins: [vuetify] }, props: { walletRub: 14250, leadsBalance: 285, tariffName: 'Про', tariffPrice: '990.00', tariffFeatures: ['Webhook', 'Канбан'], }, }); } describe('BalanceCard.vue', () => { it('кнопка «Пополнить» активна и эмитит topup', async () => { const wrapper = factory(); const btn = wrapper.findAll('button').find((b) => b.text().includes('Пополнить')); expect(btn).toBeDefined(); expect(btn!.attributes('disabled')).toBeUndefined(); await btn!.trigger('click'); expect(wrapper.emitted('topup')).toBeTruthy(); }); it('кнопка «Автопополнение» disabled (E2 — нет backend)', () => { const wrapper = factory(); const btn = wrapper.findAll('button').find((b) => b.text().includes('Автопополнение')); expect(btn).toBeDefined(); expect(btn!.attributes('disabled')).toBeDefined(); }); it('кнопка «Сменить тариф» disabled (E2 — нет backend)', () => { const wrapper = factory(); const btn = wrapper.findAll('button').find((b) => b.text().includes('Сменить тариф')); expect(btn).toBeDefined(); expect(btn!.attributes('disabled')).toBeDefined(); }); });