diff --git a/app/resources/js/components/deals/DealsBulkBar.vue b/app/resources/js/components/deals/DealsBulkBar.vue
index 35a0a871..bec5b345 100644
--- a/app/resources/js/components/deals/DealsBulkBar.vue
+++ b/app/resources/js/components/deals/DealsBulkBar.vue
@@ -1,20 +1,13 @@
@@ -39,73 +29,38 @@ defineEmits<{
data-testid="bulk-bar"
>
-
- Выбрано {{ selectedCount }}
-
+ Выбрано {{ selectedCount }}
-
- $emit('update:statusMenuOpen', v)"
>
- Восстановить
-
-
- $emit('update:statusMenuOpen', v)"
- >
-
-
- Сменить статус
-
-
-
-
-
-
-
- {{ s.nameRu }}
-
-
-
-
- Экспорт
-
-
- Удалить
-
-
+
+
+ Сменить статус
+
+
+
+
+
+
+
+ {{ s.nameRu }}
+
+
+
{
+ it('скрыт при selectedCount=0', () => {
+ const w = mount(DealsBulkBar, {
+ props: { selectedCount: 0, statusMenuOpen: false, leadStatuses },
+ global: { plugins: [vuetify] },
+ });
+ expect(w.find('[data-testid="bulk-bar"]').exists()).toBe(false);
+ });
+
+ it('виден при selectedCount>0 и показывает количество', () => {
+ const w = mount(DealsBulkBar, {
+ props: { selectedCount: 3, statusMenuOpen: false, leadStatuses },
+ global: { plugins: [vuetify] },
+ });
+ const bar = w.find('[data-testid="bulk-bar"]');
+ expect(bar.exists()).toBe(true);
+ expect(bar.text()).toContain('3');
+ });
+
+ it('НЕ содержит кнопок Экспорт/Удалить', () => {
+ const w = mount(DealsBulkBar, {
+ props: { selectedCount: 2, statusMenuOpen: false, leadStatuses },
+ global: { plugins: [vuetify] },
+ });
+ expect(w.find('[data-testid="bulk-export-btn"]').exists()).toBe(false);
+ expect(w.find('[data-testid="bulk-delete-btn"]').exists()).toBe(false);
+ });
+
+ it('✕ эмитит clear-selected', async () => {
+ const w = mount(DealsBulkBar, {
+ props: { selectedCount: 2, statusMenuOpen: false, leadStatuses },
+ global: { plugins: [vuetify] },
+ });
+ await w.find('[data-testid="bulk-clear-btn"]').trigger('click');
+ expect(w.emitted('clear-selected')).toBeTruthy();
+ });
+});