From 6555bca5f1a208a65778c77006e6d0b9886b4854 Mon Sep 17 00:00:00 2001 From: Gregor Vostrak Date: Wed, 14 Jan 2026 18:21:29 +0100 Subject: [PATCH] use tanstack query in ProjectMultiselectDropdown, ClientTableRow and ProjectDropdown; fix e2e --- e2e/reporting.spec.ts | 4 ++-- e2e/timetracker.spec.ts | 5 +++++ .../js/Components/Common/Client/ClientTableRow.vue | 5 ++--- .../Components/Common/Project/ProjectDropdown.vue | 14 +++++++------- .../Common/Project/ProjectMultiselectDropdown.vue | 6 ++---- 5 files changed, 18 insertions(+), 16 deletions(-) diff --git a/e2e/reporting.spec.ts b/e2e/reporting.spec.ts index 93815265..21d79fc8 100644 --- a/e2e/reporting.spec.ts +++ b/e2e/reporting.spec.ts @@ -125,8 +125,8 @@ test('test that project filtering works in reporting', async ({ page }) => { // Go to reporting and filter by project1 await goToReporting(page); - await page.getByRole('button', { name: 'Project' }).nth(0).click(); - await page.getByRole('dialog').getByText(project1).click(); + await page.getByRole('button', { name: 'Projects' }).click(); + await page.getByRole('option').filter({ hasText: project1 }).click(); await Promise.all([ // escape diff --git a/e2e/timetracker.spec.ts b/e2e/timetracker.spec.ts index 2696acfc..e37f1fbd 100644 --- a/e2e/timetracker.spec.ts +++ b/e2e/timetracker.spec.ts @@ -218,6 +218,11 @@ test('test that adding a new tag works', async ({ page }) => { page.getByRole('button', { name: 'Create Tag' }).click(), ]); + // Wait for tags query refetch after invalidation + await page.waitForResponse( + (response) => response.url().includes('/tags') && response.status() === 200 + ); + await page.getByTestId('tag_dropdown').click(); await expect(page.getByRole('option', { name: newTagName })).toBeVisible(); }); diff --git a/resources/js/Components/Common/Client/ClientTableRow.vue b/resources/js/Components/Common/Client/ClientTableRow.vue index ee49d759..69f88989 100644 --- a/resources/js/Components/Common/Client/ClientTableRow.vue +++ b/resources/js/Components/Common/Client/ClientTableRow.vue @@ -3,13 +3,12 @@ import type { Client } from '@/packages/api/src'; import { computed, ref } from 'vue'; import { CheckCircleIcon } from '@heroicons/vue/20/solid'; import { useClientsStore } from '@/utils/useClients'; -import { storeToRefs } from 'pinia'; import ClientMoreOptionsDropdown from '@/Components/Common/Client/ClientMoreOptionsDropdown.vue'; -import { useProjectsStore } from '@/utils/useProjects'; +import { useProjectsQuery } from '@/utils/useProjectsQuery'; import TableRow from '@/Components/TableRow.vue'; import ClientEditModal from '@/Components/Common/Client/ClientEditModal.vue'; -const { projects } = storeToRefs(useProjectsStore()); +const { projects } = useProjectsQuery(); const props = defineProps<{ client: Client; diff --git a/resources/js/Components/Common/Project/ProjectDropdown.vue b/resources/js/Components/Common/Project/ProjectDropdown.vue index abf24040..a2f9c791 100644 --- a/resources/js/Components/Common/Project/ProjectDropdown.vue +++ b/resources/js/Components/Common/Project/ProjectDropdown.vue @@ -1,7 +1,7 @@