Test improve 2 (#6167)

* more debug log

* fix

* next chrome

* fix favorite

* fix

* Fix spelling

* fix

Co-authored-by: Adina Parpalita <adina.parpalita@ness.com>
This commit is contained in:
Eugenio Romano 2020-09-28 00:05:07 +01:00 committed by GitHub
parent c40614f211
commit 7fb42d79c0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 124 additions and 41 deletions

View File

@ -18,7 +18,7 @@ env:
- REDIRECT_URI=/ - REDIRECT_URI=/
- REDIRECT_URI_LOGOUT=/logout/ - REDIRECT_URI_LOGOUT=/logout/
- BROWSER_RUN=true - BROWSER_RUN=true
- MAXINSTANCES=2 - MAXINSTANCES=3
branches: branches:
only: only:

View File

@ -113,8 +113,11 @@ describe('Edit folder directive', () => {
await contentServicesPage.getDocumentList().dataTablePage().checkContentIsDisplayed('Display name', editFolder.entry.name); await contentServicesPage.getDocumentList().dataTablePage().checkContentIsDisplayed('Display name', editFolder.entry.name);
await contentServicesPage.getDocumentList().dataTablePage().selectRow('Display name', editFolder.entry.name); await contentServicesPage.getDocumentList().dataTablePage().selectRow('Display name', editFolder.entry.name);
await contentServicesPage.getDocumentList().dataTablePage().checkRowIsSelected('Display name', editFolder.entry.name); await contentServicesPage.getDocumentList().dataTablePage().checkRowIsSelected('Display name', editFolder.entry.name);
await expect(await contentServicesPage.isEditFolderButtonEnabled()).toBe(true); await expect(await contentServicesPage.isEditFolderButtonEnabled()).toBe(true);
await contentServicesPage.clickOnEditFolder(); await contentServicesPage.clickOnEditFolder();
await editFolderDialog.checkFolderDialogIsDisplayed(); await editFolderDialog.checkFolderDialogIsDisplayed();
await editFolderDialog.checkCreateUpdateBtnIsEnabled(); await editFolderDialog.checkCreateUpdateBtnIsEnabled();
await editFolderDialog.addFolderName(editFolder.entry.name + 'a'); await editFolderDialog.addFolderName(editFolder.entry.name + 'a');

View File

@ -64,9 +64,11 @@ describe('Favorite directive', () => {
testFolder4 = await uploadActions.createFolder(StringUtil.generateRandomString(5), '-my-'); testFolder4 = await uploadActions.createFolder(StringUtil.generateRandomString(5), '-my-');
testFile = await uploadActions.uploadFile(pdfFile.location, pdfFile.name, '-my-'); testFile = await uploadActions.uploadFile(pdfFile.location, pdfFile.name, '-my-');
await browser.sleep(browser.params.testConfig.timeouts.index_search);
await loginPage.login(acsUser.email, acsUser.password); await loginPage.login(acsUser.email, acsUser.password);
await contentServicesPage.goToDocumentList(); await contentServicesPage.goToDocumentList();
}); });
afterAll(async () => { afterAll(async () => {
await navigationBarPage.clickLogoutButton(); await navigationBarPage.clickLogoutButton();
@ -75,12 +77,12 @@ describe('Favorite directive', () => {
await uploadActions.deleteFileOrFolder(testFolder2.entry.id); await uploadActions.deleteFileOrFolder(testFolder2.entry.id);
await uploadActions.deleteFileOrFolder(testFolder3.entry.id); await uploadActions.deleteFileOrFolder(testFolder3.entry.id);
await uploadActions.deleteFileOrFolder(testFolder4.entry.id); await uploadActions.deleteFileOrFolder(testFolder4.entry.id);
}); });
beforeEach(async () => { beforeEach(async () => {
await navigationBarPage.clickContentServicesButton(); await navigationBarPage.clickContentServicesButton();
await contentServicesPage.getDocumentList().dataTablePage().waitTillContentLoaded(); await contentServicesPage.getDocumentList().dataTablePage().waitTillContentLoaded();
}); });
it('[C260247] Should be able to mark a file as favorite', async () => { it('[C260247] Should be able to mark a file as favorite', async () => {
await contentServicesPage.getDocumentList().dataTablePage().checkContentIsDisplayed('Display name', testFile.entry.name); await contentServicesPage.getDocumentList().dataTablePage().checkContentIsDisplayed('Display name', testFile.entry.name);
@ -168,10 +170,12 @@ describe('Favorite directive', () => {
await contentServicesPage.getDocumentList().rightClickOnRow(testFile.entry.name); await contentServicesPage.getDocumentList().rightClickOnRow(testFile.entry.name);
await contentServicesPage.pressContextMenuActionNamed('Move'); await contentServicesPage.pressContextMenuActionNamed('Move');
await contentNodeSelector.checkDialogIsDisplayed(); await contentNodeSelector.checkDialogIsDisplayed();
await contentNodeSelector.typeIntoNodeSelectorSearchField(testFolder1.entry.name); await contentNodeSelector.typeIntoNodeSelectorSearchField(testFolder1.entry.name);
await contentNodeSelector.clickContentNodeSelectorResult(testFolder1.entry.name); await contentNodeSelector.clickContentNodeSelectorResult(testFolder1.entry.name);
await contentNodeSelector.clickMoveCopyButton(); await contentNodeSelector.clickMoveCopyButton();
await contentServicesPage.checkContentIsNotDisplayed(testFile.entry.name); await contentServicesPage.checkContentIsNotDisplayed(testFile.entry.name);
await contentServicesPage.openFolder(testFolder1.entry.name); await contentServicesPage.openFolder(testFolder1.entry.name);
await contentServicesPage.checkContentIsDisplayed(testFile.entry.name); await contentServicesPage.checkContentIsDisplayed(testFile.entry.name);
@ -217,5 +221,5 @@ describe('Favorite directive', () => {
await contentServicesPage.getDocumentList().dataTablePage().checkRowIsSelected('Display name', testFolder3.entry.name); await contentServicesPage.getDocumentList().dataTablePage().checkRowIsSelected('Display name', testFolder3.entry.name);
await expect(await contentServicesPage.getDocumentList().dataTablePage().getNumberOfSelectedRows()).toBe(1); await expect(await contentServicesPage.getDocumentList().dataTablePage().getNumberOfSelectedRows()).toBe(1);
await contentServicesPage.checkIsMarkedFavorite(); await contentServicesPage.checkIsMarkedFavorite();
}); });
}); });

View File

@ -23,7 +23,7 @@ import {
LoginPage, LoginPage,
UploadActions, UploadActions,
UserModel, UserModel,
UsersActions UsersActions, ViewerPage
} from '@alfresco/adf-testing'; } from '@alfresco/adf-testing';
import { ContentServicesPage } from '../../core/pages/content-services.page'; import { ContentServicesPage } from '../../core/pages/content-services.page';
import { VersionManagePage } from '../../core/pages/version-manager.page'; import { VersionManagePage } from '../../core/pages/version-manager.page';
@ -36,6 +36,7 @@ describe('Version Properties', () => {
const contentServicesPage = new ContentServicesPage(); const contentServicesPage = new ContentServicesPage();
const versionManagePage = new VersionManagePage(); const versionManagePage = new VersionManagePage();
const navigationBarPage = new NavigationBarPage(); const navigationBarPage = new NavigationBarPage();
const viewerPage = new ViewerPage();
const apiService = new ApiService(); const apiService = new ApiService();
const usersActions = new UsersActions(apiService); const usersActions = new UsersActions(apiService);
@ -71,14 +72,33 @@ describe('Version Properties', () => {
await navigationBarPage.clickContentServicesButton(); await navigationBarPage.clickContentServicesButton();
await contentServicesPage.waitForTableBody(); await contentServicesPage.waitForTableBody();
});
beforeEach(async () => {
await contentServicesPage.versionManagerContent(txtFileModel.name); await contentServicesPage.versionManagerContent(txtFileModel.name);
}); });
it('[C277277] Should show/hide actions menu when readOnly is true/false', async () => {
await versionManagePage.disableReadOnly();
await BrowserVisibility.waitUntilElementIsVisible(element(by.css(`[id="adf-version-list-action-menu-button-1.0"]`)));
await versionManagePage.enableReadOnly();
await BrowserVisibility.waitUntilElementIsNotVisible(element(by.css(`[id="adf-version-list-action-menu-button-1.0"]`)));
});
it('[C279994] Should show/hide upload new version button when readOnly is true/false', async () => {
await versionManagePage.disableReadOnly();
await BrowserVisibility.waitUntilElementIsVisible(versionManagePage.showNewVersionButton);
await versionManagePage.enableReadOnly();
await BrowserVisibility.waitUntilElementIsNotVisible(versionManagePage.showNewVersionButton);
await BrowserVisibility.waitUntilElementIsNotVisible(versionManagePage.uploadNewVersionButton);
});
it('[C272817] Should NOT be present the download action when allowDownload property is false', async () => { it('[C272817] Should NOT be present the download action when allowDownload property is false', async () => {
await versionManagePage.disableDownload(); await versionManagePage.disableDownload();
await versionManagePage.clickActionButton('1.0'); await versionManagePage.clickActionButton('1.0');
await BrowserVisibility.waitUntilElementIsNotVisible(element(by.css(`[id="adf-version-list-action-download-1.0"]`))); await BrowserVisibility.waitUntilElementIsNotVisible(element(by.css(`[id="adf-version-list-action-download-1.0"]`)));
await versionManagePage.closeDisabledActionsMenu(); await versionManagePage.closeDisabledActionsMenu();
await viewerPage.clickCloseButton();
}); });
it('[C279992] Should be present the download action when allowDownload property is true', async () => { it('[C279992] Should be present the download action when allowDownload property is true', async () => {
@ -98,18 +118,4 @@ describe('Version Properties', () => {
await BrowserVisibility.waitUntilElementIsNotVisible(element(by.css(`[id="adf-version-list-item-comment-1.1"]`))); await BrowserVisibility.waitUntilElementIsNotVisible(element(by.css(`[id="adf-version-list-item-comment-1.1"]`)));
}); });
it('[C277277] Should show/hide actions menu when readOnly is true/false', async () => {
await versionManagePage.disableReadOnly();
await BrowserVisibility.waitUntilElementIsVisible(element(by.css(`[id="adf-version-list-action-menu-button-1.0"]`)));
await versionManagePage.enableReadOnly();
await BrowserVisibility.waitUntilElementIsNotVisible(element(by.css(`[id="adf-version-list-action-menu-button-1.0"]`)));
});
it('[C279994] Should show/hide upload new version button when readOnly is true/false', async () => {
await versionManagePage.disableReadOnly();
await BrowserVisibility.waitUntilElementIsVisible(versionManagePage.showNewVersionButton);
await versionManagePage.enableReadOnly();
await BrowserVisibility.waitUntilElementIsNotVisible(versionManagePage.showNewVersionButton);
await BrowserVisibility.waitUntilElementIsNotVisible(versionManagePage.uploadNewVersionButton);
});
}); });

