2026-06-28 15:10:29 +03:00
|
|
|
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
|
|
|
|
import { mount } from '@vue/test-utils';
|
|
|
|
|
import { createPinia, setActivePinia } from 'pinia';
|
|
|
|
|
import { createVuetify } from 'vuetify';
|
|
|
|
|
|
|
|
|
|
vi.mock('../../resources/js/api/autopodbor');
|
|
|
|
|
import * as api from '../../resources/js/api/autopodbor';
|
|
|
|
|
import AutopodborView from '../../resources/js/views/autopodbor/AutopodborView.vue';
|
|
|
|
|
|
|
|
|
|
const vuetify = createVuetify();
|
|
|
|
|
|
|
|
|
|
function mountView() {
|
|
|
|
|
return mount(AutopodborView, { global: { plugins: [vuetify] } });
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
describe('AutopodborView', () => {
|
|
|
|
|
beforeEach(() => {
|
|
|
|
|
setActivePinia(createPinia());
|
|
|
|
|
vi.clearAllMocks();
|
|
|
|
|
(api.fetchState as any).mockResolvedValue({ enabled: true, prices: { search: '500', study: '300' }, runs: [] });
|
2026-06-30 04:18:46 +03:00
|
|
|
(api.fetchField as any).mockResolvedValue([]);
|
2026-06-28 15:10:29 +03:00
|
|
|
});
|
|
|
|
|
|
2026-06-30 04:18:46 +03:00
|
|
|
it('по умолчанию показывает рабочее место «Конкурентное поле»', async () => {
|
2026-06-28 15:10:29 +03:00
|
|
|
const w = mountView();
|
|
|
|
|
await new Promise((r) => setTimeout(r, 0));
|
2026-06-30 04:18:46 +03:00
|
|
|
expect(w.text()).toContain('Конкурентное поле');
|
|
|
|
|
expect(w.text()).toContain('Собрать конкурентов');
|
2026-06-28 15:10:29 +03:00
|
|
|
});
|
|
|
|
|
|
2026-06-30 04:18:46 +03:00
|
|
|
it('«Собрать конкурентов для меня» открывает окно сбора', async () => {
|
2026-06-28 15:10:29 +03:00
|
|
|
const w = mountView();
|
|
|
|
|
await new Promise((r) => setTimeout(r, 0));
|
2026-06-30 04:18:46 +03:00
|
|
|
const btn = w.findAll('button').find((b) => b.text().includes('Собрать конкурентов для меня'));
|
2026-06-28 15:10:29 +03:00
|
|
|
expect(btn).toBeTruthy();
|
|
|
|
|
await btn!.trigger('click');
|
2026-06-30 04:18:46 +03:00
|
|
|
// открылось модальное окно сбора с правилами заполнения
|
|
|
|
|
expect(w.text()).toContain('Как заполнить, чтобы результат был точным');
|
2026-06-28 15:10:29 +03:00
|
|
|
});
|
|
|
|
|
});
|