[ADF-3755] Add e2e test for app list (#3987)

* add e2e test for app list

* add --host_sso "$E2E_HOST_SSO" to travis.yml -> STAGE=process-services-cloud

* update travis.yml file

* update review

* fix import
This commit is contained in:
rgherghelas 2018-11-21 18:51:17 +02:00 committed by Eugenio Romano
parent a5bf0d27e4
commit a39e44e4a9
4 changed files with 102 additions and 1 deletions

View File

@ -154,7 +154,7 @@ jobs:
AFFECTED_LIBS="$(./scripts/affected-libs.sh -b $TRAVIS_BRANCH)"; AFFECTED_LIBS="$(./scripts/affected-libs.sh -b $TRAVIS_BRANCH)";
if [[ $AFFECTED_LIBS =~ "process-services-cloud$" || $AFFECTED_E2E = "e2e" ]]; if [[ $AFFECTED_LIBS =~ "process-services-cloud$" || $AFFECTED_E2E = "e2e" ]];
then then
(./scripts/test-e2e-lib.sh -host localhost:4200 -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e $E2E_EMAIL -b -save --folder process-services-cloud --skip-lint --use-dist --timeout 7000 || exit 1;); (./scripts/test-e2e-lib.sh -host localhost:4200 --host_sso "$E2E_HOST_SSO" -proxy "$E2E_HOST" -u "$E2E_USERNAME" -p "$E2E_PASSWORD" -e $E2E_EMAIL -b -save --folder process-services-cloud --skip-lint --use-dist --timeout 7000 || exit 1;);
fi fi
- stage: e2e Test # Test insights - stage: e2e Test # Test insights
name: insights name: insights

View File

@ -26,6 +26,7 @@ export class NavigationBarPage {
taskListButton = element(by.css("a[data-automation-id='Task List']")); taskListButton = element(by.css("a[data-automation-id='Task List']"));
configEditorButton = element(by.css('a[data-automation-id="Configuration Editor"]')); configEditorButton = element(by.css('a[data-automation-id="Configuration Editor"]'));
processServicesButton = element(by.css('a[data-automation-id="Process Services"]')); processServicesButton = element(by.css('a[data-automation-id="Process Services"]'));
processCloudButton = element(by.css('a[data-automation-id="Process Cloud"]'));
loginButton = element(by.css('a[data-automation-id="Login"]')); loginButton = element(by.css('a[data-automation-id="Login"]'));
trashcanButton = element(by.css('a[data-automation-id="Trashcan"]')); trashcanButton = element(by.css('a[data-automation-id="Trashcan"]'));
userProfileButton = element(by.css('button[data-automation-id="adf-user-profile"]')); userProfileButton = element(by.css('button[data-automation-id="adf-user-profile"]'));
@ -49,6 +50,12 @@ export class NavigationBarPage {
this.taskListButton.click(); this.taskListButton.click();
} }
clickProcessCloudButton() {
Util.waitUntilElementIsVisible(this.processCloudButton);
this.processCloudButton.click();
}
clickConfigEditorButton() { clickConfigEditorButton() {
Util.waitUntilElementIsVisible(this.configEditorButton); Util.waitUntilElementIsVisible(this.configEditorButton);
this.configEditorButton.click(); this.configEditorButton.click();

View File

@ -0,0 +1,46 @@
/*!
* @license
* Copyright 2016 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import Util = require('../../../util/util');
import { element, by } from 'protractor';
export class AppListCloudComponent {
apsAppsContainer = element(by.css('adf-cloud-app-list'));
checkApsContainer() {
Util.waitUntilElementIsVisible(this.apsAppsContainer);
}
goToApp(applicationName) {
let app = element(by.css('mat-card[title="' + applicationName + '"]'));
Util.waitUntilElementIsVisible(app);
app.click();
}
checkAppIsNotDisplayed(applicationName) {
let app = element(by.css('mat-card[title="' + applicationName + '"]'));
return Util.waitUntilElementIsNotOnPage(app);
}
checkAppIsDisplayed(applicationName) {
let app = element(by.css('mat-card[title="' + applicationName + '"]'));
return Util.waitUntilElementIsVisible(app);
}
}

View File

@ -0,0 +1,48 @@
/*!
* @license
* Copyright 2016 Alfresco Software, Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { LoginAPSPage } from '../pages/adf/loginApsPage';
import { SettingsPage } from '../pages/adf/settingsPage';
import { AppListCloudComponent } from '../pages/adf/process_services_cloud/appListCloudComponent';
import TestConfig = require('../test.config');
import { browser } from 'protractor';
import { NavigationBarPage } from '../pages/adf/navigationBarPage';
describe('Applications list', () => {
const settingsPage = new SettingsPage();
const loginApsPage = new LoginAPSPage();
const navigationBarPage = new NavigationBarPage();
const appListCloudComponent = new AppListCloudComponent();
const path = '/auth/realms/springboot';
const appName = 'task-app';
it ('[C289910] Should the app be displayed on dashboard when is deployed on APS', async () => {
await settingsPage.setProviderBpmSso(TestConfig.adf.hostSso, TestConfig.adf.hostSso + path);
browser.ignoreSynchronization = true;
await loginApsPage.loginAPS(TestConfig.adf.adminEmail, TestConfig.adf.adminPassword);
await navigationBarPage.clickProcessCloudButton();
appListCloudComponent.checkApsContainer();
appListCloudComponent.checkAppIsDisplayed(appName);
appListCloudComponent.goToApp(appName);
});
});