From 36473838ff4c6e5bd7a415c703b2e536eea167b8 Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Fri, 27 Jun 2025 15:16:09 -0700 Subject: [PATCH] Coverage --- .../admin/settings/settings.component.spec.ts | 13 +++++++++++++ .../app-frame/app-frame.component.spec.ts | 13 ++++++++++++- .../app/services/rest/saved-view.service.spec.ts | 10 ++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/src-ui/src/app/components/admin/settings/settings.component.spec.ts b/src-ui/src/app/components/admin/settings/settings.component.spec.ts index 2e6170f78..37908d139 100644 --- a/src-ui/src/app/components/admin/settings/settings.component.spec.ts +++ b/src-ui/src/app/components/admin/settings/settings.component.spec.ts @@ -31,6 +31,7 @@ import { CustomDatePipe } from 'src/app/pipes/custom-date.pipe' import { SafeHtmlPipe } from 'src/app/pipes/safehtml.pipe' import { PermissionsService } from 'src/app/services/permissions.service' import { GroupService } from 'src/app/services/rest/group.service' +import { SavedViewService } from 'src/app/services/rest/saved-view.service' import { UserService } from 'src/app/services/rest/user.service' import { SettingsService } from 'src/app/services/settings.service' import { SystemStatusService } from 'src/app/services/system-status.service' @@ -72,6 +73,7 @@ describe('SettingsComponent', () => { let groupService: GroupService let modalService: NgbModal let systemStatusService: SystemStatusService + let savedViewsService: SavedViewService beforeEach(async () => { TestBed.configureTestingModule({ @@ -122,6 +124,7 @@ describe('SettingsComponent', () => { permissionsService = TestBed.inject(PermissionsService) modalService = TestBed.inject(NgbModal) systemStatusService = TestBed.inject(SystemStatusService) + savedViewsService = TestBed.inject(SavedViewService) jest.spyOn(permissionsService, 'currentUserCan').mockReturnValue(true) jest .spyOn(permissionsService, 'currentUserHasObjectPermissions') @@ -345,4 +348,14 @@ describe('SettingsComponent', () => { component.reset() expect(component.settingsForm.get('themeColor').value).toEqual('') }) + + it('should trigger maybeRefreshDocumentCounts on settings save', () => { + completeSetup() + const maybeRefreshSpy = jest.spyOn( + savedViewsService, + 'maybeRefreshDocumentCounts' + ) + settingsService.settingsSaved.emit(true) + expect(maybeRefreshSpy).toHaveBeenCalled() + }) }) diff --git a/src-ui/src/app/components/app-frame/app-frame.component.spec.ts b/src-ui/src/app/components/app-frame/app-frame.component.spec.ts index 5547eb429..0c1de7891 100644 --- a/src-ui/src/app/components/app-frame/app-frame.component.spec.ts +++ b/src-ui/src/app/components/app-frame/app-frame.component.spec.ts @@ -92,6 +92,7 @@ describe('AppFrameComponent', () => { let router: Router let savedViewSpy let modalService: NgbModal + let maybeRefreshSpy beforeEach(async () => { TestBed.configureTestingModule({ @@ -113,7 +114,11 @@ describe('AppFrameComponent', () => { { provide: SavedViewService, useValue: { - reload: () => {}, + reload: (fn: any) => { + if (fn) { + fn() + } + }, listAll: () => of({ all: [saved_views.map((v) => v.id)], @@ -122,6 +127,7 @@ describe('AppFrameComponent', () => { }), sidebarViews: saved_views.filter((v) => v.show_in_sidebar), getDocumentCount: (view: SavedView) => 5, + maybeRefreshDocumentCounts: () => {}, }, }, PermissionsService, @@ -170,6 +176,7 @@ describe('AppFrameComponent', () => { jest.spyOn(permissionsService, 'currentUserCan').mockReturnValue(true) savedViewSpy = jest.spyOn(savedViewService, 'reload') + maybeRefreshSpy = jest.spyOn(savedViewService, 'maybeRefreshDocumentCounts') fixture = TestBed.createComponent(AppFrameComponent) component = fixture.componentInstance @@ -360,4 +367,8 @@ describe('AppFrameComponent', () => { expect(toastErrorSpy).toHaveBeenCalledTimes(2) expect(toastInfoSpy).toHaveBeenCalledTimes(3) }) + + it('should call maybeRefreshDocumentCounts after saved views reload', () => { + expect(maybeRefreshSpy).toHaveBeenCalled() + }) }) diff --git a/src-ui/src/app/services/rest/saved-view.service.spec.ts b/src-ui/src/app/services/rest/saved-view.service.spec.ts index 6419f277c..585425ecc 100644 --- a/src-ui/src/app/services/rest/saved-view.service.spec.ts +++ b/src-ui/src/app/services/rest/saved-view.service.spec.ts @@ -249,6 +249,16 @@ describe(`Additional service tests for SavedViewService`, () => { expect(service.getDocumentCount(saved_views[0])).toEqual(1) }) + it('should not refresh document counts if setting is disabled', () => { + jest.spyOn(settingsService, 'get').mockImplementation((key) => { + if (key === SETTINGS_KEYS.SIDEBAR_VIEWS_SHOW_COUNT) return false + }) + service.maybeRefreshDocumentCounts(saved_views) + httpTestingController.expectNone( + `${environment.apiBaseUrl}documents/?page=1&page_size=1&ordering=-${saved_views[0].sort_field}&fields=id&truncate_content=true` + ) + }) + beforeEach(() => { // Dont need to setup again