mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-26 17:24:56 +00:00
[ADF-5429] Improve search for testability (#7198)
* improve search for testability * fix lint
This commit is contained in:
parent
f30b20cc46
commit
c01417a08f
@ -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', () => {
|
||||
<any> { 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);
|
||||
});
|
||||
|
||||
|
@ -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<SearchConfiguration>();
|
||||
@ -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<ResultSetPaging> {
|
||||
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);
|
||||
|
@ -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
|
||||
);
|
||||
|
||||
|
@ -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', () => {
|
||||
<any> { 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', () => {
|
||||
<any> { 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', () => {
|
||||
<any> { 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', () => {
|
||||
<any> { 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', () => {
|
||||
<any> { 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', () => {
|
||||
<any> { 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', () => {
|
||||
<any> { 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: [
|
||||
<any> { 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', () => {
|
||||
<any> { 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', () => {
|
||||
<any> { 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', () => {
|
||||
<any> { 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', () => {
|
||||
<any> { 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', () => {
|
||||
<any> { 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', () => {
|
||||
<any> { 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: [
|
||||
<any> { id: 'cat1', enabled: true },
|
||||
<any> { id: 'cat2', enabled: true }
|
||||
],
|
||||
filterQueries: [
|
||||
{ query: 'query1' },
|
||||
{ query: 'query2' }
|
||||
],
|
||||
name: 'config1',
|
||||
default: true
|
||||
},
|
||||
{
|
||||
categories: [
|
||||
<any> { id: 'mouse', enabled: true }
|
||||
],
|
||||
filterQueries: [
|
||||
{ query: 'query1' },
|
||||
{ query: 'query2' }
|
||||
],
|
||||
name: 'config2',
|
||||
default: false
|
||||
},
|
||||
{
|
||||
categories: [
|
||||
<any> { id: 'cat_and_mouse', enabled: true }
|
||||
],
|
||||
default: false
|
||||
}
|
||||
];
|
||||
builder = new SearchQueryBuilderService(buildConfig(configs), null);
|
||||
configs = [
|
||||
{
|
||||
categories: [
|
||||
<any> { id: 'cat1', enabled: true },
|
||||
<any> { id: 'cat2', enabled: true }
|
||||
],
|
||||
filterQueries: [
|
||||
{ query: 'query1' },
|
||||
{ query: 'query2' }
|
||||
],
|
||||
name: 'config1',
|
||||
default: true
|
||||
},
|
||||
{
|
||||
categories: [
|
||||
<any> { id: 'mouse', enabled: true }
|
||||
],
|
||||
filterQueries: [
|
||||
{ query: 'query1' },
|
||||
{ query: 'query2' }
|
||||
],
|
||||
name: 'config2',
|
||||
default: false
|
||||
},
|
||||
{
|
||||
categories: [
|
||||
<any> { 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();
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user