2da6273784
Клиент жаловался: кружок «завис» и прогресс не видно, когда окно сбора закрыл. - CollectingIndicator: собственный гарантированно крутящийся кружок (старый ld-spin из @import в scoped не анимировался — известный баг Vue) + текст очередь/этап. - Индикатор ставится прямо на экран (конкурент и «поле») — виден, даже если окно закрыли: «вы в очереди №N» / «этап N из M» / «идёт сбор…». - В окнах сбора заменил статичный кружок на этот индикатор. - 4 теста компонента + тест экрана. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
36 lines
1.8 KiB
TypeScript
36 lines
1.8 KiB
TypeScript
import { describe, it, expect } from 'vitest';
|
|
import { mount } from '@vue/test-utils';
|
|
import CollectingIndicator from '../../resources/js/views/autopodbor/screens/CollectingIndicator.vue';
|
|
|
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
const run = (over: any): any => ({ status: 'running', queue_position: null, progress: null, ...over });
|
|
|
|
describe('CollectingIndicator — бегущий индикатор сбора', () => {
|
|
it('в очереди — «вы в очереди №N» + крутящийся кружок', () => {
|
|
const w = mount(CollectingIndicator, { props: { run: run({ status: 'queued', queue_position: 3 }) } });
|
|
expect(w.text()).toContain('№3');
|
|
expect(w.text().toLowerCase()).toContain('очеред');
|
|
expect(w.find('.ld-collecting__spin').exists()).toBe(true);
|
|
});
|
|
|
|
it('идёт работа — показывает этап N из M и подпись', () => {
|
|
const w = mount(CollectingIndicator, {
|
|
props: { run: run({ progress: { stage: 2, total: 4, label: 'Ищем фирмы в справочниках' } }) },
|
|
});
|
|
expect(w.text()).toContain('2');
|
|
expect(w.text()).toContain('4');
|
|
expect(w.text()).toContain('Ищем фирмы в справочниках');
|
|
});
|
|
|
|
it('идёт, но этап ещё не пришёл — общий текст «идёт сбор» + кружок', () => {
|
|
const w = mount(CollectingIndicator, { props: { run: run({}) } });
|
|
expect(w.text().toLowerCase()).toContain('идёт');
|
|
expect(w.find('.ld-collecting__spin').exists()).toBe(true);
|
|
});
|
|
|
|
it('run=null — общий текст, не падает', () => {
|
|
const w = mount(CollectingIndicator, { props: { run: null } });
|
|
expect(w.find('.ld-collecting__spin').exists()).toBe(true);
|
|
});
|
|
});
|