Files
portal/app/tests/Frontend/BalanceCard.spec.ts
T

45 lines
1.7 KiB
TypeScript

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();
});
});