From 1318b2b0eecb06d663a5fd0e636c920c52ab12d8 Mon Sep 17 00:00:00 2001 From: Marius Mather Date: Fri, 17 Jul 2026 13:49:13 +1000 Subject: [PATCH] fix: rework debounce test to be less flaky --- .../user-list/user-list.component.spec.ts | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/app/pages/admin/components/user-list/user-list.component.spec.ts b/src/app/pages/admin/components/user-list/user-list.component.spec.ts index e63fd12d..8ad10987 100644 --- a/src/app/pages/admin/components/user-list/user-list.component.spec.ts +++ b/src/app/pages/admin/components/user-list/user-list.component.spec.ts @@ -247,8 +247,10 @@ describe('UserListComponent', () => { }); }); - it('should debounce search and not call API multiple times rapidly', (done) => { + it('should debounce search and not call API multiple times rapidly', fakeAsync(() => { fixture.detectChanges(); + // Wait for initial finishLoading() time + tick(250); mockApiService.getAdminAllUsers.calls.reset(); component.searchTerm.set('a'); @@ -260,17 +262,16 @@ describe('UserListComponent', () => { component.searchTerm.set('abc'); component.onSearchInput(); - setTimeout(() => { - expect(mockApiService.getAdminAllUsers).toHaveBeenCalledTimes(1); - expect(mockApiService.getAdminAllUsers).toHaveBeenCalledWith({ - page: 1, - perPage: DEFAULT_PAGE_SIZE, - filterBy: '', - search: 'abc', - }); - done(); - }, 600); - }); + tick(600); + + expect(mockApiService.getAdminAllUsers).toHaveBeenCalledTimes(1); + expect(mockApiService.getAdminAllUsers).toHaveBeenCalledWith({ + page: 1, + perPage: DEFAULT_PAGE_SIZE, + filterBy: '', + search: 'abc', + }); + })); it('should not trigger search when the same term is entered (distinctUntilChanged)', fakeAsync(() => { fixture.detectChanges();