From c01417a08fc7ca6d2e2aaec835157124b9802c34 Mon Sep 17 00:00:00 2001 From: Eugenio Romano Date: Fri, 6 Aug 2021 11:09:51 +0200 Subject: [PATCH] [ADF-5429] Improve search for testability (#7198) * improve search for testability * fix lint --- .../search-sorting-picker.component.spec.ts | 6 +- .../services/base-query-builder.service.ts | 17 +- ...earch-header-query-builder.service.spec.ts | 31 ++- .../search-query-builder.service.spec.ts | 258 ++++++++++++------ 4 files changed, 207 insertions(+), 105 deletions(-) diff --git a/lib/content-services/src/lib/search/components/search-sorting-picker/search-sorting-picker.component.spec.ts b/lib/content-services/src/lib/search/components/search-sorting-picker/search-sorting-picker.component.spec.ts index ad866f7003..ea9b8e2871 100644 --- a/lib/content-services/src/lib/search/components/search-sorting-picker/search-sorting-picker.component.spec.ts +++ b/lib/content-services/src/lib/search/components/search-sorting-picker/search-sorting-picker.component.spec.ts @@ -17,7 +17,7 @@ import { SearchSortingPickerComponent } from './search-sorting-picker.component'; import { SearchQueryBuilderService } from '../../services/search-query-builder.service'; -import { AppConfigService } from '@alfresco/adf-core'; +import { AlfrescoApiService, AppConfigService } from '@alfresco/adf-core'; import { SearchConfiguration } from '../../models/search-configuration.interface'; import { TestBed } from '@angular/core/testing'; import { ContentTestingModule } from '../../../testing/content.testing.module'; @@ -53,7 +53,9 @@ describe('SearchSortingPickerComponent', () => { { id: 'cat1', enabled: true } ] }; - queryBuilder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + queryBuilder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); component = new SearchSortingPickerComponent(queryBuilder); }); diff --git a/lib/content-services/src/lib/search/services/base-query-builder.service.ts b/lib/content-services/src/lib/search/services/base-query-builder.service.ts index d99eb4500d..856859f61d 100644 --- a/lib/content-services/src/lib/search/services/base-query-builder.service.ts +++ b/lib/content-services/src/lib/search/services/base-query-builder.service.ts @@ -42,6 +42,7 @@ import { SearchForm } from '../models/search-form.interface'; providedIn: 'root' }) export abstract class BaseQueryBuilderService { + private searchApi: SearchApi; /* Stream that emits the search configuration whenever the user change the search forms */ configUpdated = new Subject(); @@ -87,6 +88,7 @@ export abstract class BaseQueryBuilderService { ranges: { [id: string]: SearchRange } = {}; constructor(protected appConfig: AppConfigService, protected alfrescoApiService: AlfrescoApiService) { + this.searchApi = new SearchApi(this.alfrescoApiService.getInstance()); this.resetToDefaults(); } @@ -145,9 +147,14 @@ export abstract class BaseQueryBuilderService { name: configuration.name || 'SEARCH.UNKNOWN_CONFIGURATION', default: configuration.default || false, selected: this.selectedConfiguration !== undefined ? index === this.selectedConfiguration : configuration.default - })); + })); } else if (!!configurations) { - return [{ index: 0, name: configurations.name || 'SEARCH.UNKNOWN_CONFIGURATION', default: true, selected: true }]; + return [{ + index: 0, + name: configurations.name || 'SEARCH.UNKNOWN_CONFIGURATION', + default: true, + selected: true + }]; } return []; } @@ -285,8 +292,7 @@ export abstract class BaseQueryBuilderService { try { const query = queryBody ? queryBody : this.buildQuery(); if (query) { - const searchApi = new SearchApi(this.alfrescoApiService.getInstance()); - const resultSetPaging: ResultSetPaging = await searchApi.search(query); + const resultSetPaging: ResultSetPaging = await this.searchApi.search(query); this.executed.next(resultSetPaging); } } catch (error) { @@ -304,8 +310,7 @@ export abstract class BaseQueryBuilderService { } search(queryBody: QueryBody): Observable { - const searchApi = new SearchApi(this.alfrescoApiService.getInstance()); - const promise = searchApi.search(queryBody); + const promise = this.searchApi.search(queryBody); promise.then((resultSetPaging) => { this.executed.next(resultSetPaging); diff --git a/lib/content-services/src/lib/search/services/search-header-query-builder.service.spec.ts b/lib/content-services/src/lib/search/services/search-header-query-builder.service.spec.ts index a95bca3685..106d07853c 100644 --- a/lib/content-services/src/lib/search/services/search-header-query-builder.service.spec.ts +++ b/lib/content-services/src/lib/search/services/search-header-query-builder.service.spec.ts @@ -16,20 +16,17 @@ */ import { SearchConfiguration } from '../models/search-configuration.interface'; -import { AppConfigService, CoreModule, setupTestBed } from '@alfresco/adf-core'; +import { AlfrescoApiService, AppConfigService } from '@alfresco/adf-core'; import { SearchHeaderQueryBuilderService } from './search-header-query-builder.service'; import { TestBed } from '@angular/core/testing'; import { ContentTestingModule } from '../../testing/content.testing.module'; -import { TranslateModule } from '@ngx-translate/core'; describe('SearchHeaderQueryBuilderService', () => { - setupTestBed({ - imports: [ - TranslateModule.forRoot(), - CoreModule.forRoot(), - ContentTestingModule - ] + beforeEach(() => { + TestBed.configureTestingModule({ + imports: [ContentTestingModule] + }); }); const buildConfig = (searchSettings): AppConfigService => { @@ -47,9 +44,10 @@ describe('SearchHeaderQueryBuilderService', () => { filterQueries: [{ query: 'query1' }, { query: 'query2' }] }; + const alfrescoApiService = TestBed.inject(AlfrescoApiService); const builder = new SearchHeaderQueryBuilderService( buildConfig(config), - null, + alfrescoApiService, null ); @@ -74,9 +72,10 @@ describe('SearchHeaderQueryBuilderService', () => { filterQueries: [{ query: 'query1' }, { query: 'query2' }] }; + const alfrescoApiService = TestBed.inject(AlfrescoApiService); const service = new SearchHeaderQueryBuilderService( buildConfig(config), - null, + alfrescoApiService, null ); @@ -87,9 +86,10 @@ describe('SearchHeaderQueryBuilderService', () => { }); it('should have empty user query by default', () => { + const alfrescoApiService = TestBed.inject(AlfrescoApiService); const builder = new SearchHeaderQueryBuilderService( buildConfig({}), - null, + alfrescoApiService, null ); expect(builder.userQuery).toBe(''); @@ -108,9 +108,10 @@ describe('SearchHeaderQueryBuilderService', () => { { query: 'PARENT:"workspace://SpacesStore/fake-node-id"' } ]; + const alfrescoApiService = TestBed.inject(AlfrescoApiService); const searchHeaderService = new SearchHeaderQueryBuilderService( buildConfig(config), - null, + alfrescoApiService, null ); @@ -133,9 +134,10 @@ describe('SearchHeaderQueryBuilderService', () => { filterQueries: expectedResult }; + const alfrescoApiService = TestBed.inject(AlfrescoApiService); const searchHeaderService = new SearchHeaderQueryBuilderService( buildConfig(config), - null, + alfrescoApiService, null ); @@ -159,9 +161,10 @@ describe('SearchHeaderQueryBuilderService', () => { ] }; + const alfrescoApiService = TestBed.inject(AlfrescoApiService); const searchHeaderService = new SearchHeaderQueryBuilderService( buildConfig(config), - null, + alfrescoApiService, null ); diff --git a/lib/content-services/src/lib/search/services/search-query-builder.service.spec.ts b/lib/content-services/src/lib/search/services/search-query-builder.service.spec.ts index 2850416ad3..8caa654075 100644 --- a/lib/content-services/src/lib/search/services/search-query-builder.service.spec.ts +++ b/lib/content-services/src/lib/search/services/search-query-builder.service.spec.ts @@ -17,7 +17,7 @@ import { SearchQueryBuilderService } from './search-query-builder.service'; import { SearchConfiguration } from '../models/search-configuration.interface'; -import { AppConfigService } from '@alfresco/adf-core'; +import { AlfrescoApiService, AppConfigService } from '@alfresco/adf-core'; import { FacetField } from '../models/facet-field.interface'; import { TestBed } from '@angular/core/testing'; import { ContentTestingModule } from '../../testing/content.testing.module'; @@ -47,7 +47,8 @@ describe('SearchQueryBuilder', () => { { query: 'query2' } ] }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); builder.categories = []; builder.filterQueries = []; @@ -62,18 +63,23 @@ describe('SearchQueryBuilder', () => { }); it('should have empty user query by default', () => { - const builder = new SearchQueryBuilderService(buildConfig({}), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + const builder = new SearchQueryBuilderService(buildConfig({}), alfrescoApiService); expect(builder.userQuery).toBe(''); }); it('should wrap user query with brackets', () => { - const builder = new SearchQueryBuilderService(buildConfig({}), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig({}), alfrescoApiService); builder.userQuery = 'my query'; expect(builder.userQuery).toEqual('(my query)'); }); it('should trim user query value', () => { - const builder = new SearchQueryBuilderService(buildConfig({}), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig({}), alfrescoApiService); builder.userQuery = ' something '; expect(builder.userQuery).toEqual('(something)'); }); @@ -86,7 +92,9 @@ describe('SearchQueryBuilder', () => { { id: 'cat3', enabled: true } ] }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); expect(builder.categories.length).toBe(2); expect(builder.categories[0].id).toBe('cat1'); @@ -101,7 +109,8 @@ describe('SearchQueryBuilder', () => { { query: 'query2' } ] }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); expect(builder.filterQueries.length).toBe(2); expect(builder.filterQueries[0].query).toBe('query1'); @@ -109,7 +118,9 @@ describe('SearchQueryBuilder', () => { }); it('should add new filter query', () => { - const builder = new SearchQueryBuilderService(buildConfig({}), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig({}), alfrescoApiService); builder.addFilterQuery('q1'); @@ -118,7 +129,9 @@ describe('SearchQueryBuilder', () => { }); it('should not add empty filter query', () => { - const builder = new SearchQueryBuilderService(buildConfig({}), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig({}), alfrescoApiService); builder.addFilterQuery(null); builder.addFilterQuery(''); @@ -127,7 +140,9 @@ describe('SearchQueryBuilder', () => { }); it('should not add duplicate filter query', () => { - const builder = new SearchQueryBuilderService(buildConfig({}), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig({}), alfrescoApiService); builder.addFilterQuery('q1'); builder.addFilterQuery('q1'); @@ -138,7 +153,9 @@ describe('SearchQueryBuilder', () => { }); it('should remove filter query', () => { - const builder = new SearchQueryBuilderService(buildConfig({}), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig({}), alfrescoApiService); builder.addFilterQuery('q1'); builder.addFilterQuery('q2'); @@ -150,7 +167,9 @@ describe('SearchQueryBuilder', () => { }); it('should not remove empty query', () => { - const builder = new SearchQueryBuilderService(buildConfig({}), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig({}), alfrescoApiService); builder.addFilterQuery('q1'); builder.addFilterQuery('q2'); expect(builder.filterQueries.length).toBe(2); @@ -170,7 +189,9 @@ describe('SearchQueryBuilder', () => { ] } }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); const query = builder.getFacetQuery('query2'); expect(query.query).toBe('q2'); @@ -186,7 +207,9 @@ describe('SearchQueryBuilder', () => { ] } }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); const query1 = builder.getFacetQuery(''); expect(query1).toBeNull(); @@ -205,7 +228,9 @@ describe('SearchQueryBuilder', () => { ] } }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); const field = builder.getFacetField('Size'); expect(field.label).toBe('Size'); @@ -222,7 +247,9 @@ describe('SearchQueryBuilder', () => { ] } }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); const field = builder.getFacetField('Missing'); expect(field).toBeFalsy(); @@ -231,11 +258,15 @@ describe('SearchQueryBuilder', () => { it('should fetch facets from the config by label with spaces and return field with request compatible label (escaped)', () => { const config: SearchConfiguration = { categories: [], - facetFields: { 'fields': [ + facetFields: { + 'fields': [ { 'field': 'content.size', 'mincount': 1, 'label': 'Label with spaces' } - ]} + ] + } }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); const field = builder.getFacetField('Label with spaces'); expect(field.label).toBe('"Label with spaces"'); @@ -248,7 +279,9 @@ describe('SearchQueryBuilder', () => { { id: 'cat1', enabled: true } ] }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); builder.queryFragments['cat1'] = null; const compiled = builder.buildQuery(); @@ -261,7 +294,9 @@ describe('SearchQueryBuilder', () => { { id: 'cat1', enabled: true } ] }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); builder.queryFragments['cat1'] = 'cm:name:test'; @@ -276,7 +311,9 @@ describe('SearchQueryBuilder', () => { { id: 'cat2', enabled: true } ] }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); builder.queryFragments['cat1'] = 'cm:name:test'; builder.queryFragments['cat2'] = 'NOT cm:creator:System'; @@ -295,7 +332,9 @@ describe('SearchQueryBuilder', () => { { id: 'cat2', enabled: true } ] }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); builder.queryFragments['cat1'] = 'cm:name:test'; @@ -311,7 +350,9 @@ describe('SearchQueryBuilder', () => { { id: 'cat2', enabled: true } ] }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); builder.queryFragments['cat1'] = 'cm:name:test'; @@ -325,7 +366,9 @@ describe('SearchQueryBuilder', () => { { id: 'cat1', enabled: true } ] }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); builder.queryFragments['cat1'] = 'cm:name:test'; builder.addFilterQuery('query1'); @@ -346,7 +389,9 @@ describe('SearchQueryBuilder', () => { ] } }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); builder.queryFragments['cat1'] = 'cm:name:test'; const compiled = builder.buildQuery(); @@ -365,7 +410,9 @@ describe('SearchQueryBuilder', () => { ] } }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); builder.queryFragments['cat1'] = 'cm:name:test'; const compiled = builder.buildQuery(); @@ -386,12 +433,30 @@ describe('SearchQueryBuilder', () => { categories: [ { id: 'cat1', enabled: true } ], - facetFields: { fields: [ - { field: 'field1', label: spacesLabel.configValue, mincount: 1, limit: null, offset: 0, prefix: null }, - { field: 'field2', label: noSpacesLabel.configValue, mincount: 1, limit: null, offset: 0, prefix: null } - ]} + facetFields: { + fields: [ + { + field: 'field1', + label: spacesLabel.configValue, + mincount: 1, + limit: null, + offset: 0, + prefix: null + }, + { + field: 'field2', + label: noSpacesLabel.configValue, + mincount: 1, + limit: null, + offset: 0, + prefix: null + } + ] + } }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); builder.queryFragments['cat1'] = 'cm:name:test'; const compiled = builder.buildQuery(); @@ -412,7 +477,7 @@ describe('SearchQueryBuilder', () => { label: 'test_intervals1', field: 'f1', sets: [ - { label: 'interval1', start: 's1', end: 'e1', startInclusive: true, endInclusive: true }, + { label: 'interval1', start: 's1', end: 'e1', startInclusive: true, endInclusive: true }, { label: 'interval2', start: 's2', end: 'e2', startInclusive: false, endInclusive: true } ] }, @@ -427,7 +492,9 @@ describe('SearchQueryBuilder', () => { ] } }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); builder.queryFragments['cat1'] = 'cm:name:test'; const compiled = builder.buildQuery(); @@ -473,7 +540,9 @@ describe('SearchQueryBuilder', () => { ] } }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); builder.queryFragments['cat1'] = 'cm:name:test'; const compiled = builder.buildQuery(); @@ -483,7 +552,7 @@ describe('SearchQueryBuilder', () => { expect(compiled.facetIntervals.intervals[1].label).toEqual(noSpacesLabel.configValue); expect(compiled.facetIntervals.intervals[0].sets[0].label).toEqual(spacesLabelForSet.requestCompatibleValue); - }); + }); it('should build query with sorting', () => { const config: SearchConfiguration = { @@ -493,7 +562,8 @@ describe('SearchQueryBuilder', () => { { id: 'cat2', enabled: true } ] }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); const sorting: any = { type: 'FIELD', field: 'cm:name', ascending: true }; builder.sorting = [sorting]; @@ -509,7 +579,8 @@ describe('SearchQueryBuilder', () => { { id: 'cat1', enabled: true } ] }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); builder.queryFragments['cat1'] = 'cm:name:test'; builder.paging = { maxItems: 5, skipCount: 5 }; @@ -526,7 +597,8 @@ describe('SearchQueryBuilder', () => { { id: 'cat1', enabled: true } ] }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); builder.userQuery = 'my query'; builder.queryFragments['cat1'] = 'cm:name:test'; @@ -561,7 +633,9 @@ describe('SearchQueryBuilder', () => { { id: 'cat1', enabled: true } ] }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); builder.addUserFacetBucket(field1, field1buckets[0]); builder.addUserFacetBucket(field1, field1buckets[1]); @@ -582,7 +656,9 @@ describe('SearchQueryBuilder', () => { 'mergeContiguous': true } }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); builder.userQuery = 'my query'; builder.queryFragments['cat1'] = 'cm:name:test'; @@ -599,7 +675,9 @@ describe('SearchQueryBuilder', () => { { id: 'cat1', enabled: true } ] }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); spyOn(builder, 'buildQuery').and.throwError('some error'); builder.error.subscribe(() => { @@ -615,7 +693,9 @@ describe('SearchQueryBuilder', () => { { id: 'cat1', enabled: true } ] }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); spyOn(builder, 'buildQuery').and.throwError('some error'); builder.executed.subscribe((data) => { @@ -628,7 +708,9 @@ describe('SearchQueryBuilder', () => { }); it('should include contain the path and allowableOperations by default', () => { - const builder = new SearchQueryBuilderService(buildConfig({}), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig({}), alfrescoApiService); builder.userQuery = 'nuka cola quantum'; const queryBody = builder.buildQuery(); @@ -640,7 +722,9 @@ describe('SearchQueryBuilder', () => { const config: SearchConfiguration = { include: includeConfig }; - const builder = new SearchQueryBuilderService(buildConfig(config), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(config), alfrescoApiService); builder.userQuery = 'nuka cola quantum'; const queryBody = builder.buildQuery(); @@ -648,7 +732,9 @@ describe('SearchQueryBuilder', () => { }); it('should the query contain the pagination', () => { - const builder = new SearchQueryBuilderService(buildConfig({}), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig({}), alfrescoApiService); builder.userQuery = 'nuka cola quantum'; const mockPagination = { maxItems: 10, @@ -661,7 +747,9 @@ describe('SearchQueryBuilder', () => { }); it('should the query contain the scope in case it is defined', () => { - const builder = new SearchQueryBuilderService(buildConfig({}), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig({}), alfrescoApiService); const mockScope = { locations: 'mock-location' }; builder.userQuery = 'nuka cola quantum'; builder.setScope(mockScope); @@ -671,7 +759,9 @@ describe('SearchQueryBuilder', () => { }); it('should return empty if array of search config not found', (done) => { - const builder = new SearchQueryBuilderService(buildConfig(null), null); + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + const builder = new SearchQueryBuilderService(buildConfig(null), alfrescoApiService); builder.searchForms.subscribe((forms) => { expect(forms).toEqual([]); done(); @@ -682,38 +772,40 @@ describe('SearchQueryBuilder', () => { let configs: SearchConfiguration[]; let builder: SearchQueryBuilderService; beforeEach(() => { - configs = [ - { - categories: [ - { id: 'cat1', enabled: true }, - { id: 'cat2', enabled: true } - ], - filterQueries: [ - { query: 'query1' }, - { query: 'query2' } - ], - name: 'config1', - default: true - }, - { - categories: [ - { id: 'mouse', enabled: true } - ], - filterQueries: [ - { query: 'query1' }, - { query: 'query2' } - ], - name: 'config2', - default: false - }, - { - categories: [ - { id: 'cat_and_mouse', enabled: true } - ], - default: false - } - ]; - builder = new SearchQueryBuilderService(buildConfig(configs), null); + configs = [ + { + categories: [ + { id: 'cat1', enabled: true }, + { id: 'cat2', enabled: true } + ], + filterQueries: [ + { query: 'query1' }, + { query: 'query2' } + ], + name: 'config1', + default: true + }, + { + categories: [ + { id: 'mouse', enabled: true } + ], + filterQueries: [ + { query: 'query1' }, + { query: 'query2' } + ], + name: 'config2', + default: false + }, + { + categories: [ + { id: 'cat_and_mouse', enabled: true } + ], + default: false + } + ]; + const alfrescoApiService = TestBed.inject(AlfrescoApiService); + + builder = new SearchQueryBuilderService(buildConfig(configs), alfrescoApiService); }); it('should pick the default configuration from list', () => { @@ -733,9 +825,9 @@ describe('SearchQueryBuilder', () => { it('should list available search form names', (done) => { builder.searchForms.subscribe((forms) => { expect(forms).toEqual([ - { index: 0, name: 'config1', default: true, selected: true }, - { index: 1, name: 'config2', default: false, selected: false }, - { index: 2, name: 'SEARCH.UNKNOWN_CONFIGURATION', default: false, selected: false } + { index: 0, name: 'config1', default: true, selected: true }, + { index: 1, name: 'config2', default: false, selected: false }, + { index: 2, name: 'SEARCH.UNKNOWN_CONFIGURATION', default: false, selected: false } ]); done(); });