From 62354cfe8be5168fc8317f3d8d2ef2c9cdd2eaf5 Mon Sep 17 00:00:00 2001 From: Gregor Vostrak Date: Tue, 12 May 2026 17:33:26 +0200 Subject: [PATCH] remove timetrackerprojecttaskdropdown test without setup --- .../TimeTrackerProjectTaskDropdown.test.ts | 80 ------------------- 1 file changed, 80 deletions(-) delete mode 100644 resources/js/packages/ui/src/TimeTracker/TimeTrackerProjectTaskDropdown.test.ts diff --git a/resources/js/packages/ui/src/TimeTracker/TimeTrackerProjectTaskDropdown.test.ts b/resources/js/packages/ui/src/TimeTracker/TimeTrackerProjectTaskDropdown.test.ts deleted file mode 100644 index 9068958e..00000000 --- a/resources/js/packages/ui/src/TimeTracker/TimeTrackerProjectTaskDropdown.test.ts +++ /dev/null @@ -1,80 +0,0 @@ -/* eslint-disable vue/one-component-per-file */ -import { mount } from '@vue/test-utils'; -import { describe, expect, it, vi } from 'vitest'; -import { defineComponent, h, nextTick, onMounted } from 'vue'; -import TimeTrackerProjectTaskDropdown from './TimeTrackerProjectTaskDropdown.vue'; -import type { Client, Project, Task } from '@/packages/api/src'; - -const DropdownStub = defineComponent({ - props: { - modelValue: { - type: Boolean, - default: false, - }, - }, - emits: ['update:modelValue'], - setup(_, { emit, slots }) { - onMounted(() => emit('update:modelValue', true)); - return () => h('div', [slots.trigger?.(), slots.content?.()]); - }, -}); - -const FocusTrapStub = defineComponent({ - setup(_, { slots }) { - return () => h('div', slots.default?.()); - }, -}); - -function mountDropdown(props: Record = {}) { - return mount(TimeTrackerProjectTaskDropdown, { - props: { - project: null, - task: null, - projects: [] as Project[], - tasks: [] as Task[], - clients: [] as Client[], - createProject: vi.fn(), - createClient: vi.fn(), - currency: 'EUR', - enableEstimatedTime: false, - organizationBillableRate: null, - canCreateProject: false, - ...props, - }, - global: { - stubs: { - Dropdown: DropdownStub, - UseFocusTrap: FocusTrapStub, - }, - }, - }); -} - -async function openDropdown() { - const wrapper = mountDropdown(); - await nextTick(); - await nextTick(); - return wrapper; -} - -describe('TimeTrackerProjectTaskDropdown', () => { - it('keeps the existing empty-string no-project value by default', async () => { - const wrapper = await openDropdown(); - - await wrapper.find('[data-project-id=""]').trigger('click'); - - expect(wrapper.emitted('update:project')?.at(-1)).toEqual(['']); - expect(wrapper.emitted('changed')?.at(-1)).toEqual(['', null]); - }); - - it('can emit null for no-project consumers that use null as the domain value', async () => { - const wrapper = mountDropdown({ project: 'p-1', noProjectValue: null }); - await nextTick(); - await nextTick(); - - await wrapper.find('[data-project-id=""]').trigger('click'); - - expect(wrapper.emitted('update:project')?.at(-1)).toEqual([null]); - expect(wrapper.emitted('changed')?.at(-1)).toEqual([null, null]); - }); -});