View File

@ -180,12 +180,13 @@ export class NavigationBarPage {
async clickLogoutButton(): Promise<void> { async clickLogoutButton(): Promise<void> {
Logger.log('Logout'); Logger.log('Logout');
await BrowserActions.closeMenuAndDialogs();
await BrowserActions.clickExecuteScript('.app-sidenav-link[adf-logout]');
try { try {
await BrowserActions.closeMenuAndDialogs();
await BrowserActions.clickExecuteScript('.app-sidenav-link[adf-logout]');
await BrowserVisibility.waitUntilElementIsVisible(this.logoutSection); await BrowserVisibility.waitUntilElementIsVisible(this.logoutSection);
} catch (error) { } catch (error) {
Logger.log('Logout section NOT found');
} }
} }

View File

@ -1,6 +1,12 @@
let fallback = require('connect-history-api-fallback'); let fallback = require('connect-history-api-fallback');
module.exports = { module.exports = {
injectChanges: false, // workaround for Angular 2 styleUrls loading
files: ['./**/*.{html,htm,css,js}'],
watchOptions: {
ignoreInitial: true,
ignored: '*'
},
ghostMode : false, ghostMode : false,
'port': 4200, 'port': 4200,
open: false, open: false,

View File

@ -118,7 +118,7 @@ describe('Start Task - Custom App', () => {
})); }));
await loginPage.login(processUserModel.email, processUserModel.password); await loginPage.login(processUserModel.email, processUserModel.password);
}); });
describe('', () => { describe('', () => {
beforeEach(async () => { beforeEach(async () => {
@ -448,9 +448,10 @@ describe('Start Task - Custom App', () => {
await taskListSinglePage.taskList().checkContentIsNotDisplayed(completedTasks[0].name); await taskListSinglePage.taskList().checkContentIsNotDisplayed(completedTasks[0].name);
await taskListSinglePage.taskList().checkContentIsNotDisplayed(completedTasks[1].name); await taskListSinglePage.taskList().checkContentIsNotDisplayed(completedTasks[1].name);
await taskListSinglePage.taskList().checkContentIsNotDisplayed(completedTasks[2].name); await taskListSinglePage.taskList().checkContentIsNotDisplayed(completedTasks[2].name);
await taskListSinglePage.taskList().getAllRowsNameColumn().then(async (list) => {
await expect(ArrayUtil.arrayContainsArray(list, allTasksName)).toEqual(true); const list = await taskListSinglePage.taskList().getAllRowsNameColumn();
});
await expect(ArrayUtil.arrayContainsArray(list, allTasksName)).toEqual(true);
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(20); await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(20);
}); });
@ -461,9 +462,10 @@ describe('Start Task - Custom App', () => {
await taskListSinglePage.taskList().checkContentIsDisplayed(completedTasks[0].name); await taskListSinglePage.taskList().checkContentIsDisplayed(completedTasks[0].name);
await taskListSinglePage.taskList().checkContentIsDisplayed(completedTasks[1].name); await taskListSinglePage.taskList().checkContentIsDisplayed(completedTasks[1].name);
await taskListSinglePage.taskList().checkContentIsDisplayed(completedTasks[2].name); await taskListSinglePage.taskList().checkContentIsDisplayed(completedTasks[2].name);
await taskListSinglePage.taskList().getAllRowsNameColumn().then(async (list) => {
await expect(ArrayUtil.arrayContainsArray(list, allTasksName)).toEqual(true); const list = await taskListSinglePage.taskList().getAllRowsNameColumn();
}); await expect(ArrayUtil.arrayContainsArray(list, allTasksName)).toEqual(true);
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(23); await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(23);
}); });
}); });
@ -476,11 +478,10 @@ describe('Start Task - Custom App', () => {
await taskListSinglePage.clickResetButton(); await taskListSinglePage.clickResetButton();
await taskListSinglePage.typeProcessDefinitionId(processDefinitionId.processDefinitionId); await taskListSinglePage.typeProcessDefinitionId(processDefinitionId.processDefinitionId);
await taskListSinglePage.taskList().getDataTable().waitTillContentLoaded();
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(4); await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(4);
await taskListSinglePage.getAllProcessDefinitionIds().then(async (list) => {
await expect(ArrayUtil.arrayContainsArray(list, processDefinitionIds)).toEqual(true); const list = await taskListSinglePage.getAllProcessDefinitionIds();
}); await expect(ArrayUtil.arrayContainsArray(list, processDefinitionIds)).toEqual(true);
}); });
it('[C286623] Should be able to see No tasks found when typing an invalid processDefinitionId', async () => { it('[C286623] Should be able to see No tasks found when typing an invalid processDefinitionId', async () => {
@ -503,9 +504,8 @@ describe('Start Task - Custom App', () => {
await expect(await taskListSinglePage.getProcessInstanceId()).toEqual(processDefinitionId.id); await expect(await taskListSinglePage.getProcessInstanceId()).toEqual(processDefinitionId.id);
await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(1); await expect(await taskListSinglePage.taskList().getDataTable().numberOfRows()).toBe(1);
await taskListSinglePage.getAllProcessInstanceIds().then(async (list) => { const list = await taskListSinglePage.getAllProcessInstanceIds();
await expect(ArrayUtil.arrayContainsArray(list, processInstanceIds)).toEqual(true); await expect(ArrayUtil.arrayContainsArray(list, processInstanceIds)).toEqual(true);
});
}); });
it('[C286623] Should be able to see No tasks found when typing an invalid processInstanceId', async () => { it('[C286623] Should be able to see No tasks found when typing an invalid processInstanceId', async () => {

View File

@ -83,6 +83,7 @@ export class TaskListDemoPage {
async typeProcessDefinitionId(input: string): Promise<void> { async typeProcessDefinitionId(input: string): Promise<void> {
await BrowserActions.clearSendKeys(this.processDefinitionId, input); await BrowserActions.clearSendKeys(this.processDefinitionId, input);
await this.taskList().getDataTable().waitTillContentLoaded();
} }
async getProcessDefinitionId(): Promise<string> { async getProcessDefinitionId(): Promise<string> {

View File

@ -188,6 +188,9 @@ exports.config = {
htmlOnExpect: 'none', htmlOnExpect: 'none',
htmlOnSpec: 'none', htmlOnSpec: 'none',
clearFoldersBeforeTest: false clearFoldersBeforeTest: false
}, {
package: 'protractor-console',
logLevels: ['debug']
}], }],
onCleanUp(results) { onCleanUp(results) {

View File

@ -46,7 +46,7 @@ export class NodePermissionService {
const siteName = siteNodeList.list.entries[0].entry.name; const siteName = siteNodeList.list.entries[0].entry.name;
return this.getGroupMembersBySiteName(siteName); return this.getGroupMembersBySiteName(siteName);
} else { } else {
return of(node.permissions.settable); return of(node.permissions?.settable);
} }
}) })
); );

58
package-lock.json generated
View File

@ -19381,6 +19381,64 @@
} }
} }
}, },
"protractor-console": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/protractor-console/-/protractor-console-3.0.0.tgz",
"integrity": "sha512-2BTh751CMjEAMxuZXb86jvs0TDWjvCk7fCnKTyb5vX/KE5f+olTeVCmcFm+4Aretpc6q/6yryuSJ8wjgL9QTKw==",
"dev": true,
"requires": {
"chalk": "^1.1.0",
"lodash": "^3.10.0"
},
"dependencies": {
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
"dev": true
},
"ansi-styles": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
"dev": true
},
"chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
"ansi-styles": "^2.2.1",
"escape-string-regexp": "^1.0.2",
"has-ansi": "^2.0.0",
"strip-ansi": "^3.0.0",
"supports-color": "^2.0.0"
}
},
"lodash": {
"version": "3.10.1",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
"integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
"dev": true
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
"ansi-regex": "^2.0.0"
}
},
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
"dev": true
}
}
},
"protractor-retry": { "protractor-retry": {
"version": "1.2.13", "version": "1.2.13",
"resolved": "https://registry.npmjs.org/protractor-retry/-/protractor-retry-1.2.13.tgz", "resolved": "https://registry.npmjs.org/protractor-retry/-/protractor-retry-1.2.13.tgz",

View File

@ -146,7 +146,7 @@
"karma-mocha-reporter": "2.2.5", "karma-mocha-reporter": "2.2.5",
"license-checker": "^25.0.1", "license-checker": "^25.0.1",
"lint-staged": "^10.2.11", "lint-staged": "^10.2.11",
"lite-server": "^2.4.0", "lite-server": "^2.5.4",
"markdownlint-cli": "^0.23.2", "markdownlint-cli": "^0.23.2",
"mdast": "^3.0.0", "mdast": "^3.0.0",
"mdast-util-compact": "^2.0.1", "mdast-util-compact": "^2.0.1",
@ -158,9 +158,10 @@
"ng-packagr": "^10.1.0", "ng-packagr": "^10.1.0",
"optimize-css-assets-webpack-plugin": "^5.0.4", "optimize-css-assets-webpack-plugin": "^5.0.4",
"protractor": "^7.0.0", "protractor": "^7.0.0",
"protractor-console": "^3.0.0",
"protractor-retry": "^1.2.9", "protractor-retry": "^1.2.9",
"protractor-smartrunner": "^0.1.1",
"protractor-screenshoter-plugin": "0.10.3", "protractor-screenshoter-plugin": "0.10.3",
"protractor-smartrunner": "^0.1.1",
"remark": "^12.0.1", "remark": "^12.0.1",
"remark-frontmatter": "^2.0.0", "remark-frontmatter": "^2.0.0",
"rimraf": "^3.0.2", "rimraf": "^3.0.2",