mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
[ADF-4265] Automation test for search highlight (#4466)
This commit is contained in:
committed by
Eugenio Romano
parent
c1138ec08e
commit
ae1e2f6fff
@@ -28,6 +28,10 @@ export class SearchResultsPage {
|
|||||||
searchSortingPicker = new SearchSortingPickerPage();
|
searchSortingPicker = new SearchSortingPickerPage();
|
||||||
contentServices = new ContentServicesPage();
|
contentServices = new ContentServicesPage();
|
||||||
|
|
||||||
|
getNodeHighlight(content) {
|
||||||
|
return this.dataTable.getCellByRowAndColumn('Display name', content, 'Search');
|
||||||
|
}
|
||||||
|
|
||||||
tableIsLoaded() {
|
tableIsLoaded() {
|
||||||
this.dataTable.tableIsLoaded();
|
this.dataTable.tableIsLoaded();
|
||||||
}
|
}
|
||||||
|
@@ -32,6 +32,9 @@ import { Util } from '../util/util';
|
|||||||
|
|
||||||
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
import { AlfrescoApiCompatibility as AlfrescoApi } from '@alfresco/js-api';
|
||||||
import { UploadActions } from '../actions/ACS/upload.actions';
|
import { UploadActions } from '../actions/ACS/upload.actions';
|
||||||
|
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
|
||||||
|
import { ConfigEditorPage } from '../pages/adf/configEditorPage';
|
||||||
|
import { SearchConfiguration } from './search.config';
|
||||||
|
|
||||||
describe('Search component - Search Bar', () => {
|
describe('Search component - Search Bar', () => {
|
||||||
|
|
||||||
@@ -51,6 +54,7 @@ describe('Search component - Search Bar', () => {
|
|||||||
let filePreviewPage = new FilePreviewPage();
|
let filePreviewPage = new FilePreviewPage();
|
||||||
|
|
||||||
let acsUser = new AcsUserModel();
|
let acsUser = new AcsUserModel();
|
||||||
|
const uploadActions = new UploadActions();
|
||||||
|
|
||||||
let filename = Util.generateRandomString(16);
|
let filename = Util.generateRandomString(16);
|
||||||
let firstFolderName = Util.generateRandomString(16);
|
let firstFolderName = Util.generateRandomString(16);
|
||||||
@@ -72,8 +76,11 @@ describe('Search component - Search Bar', () => {
|
|||||||
'name': thirdFolderName, 'shortName': thirdFolderName.substring(0, 8)
|
'name': thirdFolderName, 'shortName': thirdFolderName.substring(0, 8)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
let term = 'Zoizo';
|
||||||
|
|
||||||
|
let fileHighlightUploaded;
|
||||||
|
|
||||||
beforeAll(async (done) => {
|
beforeAll(async (done) => {
|
||||||
let uploadActions = new UploadActions();
|
|
||||||
|
|
||||||
this.alfrescoJsApi = new AlfrescoApi({
|
this.alfrescoJsApi = new AlfrescoApi({
|
||||||
provider: 'ECM',
|
provider: 'ECM',
|
||||||
@@ -89,6 +96,17 @@ describe('Search component - Search Bar', () => {
|
|||||||
let firstFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, firstFileModel.location, firstFileModel.name, '-my-');
|
let firstFileUploaded = await uploadActions.uploadFile(this.alfrescoJsApi, firstFileModel.location, firstFileModel.name, '-my-');
|
||||||
Object.assign(firstFileModel, firstFileUploaded.entry);
|
Object.assign(firstFileModel, firstFileUploaded.entry);
|
||||||
|
|
||||||
|
fileHighlightUploaded = await this.alfrescoJsApi.nodes.addNode('-my-', {
|
||||||
|
'name': Util.generateRandomString(16),
|
||||||
|
'nodeType': 'cm:content',
|
||||||
|
'properties': {
|
||||||
|
'cm:title': term,
|
||||||
|
'cm:description': 'Jadore les ' + term
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
filesToDelete.push(fileHighlightUploaded);
|
||||||
|
filesToDelete.push(firstFileUploaded);
|
||||||
filesToDelete.push(await uploadActions.createFolder(this.alfrescoJsApi, firstFolderModel.name, '-my-'));
|
filesToDelete.push(await uploadActions.createFolder(this.alfrescoJsApi, firstFolderModel.name, '-my-'));
|
||||||
filesToDelete.push(await uploadActions.createFolder(this.alfrescoJsApi, secondFolder.name, '-my-'));
|
filesToDelete.push(await uploadActions.createFolder(this.alfrescoJsApi, secondFolder.name, '-my-'));
|
||||||
filesToDelete.push(await uploadActions.createFolder(this.alfrescoJsApi, thirdFolder.name, '-my-'));
|
filesToDelete.push(await uploadActions.createFolder(this.alfrescoJsApi, thirdFolder.name, '-my-'));
|
||||||
@@ -101,7 +119,6 @@ describe('Search component - Search Bar', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
afterAll(async (done) => {
|
afterAll(async (done) => {
|
||||||
let uploadActions = new UploadActions();
|
|
||||||
|
|
||||||
filesToDelete.forEach(async (currentNode) => {
|
filesToDelete.forEach(async (currentNode) => {
|
||||||
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, currentNode.entry.id);
|
await uploadActions.deleteFilesOrFolder(this.alfrescoJsApi, currentNode.entry.id);
|
||||||
@@ -282,4 +299,34 @@ describe('Search component - Search Bar', () => {
|
|||||||
.enterTextAndPressEnter('%');
|
.enterTextAndPressEnter('%');
|
||||||
searchResultPage.tableIsLoaded();
|
searchResultPage.tableIsLoaded();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('Highlight', () => {
|
||||||
|
|
||||||
|
const navigationBar = new NavigationBarPage();
|
||||||
|
const configEditor = new ConfigEditorPage();
|
||||||
|
|
||||||
|
let searchConfiguration = new SearchConfiguration().getConfiguration();
|
||||||
|
|
||||||
|
beforeAll(async () => {
|
||||||
|
|
||||||
|
navigationBar.clickConfigEditorButton();
|
||||||
|
configEditor.clickSearchConfiguration();
|
||||||
|
configEditor.clickClearButton();
|
||||||
|
configEditor.enterBigConfigurationText(JSON.stringify(searchConfiguration));
|
||||||
|
configEditor.clickSaveButton();
|
||||||
|
|
||||||
|
searchDialog
|
||||||
|
.checkSearchIconIsVisible()
|
||||||
|
.clickOnSearchIcon()
|
||||||
|
.checkSearchBarIsVisible()
|
||||||
|
.enterTextAndPressEnter(term);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('[C99212] Should be able to configure the highlight option for search results', () => {
|
||||||
|
searchResultPage.getNodeHighlight(fileHighlightUploaded.entry.name).getText().then((text) => {
|
||||||
|
expect(text.includes(`¿${term}?`)).toBe(true);
|
||||||
|
expect(text.includes(`(${term})`)).toBe(true);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
@@ -22,6 +22,17 @@ export class SearchConfiguration {
|
|||||||
|
|
||||||
getConfiguration() {
|
getConfiguration() {
|
||||||
return {
|
return {
|
||||||
|
'app:fields': [
|
||||||
|
'cm:name',
|
||||||
|
'cm:title',
|
||||||
|
'cm:description',
|
||||||
|
'ia:whatEvent',
|
||||||
|
'ia:descriptionEvent',
|
||||||
|
'lnk:title',
|
||||||
|
'lnk:description',
|
||||||
|
'TEXT',
|
||||||
|
'TAG'
|
||||||
|
],
|
||||||
'include': ['path', 'allowableOperations'],
|
'include': ['path', 'allowableOperations'],
|
||||||
'sorting': {
|
'sorting': {
|
||||||
'options': [
|
'options': [
|
||||||
@@ -169,7 +180,22 @@ export class SearchConfiguration {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
'highlight': {
|
||||||
|
'prefix': '¿',
|
||||||
|
'postfix': '?',
|
||||||
|
'mergeContiguous': true,
|
||||||
|
'fields': [
|
||||||
|
{
|
||||||
|
'field': 'cm:title'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'field': 'description',
|
||||||
|
'prefix': '(',
|
||||||
|
'postfix': ')'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user