From ec9fb0bb904ab72b4598d6810adee1a274a9b0a9 Mon Sep 17 00:00:00 2001 From: tammi-23 Date: Thu, 6 Nov 2025 08:44:02 +0100 Subject: [PATCH] fix: avoid flicker on CalDAV check (#1538) * fix: avoid flicker on CalDAV check (cherry picked from commit 936c762f133ecc263a8ca3750ce80d07e8bb75eb) --- .../src/pages/account/accountCalendar.vue | 178 +++++++++--------- .../pages/account/accountCalendar.spec.ts | 13 +- 2 files changed, 103 insertions(+), 88 deletions(-) diff --git a/packages/web-runtime/src/pages/account/accountCalendar.vue b/packages/web-runtime/src/pages/account/accountCalendar.vue index 3d860b8e10..b8af91d2b0 100644 --- a/packages/web-runtime/src/pages/account/accountCalendar.vue +++ b/packages/web-runtime/src/pages/account/accountCalendar.vue @@ -1,85 +1,88 @@ diff --git a/packages/web-runtime/tests/unit/pages/account/accountCalendar.spec.ts b/packages/web-runtime/tests/unit/pages/account/accountCalendar.spec.ts index f2d2cb7895..1c21e91d4e 100644 --- a/packages/web-runtime/tests/unit/pages/account/accountCalendar.spec.ts +++ b/packages/web-runtime/tests/unit/pages/account/accountCalendar.spec.ts @@ -33,8 +33,11 @@ describe('account calendar page', () => { expect(wrapper.find('.calendar-not-configured-message').exists()).toBeFalsy() }) - it('does not render content if CalDAV is not available', () => { - const wrapper = getWrapper() + it('does not render content if CalDAV is not available', async () => { + const wrapper = getWrapper({ available: false }) + + await flushPromises() + await nextTick() expect(wrapper.find('.calendar-not-configured-message').exists()).toBeTruthy() }) @@ -55,7 +58,9 @@ describe('account calendar page', () => { }) }) -function getWrapper() { +function getWrapper(opts: { available?: boolean } = {}) { + const { available = true } = opts + const mocks = { ...defaultComponentMocks() } @@ -80,7 +85,7 @@ function getWrapper() { mocks.$clientService.httpAuthenticated.get.mockResolvedValue({ status: 301, request: { - responseURL: 'https://example.com/caldav/' + responseURL: available ? 'https://example.com/caldav/' : 'https://example.com/somewhere-else' } } as AxiosResponse) return mount(AccountCalendar, {