Browse Source

Replace spy calls with overrides

arvid-e 1 month ago
parent
commit
88931d1af8
1 changed files with 17 additions and 20 deletions
  1. 17 20
      apps/app/src/server/service/search-query.spec.ts

+ 17 - 20
apps/app/src/server/service/search-query.spec.ts

@@ -5,6 +5,7 @@ import { configManager } from '~/server/service/config-manager/config-manager';
 import NamedQuery from '../models/named-query';
 import SearchService from './search';
 
+// Mock NamedQuery
 vi.mock('~/server/models/named-query', () => {
   const mockModel = {
     findOne: vi.fn(),
@@ -15,7 +16,7 @@ vi.mock('~/server/models/named-query', () => {
   };
 });
 
-// Intercept the singleton import inside the search service
+// Mock config manager
 vi.mock('~/server/service/config-manager/config-manager', () => {
   return {
     default: {
@@ -27,31 +28,27 @@ vi.mock('~/server/service/config-manager/config-manager', () => {
   };
 });
 
+class TestSearchService extends SearchService {
+  override generateFullTextSearchDelegator() {
+    return { init: vi.fn() } as any;
+  }
+  override generateNQDelegators() {
+    return {} as any;
+  }
+  override registerUpdateEvent() {}
+  override get isConfigured() {
+    return false;
+  }
+}
+
 describe('searchParseQuery()', () => {
-  let searchService: SearchService;
+  let searchService: TestSearchService;
 
   beforeEach(() => {
     vi.clearAllMocks();
 
-    // Mock the internal generators to skip constructor side-effects
-    vi.spyOn(
-      SearchService.prototype,
-      'generateFullTextSearchDelegator',
-    ).mockReturnValue({
-      init: vi.fn(),
-    } as any);
-    vi.spyOn(SearchService.prototype, 'generateNQDelegators').mockReturnValue(
-      {} as any,
-    );
-    vi.spyOn(SearchService.prototype, 'registerUpdateEvent').mockImplementation(
-      () => {},
-    );
-    vi.spyOn(SearchService.prototype, 'isConfigured', 'get').mockReturnValue(
-      false,
-    );
-
     const mockCrowi = { configManager } as any;
-    searchService = new SearchService(mockCrowi);
+    searchService = new TestSearchService(mockCrowi);
   });
 
   it('should contain /user in the not_prefix query when user pages are disabled', async () => {