45 lines
1.7 KiB
TypeScript
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();
|
|
});
|
|
});
|