[ADF-4900] Card View and Metadata Components refactoring (#5592)

* [ADF-4900] Card View and Metadata Components refactoring

* CSS linting

* Unit test excluded

* Rebase branch

* Fix unit tests

* Fix linting

* Fix e2e tests

* Fix 2e2 tests

* Fix process-services e2e tests

* More fixes

* Fix more e2e tests

* Fix unit test

* Improve flaky unit test

* Fix process services e2e tests

* Update Process Header Cloud Page

* Fix linting

* Fix timing issue

* Lintintg

* Fix selectors

* Fix e2e tests

* Fix timing issue

* Fix C260328

* Fix spellcheck

* save screenshot

* performance issue

* Fix unit tests and e2e tests

* fix e2e

* refactoring

* fix lint

* fix e2e

* Fix C309698

* fix other e2e

* fix lint

* increase timeout

Co-authored-by: Eugenio Romano <eugenio.romano@alfresco.com>
This commit is contained in:
davidcanonieto
2020-04-27 00:09:52 +01:00
committed by GitHub
parent ebfeb053ce
commit 8f68899ce0
65 changed files with 1211 additions and 1214 deletions

View File

@@ -76,7 +76,7 @@ describe('Metadata component', () => {
const pngUploadedFile = await uploadActions.uploadFile(pngFileModel.location, pngFileModel.name, '-my-');
Object.assign(pngFileModel, pngUploadedFile.entry);
pngFileModel.update(pngUploadedFile.entry);
});
});
afterAll(async () => {
await navigationBarPage.clickLogoutButton();
@@ -171,28 +171,18 @@ describe('Metadata component', () => {
await expect(await metadataViewPage.getPropertyIconTooltip('properties.cm:title')).toEqual('Edit');
await expect(await metadataViewPage.getPropertyIconTooltip('properties.cm:description')).toEqual('Edit');
await metadataViewPage.clickEditPropertyIcons('name');
await metadataViewPage.updatePropertyIconIsDisplayed('name');
await metadataViewPage.clearPropertyIconIsDisplayed('name');
await metadataViewPage.enterPropertyText('name', 'exampleText');
await metadataViewPage.clickClearPropertyIcon('name');
await metadataViewPage.clickResetMetadata();
await expect(await metadataViewPage.getPropertyText('name')).toEqual(browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name);
await metadataViewPage.clickEditPropertyIcons('name');
await metadataViewPage.enterPropertyText('name', 'exampleText.png');
await metadataViewPage.clickUpdatePropertyIcon('name');
await expect(await metadataViewPage.getPropertyText('name')).toEqual('exampleText.png');
await metadataViewPage.clickEditPropertyIcons('properties.cm:title');
await metadataViewPage.enterPropertyText('properties.cm:title', 'example title');
await metadataViewPage.clickUpdatePropertyIcon('properties.cm:title');
await expect(await metadataViewPage.getPropertyText('properties.cm:title')).toEqual('example title');
await metadataViewPage.clickEditPropertyIcons('properties.cm:description');
await metadataViewPage.enterDescriptionText('example description');
await metadataViewPage.clickUpdatePropertyIcon('properties.cm:description');
await expect(await metadataViewPage.getPropertyText('name')).toEqual('exampleText.png');
await expect(await metadataViewPage.getPropertyText('properties.cm:title')).toEqual('example title');
await expect(await metadataViewPage.getPropertyText('properties.cm:description')).toEqual('example description');
await metadataViewPage.clickSaveMetadata();
await viewerPage.clickCloseButton();
await contentServicesPage.waitForTableBody();
@@ -208,10 +198,9 @@ describe('Metadata component', () => {
await expect(await metadataViewPage.getPropertyText('properties.cm:description')).toEqual('example description');
await metadataViewPage.editIconClick();
await metadataViewPage.clickEditPropertyIcons('name');
await metadataViewPage.enterPropertyText('name', browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name);
await metadataViewPage.clickUpdatePropertyIcon('name');
await expect(await metadataViewPage.getPropertyText('name')).toEqual(browser.params.resources.Files.ADF_DOCUMENTS.PNG.file_name);
await metadataViewPage.clickSaveMetadata();
});
it('[C260181] Should be possible edit all the metadata aspect', async () => {
@@ -228,22 +217,16 @@ describe('Metadata component', () => {
await metadataViewPage.editIconClick();
await metadataViewPage.clickEditPropertyIcons('properties.exif:software');
await metadataViewPage.enterPropertyText('properties.exif:software', 'test custom text software');
await metadataViewPage.clickUpdatePropertyIcon('properties.exif:software');
await expect(await metadataViewPage.getPropertyText('properties.exif:software')).toEqual('test custom text software');
await metadataViewPage.clickEditPropertyIcons('properties.exif:isoSpeedRatings');
await metadataViewPage.enterPropertyText('properties.exif:isoSpeedRatings', 'test custom text isoSpeedRatings');
await metadataViewPage.clickUpdatePropertyIcon('properties.exif:isoSpeedRatings');
await expect(await metadataViewPage.getPropertyText('properties.exif:isoSpeedRatings')).toEqual('test custom text isoSpeedRatings');
await metadataViewPage.clickEditPropertyIcons('properties.exif:fNumber');
await metadataViewPage.enterPropertyText('properties.exif:fNumber', 22);
await metadataViewPage.clickUpdatePropertyIcon('properties.exif:fNumber');
await metadataViewPage.clickSaveMetadata();
await expect(await metadataViewPage.getPropertyText('properties.exif:isoSpeedRatings')).toEqual('test custom text isoSpeedRatings');
await expect(await metadataViewPage.getPropertyText('properties.exif:software')).toEqual('test custom text software');
await expect(await metadataViewPage.getPropertyText('properties.exif:fNumber')).toEqual('22');
});
});
});
describe('Folder metadata', () => {
@@ -253,7 +236,6 @@ describe('Metadata component', () => {
await loginPage.loginToContentServicesUsingUserModel(acsUser);
await navigationBarPage.clickContentServicesButton();
await contentServicesPage.waitForTableBody();
});
it('[C261157] Should be possible use the metadata component When the node is a Folder', async () => {
@@ -269,22 +251,19 @@ describe('Metadata component', () => {
await metadataViewPage.editIconClick();
await metadataViewPage.clickEditPropertyIcons('name');
await metadataViewPage.enterPropertyText('name', 'newnameFolder');
await metadataViewPage.clickClearPropertyIcon('name');
await metadataViewPage.clickResetButton();
await expect(await metadataViewPage.getPropertyText('name')).toEqual(folderName);
await metadataViewPage.clickEditPropertyIcons('name');
await metadataViewPage.enterPropertyText('name', 'newnameFolder');
await metadataViewPage.clickUpdatePropertyIcon('name');
await metadataViewPage.clickSaveMetadata();
await expect(await metadataViewPage.getPropertyText('name')).toEqual('newnameFolder');
await metadataViewPage.clickEditPropertyIcons('name');
await metadataViewPage.enterPropertyText('name', folderName);
await metadataViewPage.clickUpdatePropertyIcon('name');
await metadataViewPage.clickSaveMetadata();
await expect(await metadataViewPage.getPropertyText('name')).toEqual(folderName);
});
});
});
it('[C279960] Should show the last username modifier when modify a File', async () => {
await loginPage.loginToContentServices(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
@@ -300,9 +279,8 @@ describe('Metadata component', () => {
await metadataViewPage.editIconClick();
await metadataViewPage.clickEditPropertyIcons('properties.cm:description');
await metadataViewPage.enterDescriptionText('check author example description');
await metadataViewPage.clickUpdatePropertyIcon('properties.cm:description');
await metadataViewPage.clickSaveMetadata();
await expect(await metadataViewPage.getPropertyText('properties.cm:description')).toEqual('check author example description');
await loginPage.loginToContentServicesUsingUserModel(acsUser);

View File

@@ -359,9 +359,7 @@ describe('Permissions Component', () => {
await metadataViewPage.editIconIsDisplayed();
await metadataViewPage.editIconClick();
await metadataViewPage.editPropertyIconIsDisplayed('properties.cm:title');
await metadataViewPage.clickEditPropertyIcons('properties.cm:title');
await metadataViewPage.enterPropertyText('properties.cm:title', 'newTitle1');
await metadataViewPage.clickUpdatePropertyIcon('properties.cm:title');
await expect(await metadataViewPage.getPropertyText('properties.cm:title')).toEqual('newTitle1');
await metadataViewPage.clickCloseButton();
await contentServicesPage.uploadFile(fileLocation);
@@ -383,9 +381,7 @@ describe('Permissions Component', () => {
await metadataViewPage.editIconIsDisplayed();
await metadataViewPage.editIconClick();
await metadataViewPage.editPropertyIconIsDisplayed('properties.cm:title');
await metadataViewPage.clickEditPropertyIcons('properties.cm:title');
await metadataViewPage.enterPropertyText('properties.cm:title', 'newTitle2');
await metadataViewPage.clickUpdatePropertyIcon('properties.cm:title');
await expect(await metadataViewPage.getPropertyText('properties.cm:title')).toEqual('newTitle2');
await metadataViewPage.clickCloseButton();
await contentServicesPage.uploadFile(testFileModel.location);
@@ -407,9 +403,7 @@ describe('Permissions Component', () => {
await metadataViewPage.editIconIsDisplayed();
await metadataViewPage.editIconClick();
await metadataViewPage.editPropertyIconIsDisplayed('properties.cm:title');
await metadataViewPage.clickEditPropertyIcons('properties.cm:title');
await metadataViewPage.enterPropertyText('properties.cm:title', 'newTitle3');
await metadataViewPage.clickUpdatePropertyIcon('properties.cm:title');
await expect(await metadataViewPage.getPropertyText('properties.cm:title')).toEqual('newTitle3');
await metadataViewPage.clickCloseButton();
await contentServicesPage.uploadFile(pngFileModel.location);

View File

@@ -287,10 +287,8 @@ describe('Permissions Component', () => {
await metadataViewPage.editIconClick();
await metadataViewPage.editPropertyIconIsDisplayed('properties.cm:title');
await metadataViewPage.clickEditPropertyIcons('properties.cm:title');
await metadataViewPage.enterPropertyText('properties.cm:title', 'newTitle');
await metadataViewPage.clickUpdatePropertyIcon('properties.cm:title');
await expect(await metadataViewPage.getPropertyText('properties.cm:title')).toEqual('newTitle');
await metadataViewPage.clickCloseButton();
@@ -321,10 +319,8 @@ describe('Permissions Component', () => {
await metadataViewPage.editIconClick();
await metadataViewPage.editPropertyIconIsDisplayed('properties.cm:description');
await metadataViewPage.clickEditPropertyIcons('properties.cm:description');
await metadataViewPage.enterDescriptionText('newDescription');
await metadataViewPage.clickUpdatePropertyIcon('properties.cm:description');
await metadataViewPage.clickSaveMetadata();
await expect(await metadataViewPage.getPropertyText('properties.cm:description')).toEqual('newDescription');

View File

@@ -49,10 +49,6 @@ export class CardViewComponentPage {
return this.nameCardTextItem.getFieldValue();
}
async clickOnNameTextField(): Promise<void> {
await this.nameCardTextItem.clickOnToggleTextField();
}
async enterNameTextField(text: string): Promise<void> {
await this.nameCardTextItem.enterTextField(text);
}

View File

@@ -15,7 +15,7 @@
* limitations under the License.
*/
import { by, element, ElementFinder } from 'protractor';
import { by, element, ElementFinder, Key, protractor } from 'protractor';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class MetadataViewPage {
@@ -23,15 +23,15 @@ export class MetadataViewPage {
title: ElementFinder = element(by.css(`div[info-drawer-title]`));
expandedAspect: ElementFinder = element(by.css(`mat-expansion-panel-header[aria-expanded='true']`));
aspectTitle = by.css(`mat-panel-title`);
name: ElementFinder = element(by.css(`span[data-automation-id='card-textitem-value-name'] span`));
creator: ElementFinder = element(by.css(`span[data-automation-id='card-textitem-value-createdByUser.displayName'] span`));
name: ElementFinder = element(by.css(`[data-automation-id='card-textitem-value-name']`));
creator: ElementFinder = element(by.css(`[data-automation-id='card-textitem-value-createdByUser.displayName']`));
createdDate: ElementFinder = element(by.css(`span[data-automation-id='card-dateitem-createdAt'] span`));
modifier: ElementFinder = element(by.css(`span[data-automation-id='card-textitem-value-modifiedByUser.displayName'] span`));
modifier: ElementFinder = element(by.css(`[data-automation-id='card-textitem-value-modifiedByUser.displayName']`));
modifiedDate: ElementFinder = element(by.css(`span[data-automation-id='card-dateitem-modifiedAt'] span`));
mimetypeName: ElementFinder = element(by.css(`span[data-automation-id='card-textitem-value-content.mimeTypeName']`));
size: ElementFinder = element(by.css(`span[data-automation-id='card-textitem-value-content.sizeInBytes']`));
description: ElementFinder = element(by.css(`span[data-automation-id='card-textitem-value-properties.cm:description'] span`));
author: ElementFinder = element(by.css(`span[data-automation-id='card-textitem-value-properties.cm:author'] span`));
mimetypeName: ElementFinder = element(by.css(`[data-automation-id='card-textitem-value-content.mimeTypeName']`));
size: ElementFinder = element(by.css(`[data-automation-id='card-textitem-value-content.sizeInBytes']`));
description: ElementFinder = element(by.css(`span[data-automation-id='card-textitem-value-properties.cm:description']`));
author: ElementFinder = element(by.css(`[data-automation-id='card-textitem-value-properties.cm:author']`));
titleProperty: ElementFinder = element(by.css(`span[data-automation-id='card-textitem-value-properties.cm:title'] span`));
editIcon: ElementFinder = element(by.css(`button[data-automation-id='meta-data-card-toggle-edit']`));
informationButton: ElementFinder = element(by.css(`button[data-automation-id='meta-data-card-toggle-expand']`));
@@ -45,6 +45,8 @@ export class MetadataViewPage {
closeButton: ElementFinder = element(by.cssContainingText('button.mat-button span', 'Close'));
displayAspect: ElementFinder = element(by.css(`input[placeholder='Display Aspect']`));
applyAspect: ElementFinder = element(by.cssContainingText(`button span.mat-button-wrapper`, 'Apply Aspect'));
saveMetadataButton: ElementFinder = element(by.css(`[data-automation-id='save-metadata']`));
resetMetadataButton: ElementFinder = element(by.css(`[data-automation-id='reset-metadata']`));
async getTitle(): Promise<string> {
return BrowserActions.getText(this.title);
@@ -55,11 +57,11 @@ export class MetadataViewPage {
}
async getName(): Promise<string> {
return BrowserActions.getText(this.name);
return BrowserActions.getInputValue(this.name);
}
async getCreator(): Promise<string> {
return BrowserActions.getText(this.creator);
return BrowserActions.getInputValue(this.creator);
}
async getCreatedDate(): Promise<string> {
@@ -67,7 +69,7 @@ export class MetadataViewPage {
}
async getModifier(): Promise<string> {
return BrowserActions.getText(this.modifier);
return BrowserActions.getInputValue(this.modifier);
}
async getModifiedDate(): Promise<string> {
@@ -75,19 +77,19 @@ export class MetadataViewPage {
}
async getMimetypeName(): Promise<string> {
return BrowserActions.getText(this.mimetypeName);
return BrowserActions.getInputValue(this.mimetypeName);
}
async getSize(): Promise<string> {
return BrowserActions.getText(this.size);
return BrowserActions.getInputValue(this.size);
}
async getDescription(): Promise<string> {
return BrowserActions.getText(this.description);
return BrowserActions.getInputValue(this.description);
}
async getAuthor(): Promise<string> {
return BrowserActions.getText(this.author);
return BrowserActions.getInputValue(this.author);
}
async getTitleProperty(): Promise<string> {
@@ -136,61 +138,44 @@ export class MetadataViewPage {
}
async editPropertyIconIsDisplayed(propertyName: string) {
const editPropertyIcon: ElementFinder = element(by.css('button[data-automation-id="card-textitem-edit-icon-' + propertyName + '"]'));
const editPropertyIcon: ElementFinder = element(by.css('[data-automation-id="header-' + propertyName + '"] .adf-textitem-edit-icon'));
await BrowserVisibility.waitUntilElementIsPresent(editPropertyIcon);
}
async updatePropertyIconIsDisplayed(propertyName: string) {
const updatePropertyIcon: ElementFinder = element(by.css('button[data-automation-id="card-textitem-update-' + propertyName + '"]'));
await BrowserVisibility.waitUntilElementIsVisible(updatePropertyIcon);
}
async clickUpdatePropertyIcon(propertyName: string): Promise<void> {
const updatePropertyIcon: ElementFinder = element(by.css('button[data-automation-id="card-textitem-update-' + propertyName + '"]'));
await BrowserActions.click(updatePropertyIcon);
}
async clickClearPropertyIcon(propertyName: string): Promise<void> {
const clearPropertyIcon: ElementFinder = element(by.css('button[data-automation-id="card-textitem-reset-' + propertyName + '"]'));
async clickResetButton(): Promise<void> {
const clearPropertyIcon: ElementFinder = element(by.css('button[data-automation-id="reset-metadata"]'));
await BrowserActions.click(clearPropertyIcon);
}
async enterPropertyText(propertyName: string, text: string | number): Promise<void> {
const textField: ElementFinder = element(by.css('input[data-automation-id="card-textitem-editinput-' + propertyName + '"]'));
const textField: ElementFinder = element(by.css('input[data-automation-id="card-textitem-value-' + propertyName + '"]'));
await BrowserActions.clearSendKeys(textField, text.toString());
await textField.sendKeys(protractor.Key.ENTER);
}
async enterPresetText(text: string): Promise<void> {
const presetField: ElementFinder = element(by.css('input[data-automation-id="adf-text-custom-preset"]'));
await BrowserActions.clearSendKeys(presetField, text);
await BrowserActions.clearSendKeys(presetField, text.toString());
await presetField.sendKeys(protractor.Key.ENTER);
const applyButton: ElementFinder = element(by.css('button[id="adf-metadata-aplly"]'));
await BrowserActions.click(applyButton);
}
async enterDescriptionText(text: string): Promise<void> {
const textField: ElementFinder = element(by.css('textarea[data-automation-id="card-textitem-edittextarea-properties.cm:description"]'));
const textField: ElementFinder = element(by.css('textarea[data-automation-id="card-textitem-value-properties.cm:description"]'));
await BrowserActions.clearSendKeys(textField, text);
await textField.sendKeys(Key.TAB);
}
async getPropertyText(propertyName: string, type?: string): Promise<string> {
const propertyType = type || 'textitem';
const textField: ElementFinder = element(by.css('span[data-automation-id="card-' + propertyType + '-value-' + propertyName + '"]'));
const textField: ElementFinder = element(by.css('[data-automation-id="card-' + propertyType + '-value-' + propertyName + '"]'));
return BrowserActions.getText(textField);
}
async clearPropertyIconIsDisplayed(propertyName: string): Promise<void> {
const clearPropertyIcon: ElementFinder = element(by.css('button[data-automation-id="card-textitem-reset-' + propertyName + '"]'));
await BrowserVisibility.waitUntilElementIsVisible(clearPropertyIcon);
}
async clickEditPropertyIcons(propertyName: string): Promise<void> {
const editPropertyIcon: ElementFinder = element(by.css('button[data-automation-id="card-textitem-edit-icon-' + propertyName + '"]'));
await BrowserActions.click(editPropertyIcon);
return BrowserActions.getInputValue(textField);
}
async getPropertyIconTooltip(propertyName: string): Promise<string> {
const editPropertyIcon: ElementFinder = element(by.css('button[data-automation-id="card-textitem-edit-icon-' + propertyName + '"]'));
const editPropertyIcon: ElementFinder = element(by.css('[data-automation-id="header-' + propertyName + '"] .adf-textitem-edit-icon'));
return editPropertyIcon.getAttribute('title');
}
@@ -247,4 +232,12 @@ export class MetadataViewPage {
async clickApplyAspect(): Promise<void> {
await BrowserActions.click(this.applyAspect);
}
async clickSaveMetadata(): Promise<void> {
await BrowserActions.click(this.saveMetadataButton);
}
async clickResetMetadata(): Promise<void> {
await BrowserActions.click(this.resetMetadataButton);
}
}

View File

@@ -21,14 +21,14 @@ import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class ProcessDetailsPage {
processTitle: ElementFinder = element(by.css('mat-card-title[class="mat-card-title"]'));
processDetailsMessage: ElementFinder = element(by.css('adf-process-instance-details div[class="ng-star-inserted"]'));
processStatusField: ElementFinder = element(by.css('span[data-automation-id="card-textitem-value-status"]'));
processStatusField: ElementFinder = element(by.css('[data-automation-id="card-textitem-value-status"]'));
processEndDateField: ElementFinder = element(by.css('span[data-automation-id="card-dateitem-ended"]'));
processCategoryField: ElementFinder = element(by.css('span[data-automation-id="card-textitem-value-category"]'));
processBusinessKeyField: ElementFinder = element(by.css('span[data-automation-id="card-textitem-value-businessKey"]'));
processCreatedByField: ElementFinder = element(by.css('span[data-automation-id="card-textitem-value-assignee"]'));
processCategoryField: ElementFinder = element(by.css('[data-automation-id="card-textitem-value-category"]'));
processBusinessKeyField: ElementFinder = element(by.css('[data-automation-id="card-textitem-value-businessKey"]'));
processCreatedByField: ElementFinder = element(by.css('[data-automation-id="card-textitem-value-assignee"]'));
processCreatedField: ElementFinder = element(by.css('span[data-automation-id="card-dateitem-created"]'));
processIdField: ElementFinder = element(by.css('span[data-automation-id="card-textitem-value-id"]'));
processDescription: ElementFinder = element(by.css('span[data-automation-id="card-textitem-value-description"]'));
processIdField: ElementFinder = element(by.css('[data-automation-id="card-textitem-value-id"]'));
processDescription: ElementFinder = element(by.css('[data-automation-id="card-textitem-value-description"]'));
showDiagramButtonDisabled: ElementFinder = element(by.css('button[id="show-diagram-button"][disabled]'));
propertiesList: ElementFinder = element(by.css('div[class="adf-property-list"]'));
showDiagramButton: ElementFinder = element(by.id('show-diagram-button'));
@@ -67,7 +67,7 @@ export class ProcessDetailsPage {
}
getProcessStatus(): Promise<string> {
return BrowserActions.getText(this.processStatusField);
return BrowserActions.getInputValue(this.processStatusField);
}
getEndDate(): Promise<string> {
@@ -75,15 +75,15 @@ export class ProcessDetailsPage {
}
getProcessCategory(): Promise<string> {
return BrowserActions.getText(this.processCategoryField);
return BrowserActions.getInputValue(this.processCategoryField);
}
getBusinessKey(): Promise<string> {
return BrowserActions.getText(this.processBusinessKeyField);
return BrowserActions.getInputValue(this.processBusinessKeyField);
}
getCreatedBy(): Promise<string> {
return BrowserActions.getText(this.processCreatedByField);
return BrowserActions.getInputValue(this.processCreatedByField);
}
getCreated(): Promise<string> {
@@ -91,11 +91,11 @@ export class ProcessDetailsPage {
}
getId(): Promise<string> {
return BrowserActions.getText(this.processIdField);
return BrowserActions.getInputValue(this.processIdField);
}
getProcessDescription(): Promise<string> {
return BrowserActions.getText(this.processDescription);
return BrowserActions.getInputValue(this.processDescription);
}
async clickShowDiagram(): Promise<void> {

View File

@@ -16,7 +16,7 @@
*/
import { BrowserActions, BrowserVisibility, DropdownPage, TabsPage } from '@alfresco/adf-testing';
import { browser, by, element, ElementFinder } from 'protractor';
import { browser, by, element, ElementFinder, Key } from 'protractor';
import { AppSettingsTogglesPage } from './dialog/app-settings-toggles.page';
export class TaskDetailsPage {
@@ -24,18 +24,20 @@ export class TaskDetailsPage {
appSettingsTogglesClass = new AppSettingsTogglesPage();
formContent: ElementFinder = element(by.css('adf-form'));
formNameField: ElementFinder = element(by.css('span[data-automation-id*="formName"] span'));
assigneeField: ElementFinder = element(by.css('span[data-automation-id*="assignee"] span'));
statusField: ElementFinder = element(by.css('span[data-automation-id*="status"] span'));
categoryField: ElementFinder = element(by.css('span[data-automation-id*="category"] span'));
formNameField: ElementFinder = element(by.css('[data-automation-id="card-textitem-value-formName"]'));
formNameButton: ElementFinder = element(by.css('[data-automation-id="card-textitem-toggle-formName"]'));
assigneeField: ElementFinder = element(by.css('[data-automation-id="card-textitem-value-assignee"]'));
assigneeButton: ElementFinder = element(by.css('[data-automation-id="card-textitem-toggle-assignee"]'));
statusField: ElementFinder = element(by.css('[data-automation-id="card-textitem-value-status"]'));
categoryField: ElementFinder = element(by.css('[data-automation-id="card-textitem-value-category"] '));
parentNameField: ElementFinder = element(by.css('span[data-automation-id*="parentName"] span'));
parentTaskIdField: ElementFinder = element(by.css('span[data-automation-id*="parentTaskId"] span'));
durationField: ElementFinder = element(by.css('span[data-automation-id*="duration"] span'));
parentTaskIdField: ElementFinder = element(by.css('[data-automation-id="card-textitem-value-parentTaskId"] '));
durationField: ElementFinder = element(by.css('[data-automation-id="card-textitem-value-duration"] '));
endDateField: ElementFinder = element.all(by.css('span[data-automation-id*="endDate"] span')).first();
createdField: ElementFinder = element(by.css('span[data-automation-id="card-dateitem-created"] span'));
idField: ElementFinder = element.all(by.css('span[data-automation-id*="id"] span')).first();
descriptionField: ElementFinder = element(by.css('span[data-automation-id*="description"] span'));
dueDateField: ElementFinder = element(by.css('span[data-automation-id*="dueDate"] span'));
idField: ElementFinder = element.all(by.css('[data-automation-id="card-textitem-value-id"]')).first();
descriptionField: ElementFinder = element(by.css('[data-automation-id="card-textitem-value-description"]'));
dueDateField: ElementFinder = element.all(by.css('span[data-automation-id*="dueDate"] span')).first();
activitiesTitle: ElementFinder = element(by.css('div[class*="adf-info-drawer-layout-header-title"] div'));
commentField: ElementFinder = element(by.id('comment-input'));
addCommentButton: ElementFinder = element(by.css('[data-automation-id="comments-input-add"]'));
@@ -62,8 +64,8 @@ export class TaskDetailsPage {
removeAttachForm: ElementFinder = element(by.id('adf-attach-form-remove-button'));
attachFormName: ElementFinder = element(by.css('span[class="adf-form-title ng-star-inserted"]'));
emptyTaskDetails: ElementFinder = element(by.css('adf-task-details > div > div'));
priority: ElementFinder = element(by.css('span[data-automation-id*="priority"] span'));
editableAssignee = element(by.css('span[data-automation-id="card-textitem-value-assignee"][class*="clickable"]'));
priority: ElementFinder = element(by.css('[data-automation-id*="card-textitem-value-priority"]'));
editableAssignee = element(by.css('[data-automation-id="card-textitem-value-assignee"][class*="clickable"]'));
claimElement = element(by.css('[data-automation-id="header-claim-button"]'));
releaseElement = element(by.css('[data-automation-id="header-unclaim-button"]'));
saveFormButton = element(by.css('button[id="adf-form-save"]'));
@@ -75,20 +77,10 @@ export class TaskDetailsPage {
}
async checkEditableFormIsNotDisplayed(): Promise<void> {
const editableForm = element(by.css('span[data-automation-id="card-textitem-value-formName"][class*="clickable"]'));
const editableForm = element(by.css('[data-automation-id="card-textitem-value-formName"][class*="clickable"]'));
await BrowserVisibility.waitUntilElementIsNotVisible(editableForm);
}
async checkEditDescriptionButtonIsNotDisplayed(): Promise<void> {
const editDescriptionButton = element(by.css('button[data-automation-id="card-textitem-edit-icon-description"]'));
await BrowserVisibility.waitUntilElementIsNotVisible(editDescriptionButton);
}
async checkEditPriorityButtonIsNotDisplayed(): Promise<void> {
const editPriorityButton = element(by.css('button[data-automation-id="card-textitem-edit-icon-priority"]'));
await BrowserVisibility.waitUntilElementIsNotVisible(editPriorityButton);
}
async checkDueDatePickerButtonIsNotDisplayed(): Promise<void> {
const dueDatePickerButton = element(by.css('mat-datetimepicker-toggle[data-automation-id="datepickertoggle-dueDate"]'));
await BrowserVisibility.waitUntilElementIsNotVisible(dueDatePickerButton);
@@ -151,17 +143,17 @@ export class TaskDetailsPage {
}
async checkFormIsAttached(formName): Promise<void> {
const attachedFormName = await BrowserActions.getText(this.formNameField);
const attachedFormName = await BrowserActions.getInputValue(this.formNameField);
await expect(attachedFormName).toEqual(formName);
}
getFormName(): Promise<string> {
return BrowserActions.getText(this.formNameField);
return BrowserActions.getInputValue(this.formNameField);
}
async clickForm(): Promise<void> {
await BrowserActions.closeMenuAndDialogs();
await BrowserActions.click(this.formNameField);
await BrowserActions.click(this.formNameButton);
}
async checkStandaloneNoFormMessageIsDisplayed(): Promise<void> {
@@ -173,7 +165,7 @@ export class TaskDetailsPage {
}
getAssignee(): Promise<string> {
return BrowserActions.getText(this.assigneeField);
return BrowserActions.getInputValue(this.assigneeField);
}
isAssigneeClickable(): Promise<string> {
@@ -181,11 +173,11 @@ export class TaskDetailsPage {
}
getStatus(): Promise<string> {
return BrowserActions.getText(this.statusField);
return BrowserActions.getInputValue(this.statusField);
}
getCategory(): Promise<string> {
return BrowserActions.getText(this.categoryField);
return BrowserActions.getInputValue(this.categoryField);
}
getParentName(): Promise<string> {
@@ -193,11 +185,11 @@ export class TaskDetailsPage {
}
getParentTaskId(): Promise<string> {
return BrowserActions.getText(this.parentTaskIdField);
return BrowserActions.getInputValue(this.parentTaskIdField);
}
getDuration(): Promise<string> {
return BrowserActions.getText(this.durationField);
return BrowserActions.getInputValue(this.durationField);
}
getEndDate(): Promise<string> {
@@ -209,11 +201,16 @@ export class TaskDetailsPage {
}
getId(): Promise<string> {
return BrowserActions.getText(this.idField);
return BrowserActions.getInputValue(this.idField);
}
getDescription(): Promise<string> {
return BrowserActions.getText(this.descriptionField);
return BrowserActions.getInputValue(this.descriptionField);
}
async getDescriptionPlaceholder(): Promise<string> {
await BrowserVisibility.waitUntilElementIsPresent(this.descriptionField);
return this.descriptionField.getAttribute('placeholder');
}
getDueDate(): Promise<string> {
@@ -221,32 +218,30 @@ export class TaskDetailsPage {
}
getPriority(): Promise<string> {
return BrowserActions.getText(this.priority);
return BrowserActions.getInputValue(this.priority);
}
async updatePriority(priority?: string): Promise<void> {
await BrowserActions.click(this.priority);
await BrowserActions.clearSendKeys(element(by.css('input[data-automation-id="card-textitem-editinput-priority"]')), priority ? priority : ' ');
await BrowserActions.click(element(by.css('button[data-automation-id="card-textitem-update-priority"]')));
await BrowserActions.clearWithBackSpace(this.priority);
await BrowserActions.clearSendKeys(element(by.css('input[data-automation-id="card-textitem-value-priority"]')), priority ? priority : ' ');
await this.priority.sendKeys(Key.TAB);
}
async updateDueDate(): Promise<void> {
await BrowserActions.click(this.dueDateField);
await BrowserActions.click(element(by.css('.mat-datetimepicker-calendar-body-cell')));
await BrowserActions.click(element.all(by.css('.mat-datetimepicker-calendar-body-cell')).first());
}
async updateDescription(description?: string): Promise<void> {
await BrowserActions.click(this.descriptionField);
const input = 'textarea[data-automation-id="card-textitem-edittextarea-description"]';
await BrowserActions.clearSendKeys(element(by.css(input)), description ? description : '');
if (!description) {
await browser.executeScript(`document.querySelector('${input}').dispatchEvent(new Event('input'))`);
}
await BrowserActions.click(element(by.css('button[data-automation-id="card-textitem-update-description"]')));
await BrowserActions.clearWithBackSpace(this.descriptionField);
await BrowserActions.clearSendKeys(element(by.css('[data-automation-id="card-textitem-value-description"]')), description ? description : '');
await this.descriptionField.sendKeys(Key.TAB);
}
async updateAssignee(fullName: string): Promise<void> {
await BrowserActions.click(this.assigneeField);
await BrowserActions.click(this.assigneeButton);
await BrowserActions.clearSendKeys(element(by.css('[id="userSearchText"]')), fullName);
await BrowserActions.click(element(by.cssContainingText('.adf-people-full-name', fullName)));
await BrowserActions.click(element(by.css('button[id="add-people"]')));

View File

@@ -74,12 +74,12 @@ describe('Edit task filters cloud', () => {
});
afterEach(async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
});
it('[C291785] All the filters property should be set up accordingly with the Query Param', async () => {
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getStatusFilterDropDownValue()).toEqual('ASSIGNED');
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('CreatedDate');
@@ -87,7 +87,7 @@ describe('Edit task filters cloud', () => {
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(assignedTaskName);
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(completedTaskName);
await tasksCloudDemoPage.taskFilterCloudComponent.clickCompletedTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('Completed Tasks');
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getStatusFilterDropDownValue()).toEqual('COMPLETED');
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('CreatedDate');
@@ -98,9 +98,9 @@ describe('Edit task filters cloud', () => {
});
it('[C306896] Delete Save and Save as actions should be displayed when clicking on custom filter header', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
@@ -115,13 +115,13 @@ describe('Edit task filters cloud', () => {
});
it('[C291795] New filter is added when clicking Save As button', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
await editTaskFilterCloudComponent.openFilter();
await editTaskFilterCloudComponent.setSortFilterDropDown('Id');
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
@@ -135,7 +135,7 @@ describe('Edit task filters cloud', () => {
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().checkSaveAsButtonIsEnabled()).toEqual(false);
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().checkDeleteButtonIsEnabled()).toEqual(true);
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('CreatedDate');
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('custom-new');
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('Id');
@@ -143,13 +143,13 @@ describe('Edit task filters cloud', () => {
});
it('[C291796] Two filters with same name can be created when clicking the Save As button', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
await editTaskFilterCloudComponent.openFilter();
await editTaskFilterCloudComponent.setSortFilterDropDown('Id');
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
@@ -178,13 +178,13 @@ describe('Edit task filters cloud', () => {
});
it('[C291797] A filter is overrided when clicking on save button', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
await editTaskFilterCloudComponent.openFilter();
await editTaskFilterCloudComponent.setSortFilterDropDown('Id');
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
const editTaskFilterDialog = await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog();
@@ -204,13 +204,13 @@ describe('Edit task filters cloud', () => {
});
it('[C291798] A filter is deleted when clicking on delete button', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
await editTaskFilterCloudComponent.openFilter();
await editTaskFilterCloudComponent.setSortFilterDropDown('Id');
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().clickSaveAsButton();
const editTaskFilterDialog = await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog();
@@ -227,7 +227,7 @@ describe('Edit task filters cloud', () => {
});
it('[C291800] Task filter should not be created when task filter dialog is closed', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
await editTaskFilterCloudComponent.openFilter();
@@ -241,8 +241,8 @@ describe('Edit task filters cloud', () => {
await tasksCloudDemoPage.editTaskFilterCloudComponent().editTaskFilterDialog().clickOnCancelButton();
await tasksCloudDemoPage.taskFilterCloudComponent.checkTaskFilterNotDisplayed('Cancel');
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toEqual('My Tasks');
await tasksCloudDemoPage.taskFilterCloudComponent.clickCompletedTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getSortFilterDropDownValue()).toEqual('CreatedDate');
@@ -250,7 +250,7 @@ describe('Edit task filters cloud', () => {
});
it('[C291801] Save button of task filter dialog should be disabled when task name is empty', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
const editTaskFilterCloudComponent = tasksCloudDemoPage.editTaskFilterCloudComponent();
await editTaskFilterCloudComponent.openFilter();
@@ -272,7 +272,7 @@ describe('Edit task filters cloud', () => {
});
it('[C291799] Task filter dialog is displayed when clicking on Save As button', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
const tasksCloud = tasksCloudDemoPage.editTaskFilterCloudComponent();
await tasksCloud.openFilter();
await tasksCloud.setSortFilterDropDown('Id');

View File

@@ -91,7 +91,7 @@ describe('Form Field Component - Dropdown Widget', () => {
});
it('[C290069] Should be able to read rest service dropdown options, save and complete the task form', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(task.entry.name);
await tasksCloudDemoPage.taskListCloudComponent().selectRow(task.entry.name);
await taskHeaderCloudPage.checkTaskPropertyListIsDisplayed();
@@ -108,7 +108,7 @@ describe('Form Field Component - Dropdown Widget', () => {
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(task.entry.name);
await notificationHistoryPage.checkNotifyContains('Task has been saved successfully');
await tasksCloudDemoPage.taskFilterCloudComponent.clickCompletedTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(task.entry.name);
await tasksCloudDemoPage.taskListCloudComponent().selectRow(task.entry.name);
await taskFormCloudComponent.formFields().checkFormIsDisplayed();

View File

@@ -127,7 +127,7 @@ describe('Process Task - Attach content file', () => {
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(taskName);
await tasksCloudDemoPage.taskFilterCloudComponent.clickCompletedTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(taskName);
await processCloudDemoPage.processFilterCloudComponent.clickOnProcessFilters();

View File

@@ -300,7 +300,7 @@ describe('Start Task Form', () => {
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedById(taskId);
await tasksCloudDemoPage.taskFilterCloudComponent.clickCompletedTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedById(taskId);
await processCloudDemoPage.processFilterCloudComponent.clickOnProcessFilters();
@@ -511,7 +511,7 @@ describe('Start Task Form', () => {
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedById(taskId);
await tasksCloudDemoPage.taskFilterCloudComponent.clickCompletedTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedById(taskId);
await tasksCloudDemoPage.taskListCloudComponent().selectRowByTaskId(taskId);
await contentFileWidget.checkFileIsAttached(testFileModel.name);
@@ -546,7 +546,7 @@ describe('Start Task Form', () => {
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedById(taskId);
await tasksCloudDemoPage.taskFilterCloudComponent.clickCompletedTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedById(taskId);
await tasksCloudDemoPage.taskListCloudComponent().selectRowByTaskId(taskId);
await contentFileWidget.checkFileIsAttached(testFileModel.name);

View File

@@ -194,7 +194,7 @@ describe('Start Task', () => {
await browser.driver.sleep(1000);
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
});

View File

@@ -69,11 +69,11 @@ describe('Task filters cloud', () => {
const task = await tasksService.createStandaloneTask(newTask, simpleApp);
await tasksService.claimTask(task.entry.id, simpleApp);
await tasksCloudDemoPage.taskFilterCloudComponent.clickCompletedTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('Completed Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(newTask);
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(newTask);
@@ -86,11 +86,11 @@ describe('Task filters cloud', () => {
await tasksService.claimTask(toBeCompletedTask.entry.id, simpleApp);
await tasksService.completeTask(toBeCompletedTask.entry.id, simpleApp);
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(completedTask);
await tasksCloudDemoPage.taskFilterCloudComponent.clickCompletedTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('Completed Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(completedTask);

View File

@@ -158,7 +158,7 @@ describe('Task form cloud component', () => {
describe('Complete task with form - cloud directive', () => {
it('[C315174] Should be able to complete a standalone task with visible tab with empty value for field', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[0].entry.name);
@@ -174,13 +174,11 @@ describe('Task form cloud component', () => {
await widget.tab().checkTabIsDisplayedByLabel(tab.tabFieldValue);
await taskFormCloudComponent.clickCompleteButton();
await browser.sleep(1000);
await browser.refresh();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(visibilityConditionTasks[0].entry.name);
await tasksCloudDemoPage.taskFilterCloudComponent.clickCompletedTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[0].entry.name);
await tasksCloudDemoPage.taskListCloudComponent().selectRow(visibilityConditionTasks[0].entry.name);
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
@@ -188,7 +186,7 @@ describe('Task form cloud component', () => {
});
it('[C315177] Should be able to complete a standalone task with invisible tab with invalid value for field', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[1].entry.name);
@@ -213,13 +211,11 @@ describe('Task form cloud component', () => {
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabFieldField);
await taskFormCloudComponent.clickCompleteButton();
await browser.sleep(1000);
await browser.refresh();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(visibilityConditionTasks[1].entry.name);
await tasksCloudDemoPage.taskFilterCloudComponent.clickCompletedTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[1].entry.name);
await tasksCloudDemoPage.taskListCloudComponent().selectRow(visibilityConditionTasks[1].entry.name);
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
@@ -227,7 +223,7 @@ describe('Task form cloud component', () => {
});
it('[C315178] Should be able to complete a standalone task with invisible tab with valid value', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[2].entry.name);
@@ -251,14 +247,12 @@ describe('Task form cloud component', () => {
await widget.textWidget().setValue(widgets.textOneId, value.notDisplayTab);
await widget.tab().checkTabIsNotDisplayedByLabel(tab.tabFieldVar);
await taskFormCloudComponent.clickCompleteButton();
await browser.sleep(1000);
await browser.refresh();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(visibilityConditionTasks[2].entry.name);
await tasksCloudDemoPage.taskFilterCloudComponent.clickCompletedTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[2].entry.name);
await tasksCloudDemoPage.taskListCloudComponent().selectRow(visibilityConditionTasks[2].entry.name);
@@ -267,7 +261,7 @@ describe('Task form cloud component', () => {
});
it('[C315175] Should be able to complete a standalone task with invisible tab with empty value for field', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[3].entry.name);
@@ -280,13 +274,11 @@ describe('Task form cloud component', () => {
await widget.textWidget().isWidgetNotVisible(widgets.textTwoId);
await taskFormCloudComponent.clickCompleteButton();
await browser.sleep(1000);
await browser.refresh();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(visibilityConditionTasks[3].entry.name);
await tasksCloudDemoPage.taskFilterCloudComponent.clickCompletedTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[3].entry.name);
await tasksCloudDemoPage.taskListCloudComponent().selectRow(visibilityConditionTasks[3].entry.name);
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);
@@ -294,7 +286,7 @@ describe('Task form cloud component', () => {
});
it('[C315176] Should not be able to complete a standalone task with visible tab with invalid value for field', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[4].entry.name);
@@ -316,7 +308,7 @@ describe('Task form cloud component', () => {
});
it('[C315179] Should be able to complete a standalone task with visible tab with valid value for field', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[5].entry.name);
@@ -331,13 +323,11 @@ describe('Task form cloud component', () => {
await widget.textWidget().setValue(widgets.textThreeId, value.displayTab);
await taskFormCloudComponent.clickCompleteButton();
await browser.sleep(1000);
await browser.refresh();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(visibilityConditionTasks[5].entry.name);
await tasksCloudDemoPage.taskFilterCloudComponent.clickCompletedTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(visibilityConditionTasks[5].entry.name);
await tasksCloudDemoPage.taskListCloudComponent().selectRow(visibilityConditionTasks[5].entry.name);
await widget.tab().checkTabIsDisplayedByLabel(tab.tabWithFields);

View File

@@ -119,7 +119,7 @@ describe('Task form cloud component', () => {
it('[C310366] Should refresh buttons and form after an action is complete', async () => {
await appListCloudComponent.goToApp(simpleApp);
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await expect(tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
await tasksCloudDemoPage.editTaskFilterCloudComponent().clearAssignee();
@@ -142,7 +142,7 @@ describe('Task form cloud component', () => {
await taskFormCloudComponent.checkReleaseButtonIsDisplayed();
await taskFormCloudComponent.clickCompleteButton();
await tasksCloudDemoPage.taskFilterCloudComponent.clickCompletedTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedById(formTaskId);
await tasksCloudDemoPage.taskListCloudComponent().selectRowByTaskId(formTaskId);
@@ -155,7 +155,7 @@ describe('Task form cloud component', () => {
it('[C306872] Should not be able to Release a process task which has only assignee', async () => {
await appListCloudComponent.goToApp(simpleApp);
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedById(assigneeTaskId);
await tasksCloudDemoPage.taskListCloudComponent().selectRowByTaskId(assigneeTaskId);
@@ -171,14 +171,14 @@ describe('Task form cloud component', () => {
});
it('[C307032] Should display the appropriate title for the unclaim option of a Task', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedById(candidateUsersTask.entry.id);
await tasksCloudDemoPage.taskListCloudComponent().selectRowByTaskId(candidateUsersTask.entry.id);
await expect(await taskFormCloudComponent.getReleaseButtonText()).toBe('RELEASE');
});
it('[C310142] Empty content is displayed when having a task without form', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(assigneeTask.entry.name);
await tasksCloudDemoPage.taskListCloudComponent().selectRow(assigneeTask.entry.name);
await taskFormCloudComponent.checkFormIsNotDisplayed();
@@ -189,7 +189,7 @@ describe('Task form cloud component', () => {
});
it('[C310199] Should not be able to complete a task when required field is empty or invalid data is added to a field', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(formValidationsTask.entry.name);
await tasksCloudDemoPage.taskListCloudComponent().selectRow(formValidationsTask.entry.name);
await taskFormCloudComponent.checkFormIsDisplayed();
@@ -225,7 +225,7 @@ describe('Task form cloud component', () => {
});
it('[C307093] Complete button is not displayed when the task is already completed', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickCompletedTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('Completed Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(completedTaskName);
await tasksCloudDemoPage.taskListCloudComponent().selectRow(completedTaskName);
@@ -234,7 +234,7 @@ describe('Task form cloud component', () => {
});
it('[C307095] Task can not be completed by owner user', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
@@ -250,7 +250,7 @@ describe('Task form cloud component', () => {
});
it('[C307110] Task list is displayed after clicking on Cancel button', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(assigneeTask.entry.name);
@@ -263,7 +263,7 @@ describe('Task form cloud component', () => {
});
it('[C307094] Standalone Task can be completed by a user that is owner and assignee', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(toBeCompletedTask.entry.name);
@@ -273,13 +273,13 @@ describe('Task form cloud component', () => {
await taskFormCloudComponent.clickCompleteButton();
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(toBeCompletedTask.entry.name);
await tasksCloudDemoPage.taskFilterCloudComponent.clickCompletedTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(toBeCompletedTask.entry.name);
await taskFormCloudComponent.checkCompleteButtonIsNotDisplayed();
});
it('[C307111] Task of a process can be completed by a user that is owner and assignee', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(completedTask.entry.name);
@@ -289,7 +289,7 @@ describe('Task form cloud component', () => {
await taskFormCloudComponent.clickCompleteButton();
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(completedTask.entry.name);
await tasksCloudDemoPage.taskFilterCloudComponent.clickCompletedTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(completedTask.entry.name);
await taskFormCloudComponent.checkCompleteButtonIsNotDisplayed();
});

View File

@@ -138,7 +138,7 @@ describe('Task Header cloud component', () => {
});
it('[C291943] Should display task details for assigned task', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(basicCreatedTaskName);
await tasksCloudDemoPage.taskListCloudComponent().selectRow(basicCreatedTaskName);
@@ -158,7 +158,7 @@ describe('Task Header cloud component', () => {
});
it('[C291944] Should display task details for completed task', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickCompletedTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(completedTaskName);
await tasksCloudDemoPage.taskListCloudComponent().selectRow(completedTaskName);
@@ -178,7 +178,7 @@ describe('Task Header cloud component', () => {
});
it('[C291945] Should Parent Name and Parent Id not be empty in task details for sub task', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(subTask.entry.name);
await tasksCloudDemoPage.taskListCloudComponent().selectRow(subTask.entry.name);
@@ -204,19 +204,16 @@ describe('Task Header cloud component', () => {
await startTaskCloudPage.addName(myTaskName);
await startTaskCloudPage.typePriorityOf('50');
await startTaskCloudPage.clickStartButton();
await tasksCloudDemoPage.taskFilterCloudComponent.clickMyTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('my-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(myTaskName);
await tasksCloudDemoPage.taskListCloudComponent().selectRow(myTaskName);
await taskHeaderCloudPage.checkTaskPropertyListIsDisplayed();
await taskHeaderCloudPage.priorityCardTextItem.clickOnEditButton();
await taskHeaderCloudPage.priorityCardTextItem.enterTextField('$$%£W21');
await taskHeaderCloudPage.priorityCardTextItem.clickOnSaveButton();
const errorMessage = await taskHeaderCloudPage.priorityCardTextItem.getErrorMessage();
await expect(errorMessage).toBe('Enter a different value');
await taskHeaderCloudPage.priorityCardTextItem.enterTextField('600');
await taskHeaderCloudPage.priorityCardTextItem.clickOnSaveButton();
const currentValue = await taskHeaderCloudPage.priorityCardTextItem.getFieldValue();
await expect(currentValue).toBe('600');
});
@@ -263,7 +260,7 @@ describe('Task Header cloud component', () => {
});
it('[C311280] Should pick up the default date format from the app configuration', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.clickCompletedTasksFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.clickTaskFilter('completed-tasks');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(completedTaskName);
await tasksCloudDemoPage.taskListCloudComponent().selectRow(completedTaskName);
await taskHeaderCloudPage.checkTaskPropertyListIsDisplayed();

View File

@@ -93,7 +93,7 @@ describe('Process list cloud', () => {
await tasksCloudDemoPage.actionAdded('invisibleaction');
await tasksCloudDemoPage.clickAppButton();
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await tasksCloudDemoPage.taskFilterCloudComponent.checkTaskFilterIsDisplayed('my-tasks');
});
it('[C315723] Should be able to see and execute custom action menu', async () => {

View File

@@ -128,7 +128,7 @@ describe('Edit task filters and task list properties', () => {
await appListCloudComponent.checkApsContainer();
await appListCloudComponent.goToApp(simpleApp);
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await tasksCloudDemoPage.taskFilterCloudComponent.checkTaskFilterIsDisplayed('my-tasks');
});
it('[C306901] Should display tasks sorted by task name when taskName is selected from sort dropdown', async () => {

View File

@@ -111,13 +111,10 @@ describe('Edit task filters and task list properties', () => {
await appListCloudComponent.checkApsContainer();
await appListCloudComponent.goToApp(simpleApp);
await tasksCloudDemoPage.editTaskFilterCloudComponent().openFilter();
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await tasksCloudDemoPage.taskFilterCloudComponent.checkTaskFilterIsDisplayed('my-tasks');
});
it('[C292004] Filter by appName', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getAppNameDropDownValue()).toEqual(simpleApp);
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(createdTask.entry.name);
@@ -131,9 +128,6 @@ describe('Edit task filters and task list properties', () => {
});
it('[C291906] Should be able to see only the task with specific taskId when typing it in the task Id field', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().setId(createdTask.entry.id);
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getId()).toEqual(createdTask.entry.id);
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedById(createdTask.entry.id);
@@ -143,9 +137,6 @@ describe('Edit task filters and task list properties', () => {
});
it('[C291907] Should be able to see No tasks found when typing an invalid task id', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().setId('invalidId');
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getId()).toEqual('invalidId');
@@ -153,9 +144,6 @@ describe('Edit task filters and task list properties', () => {
});
it('[C297476] Filter by taskName', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().setTaskName(createdTask.entry.name);
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getTaskName()).toEqual(createdTask.entry.name);
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(createdTask.entry.name);
@@ -165,9 +153,6 @@ describe('Edit task filters and task list properties', () => {
});
it('[C297613] Should be able to see No tasks found when typing a task name that does not exist', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().setTaskName('invalidName');
await expect(await tasksCloudDemoPage.editTaskFilterCloudComponent().getTaskName()).toEqual('invalidName');
@@ -175,30 +160,23 @@ describe('Edit task filters and task list properties', () => {
});
it('[C297480] Should be able to see only tasks that are part of a specific process when processInstanceId is set', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().setProcessInstanceId(processInstance.entry.id);
await tasksCloudDemoPage.editTaskFilterCloudComponent().setStatusFilterDropDown('ALL');
await tasksCloudDemoPage.editTaskFilterCloudComponent().clearAssignee();
await expect(await tasksCloudDemoPage.taskListCloudComponent().getDataTable().getNumberOfRows()).toBe(1);
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByProcessInstanceId(processInstance.entry.id);
});
it('[C297684] Should be able to see No tasks found when typing an invalid processInstanceId', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().setProcessInstanceId('invalidTaskId');
await expect(await tasksCloudDemoPage.taskListCloudComponent().getNoTasksFoundMessage()).toEqual(noTasksFoundMessage);
});
it('[C297478] Should be able to see only tasks that are assigned to a specific user when assignee is set', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().setAssignee('admin.adf');
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(createdTask.entry.name);
@@ -206,18 +184,12 @@ describe('Edit task filters and task list properties', () => {
});
it('[C297686] Should be able to see No tasks found when typing an invalid user to assignee field', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().setAssignee('invalid');
await expect(await tasksCloudDemoPage.taskListCloudComponent().getNoTasksFoundMessage()).toEqual(noTasksFoundMessage);
});
it('[C297482] Should be able to see only tasks with specific priority when priority is set', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().setPriority(priority);
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(priorityTask.entry.name);
@@ -225,17 +197,12 @@ describe('Edit task filters and task list properties', () => {
});
it('[C297687] Should be able to see No tasks found when typing unused value for priority field', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().setPriority('87650');
await expect(await tasksCloudDemoPage.taskListCloudComponent().getNoTasksFoundMessage()).toEqual(noTasksFoundMessage);
});
it('[C297481] Should be able to see only tasks with specific parentTaskId when parentTaskId is set', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().setParentTaskId(subTask.entry.parentTaskId);
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(subTask.entry.name);
@@ -243,9 +210,6 @@ describe('Edit task filters and task list properties', () => {
});
it('[C297486] Filter by Owner', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().setStatusFilterDropDown('ALL');
await tasksCloudDemoPage.editTaskFilterCloudComponent().clearAssignee();
await tasksCloudDemoPage.editTaskFilterCloudComponent().setOwner(testUser.username);
@@ -259,9 +223,6 @@ describe('Edit task filters and task list properties', () => {
});
it('[C297484] Task is displayed when typing into lastModifiedFrom field a date before the task CreatedDate', async() => {
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().setLastModifiedFrom(beforeDate);
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(createdTask.entry.name);
@@ -270,17 +231,11 @@ describe('Edit task filters and task list properties', () => {
});
it('[C297689] Task is not displayed when typing into lastModifiedFrom field the same date as tasks CreatedDate', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().setLastModifiedFrom(currentDate);
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(createdTask.entry.name);
});
it('[C297485] Task is displayed when typing into lastModifiedTo field a date after the task CreatedDate', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().setLastModifiedFrom(afterDate);
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsDisplayedByName(createdTask.entry.name);
@@ -289,19 +244,12 @@ describe('Edit task filters and task list properties', () => {
});
it('[C297690] Task is not displayed when typing into lastModifiedTo field the same date as tasks CreatedDate', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().setLastModifiedTo(currentDate);
await tasksCloudDemoPage.taskListCloudComponent().checkContentIsNotDisplayedByName(createdTask.entry.name);
});
it('[C297691] Task is not displayed when typing into lastModifiedFrom field a date before the task due date ' +
'and into lastModifiedTo a date before task due date', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().setLastModifiedFrom(beforeDate);
await tasksCloudDemoPage.editTaskFilterCloudComponent().setLastModifiedTo(beforeDate);
await tasksCloudDemoPage.editTaskFilterCloudComponent().setTaskName(createdTask.entry.name);
@@ -310,10 +258,6 @@ describe('Edit task filters and task list properties', () => {
it('[C297692] Task is displayed when typing into lastModifiedFrom field a date before the tasks due date ' +
'and into lastModifiedTo a date after', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().setLastModifiedFrom(beforeDate);
await tasksCloudDemoPage.editTaskFilterCloudComponent().setLastModifiedTo(afterDate);
await tasksCloudDemoPage.editTaskFilterCloudComponent().setTaskName(createdTask.entry.name);
@@ -322,10 +266,6 @@ describe('Edit task filters and task list properties', () => {
it('[C297693] Task is not displayed when typing into lastModifiedFrom field a date after the tasks due date ' +
'and into lastModifiedTo a date after', async () => {
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await expect(await tasksCloudDemoPage.taskFilterCloudComponent.getActiveFilterName()).toBe('My Tasks');
await tasksCloudDemoPage.editTaskFilterCloudComponent().setLastModifiedFrom(afterDate);
await tasksCloudDemoPage.editTaskFilterCloudComponent().setLastModifiedTo(afterDate);
await expect(await tasksCloudDemoPage.taskListCloudComponent().getNoTasksFoundMessage()).toEqual(noTasksFoundMessage);

View File

@@ -73,7 +73,7 @@ describe('Task list cloud - selection', () => {
await navigationBarPage.navigateToProcessServicesCloudPage();
await appListCloudComponent.checkApsContainer();
await appListCloudComponent.goToApp(simpleApp);
await tasksCloudDemoPage.taskFilterCloudComponent.checkMyTasksFilterIsDisplayed();
await tasksCloudDemoPage.taskFilterCloudComponent.checkTaskFilterIsDisplayed('my-tasks');
await tasksCloudDemoPage.clickSettingsButton();
await tasksCloudDemoPage.disableDisplayTaskDetails();
await tasksCloudDemoPage.clickAppButton();

View File

@@ -45,7 +45,8 @@ describe('Info Drawer', () => {
const date = {
form: '12/08/2017',
header: 'Aug 12, 2017'
header: 'Aug 12, 2017',
dateFormat: 'll'
};
const taskDetails = {
@@ -65,19 +66,19 @@ describe('Info Drawer', () => {
beforeAll(async () => {
const users = new UsersActions();
this.alfrescoJsApi = new AlfrescoApi({
this.alfrescoApi = new AlfrescoApi({
provider: 'BPM',
hostBpm: browser.params.testConfig.adf_aps.host
});
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
newTenant = await this.alfrescoJsApi.activiti.adminTenantsApi.createTenant(new Tenant());
const assigneeUserModel = await users.createApsUser(this.alfrescoJsApi, newTenant.id);
await this.alfrescoApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
newTenant = await this.alfrescoApi.activiti.adminTenantsApi.createTenant(new Tenant());
const assigneeUserModel = await users.createApsUser(this.alfrescoApi, newTenant.id);
assigneeUserModelFullName = assigneeUserModel.firstName + ' ' + assigneeUserModel.lastName;
const processUserModel = await users.createApsUser(this.alfrescoJsApi, newTenant.id);
const processUserModel = await users.createApsUser(this.alfrescoApi, newTenant.id);
processUserModelFullName = processUserModel.firstName + ' ' + processUserModel.lastName;
await this.alfrescoJsApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(this.alfrescoJsApi);
await this.alfrescoApi.login(processUserModel.email, processUserModel.password);
const applicationsService = new ApplicationsUtil(this.alfrescoApi);
appCreated = await applicationsService.importPublishDeployApp(app.file_path);
await loginPage.loginToProcessServicesUsingUserModel(processUserModel);
@@ -85,8 +86,8 @@ describe('Info Drawer', () => {
afterAll(async () => {
await this.alfrescoApi.activiti.modelsApi.deleteModel(appCreated.id);
await this.alfrescoJsApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoJsApi.activiti.adminTenantsApi.deleteTenant(newTenant.id);
await this.alfrescoApi.login(browser.params.testConfig.adf.adminEmail, browser.params.testConfig.adf.adminPassword);
await this.alfrescoApi.activiti.adminTenantsApi.deleteTenant(newTenant.id);
});
beforeEach(async () => {
@@ -96,7 +97,7 @@ describe('Info Drawer', () => {
it('[C260319] New Task - displayed details', async () => {
const name = StringUtil.generateRandomString(5);
await taskPage.createTask({...taskDetails, formName: app.formName, name});
await taskPage.createTask({ ...taskDetails, formName: app.formName, name });
await taskPage.tasksListPage().checkTaskListIsLoaded();
await taskPage.tasksListPage().getDataTable().waitForTableBody();
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.INV_TASKS);
@@ -122,7 +123,7 @@ describe('Info Drawer', () => {
it('[C260323] Priority - Editing field', async () => {
const name = StringUtil.generateRandomString(5);
await taskPage.createTask({...taskDetails, formName: app.formName, name});
await taskPage.createTask({ ...taskDetails, formName: app.formName, name });
await taskPage.tasksListPage().checkTaskListIsLoaded();
await taskPage.tasksListPage().getDataTable().waitForTableBody();
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.INV_TASKS);
@@ -141,7 +142,7 @@ describe('Info Drawer', () => {
it('[C260325] Due Date - Changing', async () => {
const name = StringUtil.generateRandomString(5);
await taskPage.createTask({...taskDetails, formName: app.formName, name});
await taskPage.createTask({ ...taskDetails, formName: app.formName, name });
await taskPage.tasksListPage().checkTaskListIsLoaded();
await taskPage.tasksListPage().getDataTable().waitForTableBody();
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.INV_TASKS);
@@ -184,7 +185,7 @@ describe('Info Drawer', () => {
it('[C260329] Task with no form', async () => {
const name = StringUtil.generateRandomString(5);
await taskPage.createTask(<any> {...taskDetails, formName: '', name});
await taskPage.createTask(<any> { ...taskDetails, formName: '', name });
await taskPage.tasksListPage().checkTaskListIsLoaded();
await taskPage.tasksListPage().getDataTable().waitForTableBody();
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.INV_TASKS);
@@ -202,7 +203,7 @@ describe('Info Drawer', () => {
it('[C260320] Assign user to the task', async () => {
const name = StringUtil.generateRandomString(5);
await taskPage.createTask(<any> {...taskDetails, formName: app.formName, name});
await taskPage.createTask(<any> { ...taskDetails, formName: app.formName, name });
await taskPage.tasksListPage().checkTaskListIsLoaded();
await taskPage.tasksListPage().getDataTable().waitForTableBody();
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
@@ -218,7 +219,7 @@ describe('Info Drawer', () => {
});
await expect(await taskPage.taskDetails().isAssigneeClickable()).toBeTruthy();
await BrowserActions.click(taskPage.taskDetails().assigneeField);
await BrowserActions.click(taskPage.taskDetails().assigneeButton);
const cancelSearch = element(by.css('button[id="close-people-search"]'));
await BrowserVisibility.waitUntilElementIsPresent(cancelSearch);
await BrowserActions.click(cancelSearch);
@@ -231,7 +232,7 @@ describe('Info Drawer', () => {
});
await expect(await taskPage.taskDetails().isAssigneeClickable()).toBeTruthy();
await BrowserActions.click(taskPage.taskDetails().assigneeField);
await BrowserActions.click(taskPage.taskDetails().assigneeButton);
const addPeople = element(by.css('button[id="add-people"]'));
await BrowserVisibility.waitUntilElementIsPresent(addPeople);
await BrowserActions.click(addPeople);
@@ -289,7 +290,7 @@ describe('Info Drawer', () => {
it('[C260328] Description - Editing field', async () => {
const name = StringUtil.generateRandomString(5);
await taskPage.createTask({...taskDetails, formName: app.formName, name});
await taskPage.createTask({ ...taskDetails, formName: app.formName, name });
await taskPage.tasksListPage().checkTaskListIsLoaded();
await taskPage.tasksListPage().getDataTable().waitForTableBody();
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.INV_TASKS);
@@ -305,10 +306,10 @@ describe('Info Drawer', () => {
formName: app.formName
});
await taskPage.taskDetails().updateDescription('');
await expect(await taskPage.taskDetails().getDescriptionPlaceholder()).toEqual('No description');
await taskPage.taskDetails().updateDescription('Good Bye');
await expect(await taskPage.taskDetails().getDescription()).toEqual('Good Bye');
await taskPage.taskDetails().updateDescription();
await expect(await taskPage.taskDetails().getDescription()).toEqual('No description');
await taskPage.taskDetails().clickCompleteFormTask();
});
@@ -317,7 +318,7 @@ describe('Info Drawer', () => {
await LocalStorageUtil.setConfigField('adf-task-header', JSON.stringify(infoDrawerConfiguration));
const name = StringUtil.generateRandomString(5);
await taskPage.createTask({...taskDetails, formName: app.formName, name});
await taskPage.createTask({ ...taskDetails, formName: app.formName, name });
await taskPage.tasksListPage().checkTaskListIsLoaded();
await taskPage.tasksListPage().getDataTable().waitForTableBody();
await taskPage.filtersPage().goToFilter(CONSTANTS.TASK_FILTERS.MY_TASKS);
@@ -330,12 +331,11 @@ describe('Info Drawer', () => {
await expect(await taskPage.taskDetails().getPriority()).toEqual(taskDetails.priority);
await expect(await taskPage.taskDetails().getParentName()).toEqual(taskDetails.parentName);
await taskPage.taskDetails().checkDueDatePickerButtonIsNotDisplayed();
await taskPage.taskDetails().checkEditDescriptionButtonIsNotDisplayed();
await taskPage.taskDetails().clickCompleteFormTask();
});
async function shouldHaveInfoDrawerDetails({description, status, priority, category, parentName, dateFormat, formName, fullName, dueDate}) {
async function shouldHaveInfoDrawerDetails({ description, status, priority, category, parentName, dateFormat, formName, fullName, dueDate }) {
await expect(await taskPage.taskDetails().getAssignee()).toEqual(fullName);
await expect(await taskPage.taskDetails().getDescription()).toEqual(description);
await expect(await taskPage.taskDetails().getStatus()).toEqual(status);

View File

@@ -323,8 +323,6 @@ describe('Task Details component', () => {
await taskPage.taskDetails().checkEditableAssigneeIsNotDisplayed();
await taskPage.taskDetails().checkEditableFormIsNotDisplayed();
await taskPage.taskDetails().checkEditDescriptionButtonIsNotDisplayed();
await taskPage.taskDetails().checkEditPriorityButtonIsNotDisplayed();
await taskPage.taskDetails().checkDueDatePickerButtonIsNotDisplayed();
});
});

View File

@@ -74,7 +74,8 @@ describe('People and Group widget', () => {
await widget.groupWidget().insertGroup(groupVisibilityForm.FIELD.widget_id, groupVisibilityForm.searchTerm);
await widget.groupWidget().checkDropDownListIsDisplayed();
await expect(await widget.groupWidget().getDropDownList()).toEqual([ 'Heros', 'Users' ]);
const suggestions = await widget.groupWidget().getDropDownList();
await expect(suggestions.sort()).toEqual([ 'Heros', 'Users' ]);
await widget.groupWidget().selectGroupFromDropDown('Users');
await taskPage.taskDetails().clickCompleteFormTask();
});