diff --git a/e2e/components/data-table/data-table.ts b/e2e/components/data-table/data-table.ts index 1c6ac4e2e..43040b3d8 100644 --- a/e2e/components/data-table/data-table.ts +++ b/e2e/components/data-table/data-table.ts @@ -68,7 +68,7 @@ export class DataTable extends Component { return this.head.element(locator); } - sortByColumn(columnName: string): Promise { + sortByColumn(columnName: string): promise.Promise { const column = this.getColumnHeaderByLabel(columnName); const click = browser.actions().mouseMove(column).click(); diff --git a/e2e/components/dialog/create-edit-folder-dialog.ts b/e2e/components/dialog/create-edit-folder-dialog.ts index 11296bc76..c7caed104 100644 --- a/e2e/components/dialog/create-edit-folder-dialog.ts +++ b/e2e/components/dialog/create-edit-folder-dialog.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { ElementFinder, by, browser, protractor, ExpectedConditions as EC } from 'protractor'; +import { ElementFinder, by, browser, protractor, ExpectedConditions as EC, promise } from 'protractor'; import { BROWSER_WAIT_TIMEOUT } from '../../configs'; import { Component } from '../component'; @@ -50,15 +50,15 @@ export class CreateOrEditFolderDialog extends Component { return browser.wait(EC.stalenessOf(this.title), BROWSER_WAIT_TIMEOUT); } - getTitle(): Promise { + getTitle(): promise.Promise { return this.title.getText(); } - isValidationMessageDisplayed(): Promise { + isValidationMessageDisplayed(): promise.Promise { return this.validationMessage.isDisplayed(); } - getValidationMessage(): Promise { + getValidationMessage(): promise.Promise { return this.isValidationMessageDisplayed() .then(() => this.validationMessage.getText()) .catch(() => ''); @@ -73,7 +73,7 @@ export class CreateOrEditFolderDialog extends Component { return this; } - deleteNameWithBackspace(): Promise { + deleteNameWithBackspace(): promise.Promise { const { nameInput } = this; return nameInput.clear() diff --git a/e2e/components/header/user-info.ts b/e2e/components/header/user-info.ts index dcab9c9fb..dc13ef92d 100644 --- a/e2e/components/header/user-info.ts +++ b/e2e/components/header/user-info.ts @@ -43,11 +43,11 @@ export class UserInfo extends Component { .then(() => menu); } - get name(): Promise { + get name(): promise.Promise { return this.fullName.getText(); } - signOut(): Promise { + signOut(): promise.Promise { return this.openMenu() .then(menu => { menu.clickMenuItem('Sign out'); diff --git a/e2e/components/login/login.ts b/e2e/components/login/login.ts index d393b583f..742f08635 100644 --- a/e2e/components/login/login.ts +++ b/e2e/components/login/login.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { by, ElementFinder } from 'protractor'; +import { by, ElementFinder, promise } from 'protractor'; import { Component } from '../component'; export class LoginComponent extends Component { @@ -61,7 +61,7 @@ export class LoginComponent extends Component { return this; } - submit(): Promise { + submit(): promise.Promise { return this.submitButton.click(); } } diff --git a/e2e/components/menu/menu.ts b/e2e/components/menu/menu.ts index 4051f998e..14888204d 100644 --- a/e2e/components/menu/menu.ts +++ b/e2e/components/menu/menu.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { ElementFinder, ElementArrayFinder, by, browser, ExpectedConditions as EC } from 'protractor'; +import { ElementFinder, ElementArrayFinder, by, browser, ExpectedConditions as EC, promise } from 'protractor'; import { BROWSER_WAIT_TIMEOUT } from '../../configs'; import { Component } from '../component'; @@ -43,15 +43,15 @@ export class Menu extends Component { return this.component.element(by.cssContainingText(Menu.selectors.item, label)); } - getItemTooltip(label: string): Promise { + getItemTooltip(label: string): promise.Promise { return this.getItemByLabel(label).getAttribute('title'); } - clicktNthItem(nth: number): Promise { + clicktNthItem(nth: number): promise.Promise { return this.getNthItem(nth).click(); } - clickMenuItem(label: string): Promise { + clickMenuItem(label: string): promise.Promise { return this.getItemByLabel(label).click(); } } diff --git a/e2e/components/pagination/pagination.ts b/e2e/components/pagination/pagination.ts index 1a76878ff..196ab4a1d 100644 --- a/e2e/components/pagination/pagination.ts +++ b/e2e/components/pagination/pagination.ts @@ -49,7 +49,7 @@ export class Pagination extends Component { super(Pagination.selectors.root, ancestor); } - openMaxItemsMenu(): Promise { + openMaxItemsMenu(): promise.Promise { const { menu, maxItemsButton } = this; return maxItemsButton.click() @@ -57,7 +57,7 @@ export class Pagination extends Component { .then(() => menu); } - openCurrentPageMenu(): Promise { + openCurrentPageMenu(): promise.Promise { const { menu, pagesButton } = this; return this.pagesButton.click() diff --git a/e2e/components/toolbar/toolbar-actions.ts b/e2e/components/toolbar/toolbar-actions.ts index de2bd9409..bc4c43a26 100644 --- a/e2e/components/toolbar/toolbar-actions.ts +++ b/e2e/components/toolbar/toolbar-actions.ts @@ -32,7 +32,7 @@ export class ToolbarActions extends Component { super(ToolbarActions.selectors.root, ancestor); } - isEmpty(): Promise { + isEmpty(): promise.Promise { return this.buttons.count().then(count => (count === 0)); } diff --git a/e2e/pages/browsing-page.ts b/e2e/pages/browsing-page.ts index 8d57e9553..b5602458c 100644 --- a/e2e/pages/browsing-page.ts +++ b/e2e/pages/browsing-page.ts @@ -15,6 +15,7 @@ * limitations under the License. */ +import { promise } from 'protractor'; import { Header, DataTable, Pagination, Toolbar, Sidenav } from '../components/components'; import { Page } from './page'; @@ -25,7 +26,7 @@ export class BrowsingPage extends Page { dataTable = new DataTable(this.app); pagination = new Pagination(this.app); - signOut(): Promise { + signOut(): promise.Promise { return this.header.userInfo.signOut(); } } diff --git a/e2e/pages/login-page.ts b/e2e/pages/login-page.ts index f50527965..2a6f90f33 100644 --- a/e2e/pages/login-page.ts +++ b/e2e/pages/login-page.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { browser, ExpectedConditions as EC } from 'protractor'; +import { browser, ExpectedConditions as EC, promise } from 'protractor'; import { LoginComponent } from '../components/components'; import { Page } from './page'; @@ -35,7 +35,7 @@ export class LoginPage extends Page { } /** @override */ - load(): Promise { + load(): promise.Promise { return super.load().then(() => { const { submitButton } = this.login; const hasSumbitButton = EC.presenceOf(submitButton); @@ -44,11 +44,11 @@ export class LoginPage extends Page { }); } - loginWith(username: string, password: string): Promise { + loginWith(username: string, password: string): promise.Promise { return this.login.enterCredentials(username, password).submit(); } - loginWithAdmin(): Promise { + loginWithAdmin(): promise.Promise { return this.loginWith(ADMIN_USERNAME, ADMIN_PASSWORD); } } diff --git a/e2e/pages/logout-page.ts b/e2e/pages/logout-page.ts index e600ce52e..f1c0b65ce 100644 --- a/e2e/pages/logout-page.ts +++ b/e2e/pages/logout-page.ts @@ -15,6 +15,7 @@ * limitations under the License. */ +import { promise } from 'protractor'; import { Page } from './page'; import { APP_ROUTES } from '../configs'; @@ -25,7 +26,7 @@ export class LogoutPage extends Page { } /** @override */ - load(): Promise { + load(): promise.Promise { return super.load(); } } diff --git a/e2e/pages/page.ts b/e2e/pages/page.ts index 19c073c74..01e9895d9 100644 --- a/e2e/pages/page.ts +++ b/e2e/pages/page.ts @@ -15,10 +15,10 @@ * limitations under the License. */ -import { browser, element, by, ElementFinder } from 'protractor'; +import { browser, element, by, ElementFinder, promise } from 'protractor'; export abstract class Page { - private static USE_HASH_STRATEGY: boolean = true; + private static USE_HASH_STRATEGY = true; private locators = { app: by.css('alfresco-content-app'), @@ -32,26 +32,26 @@ export abstract class Page { constructor(public url: string = '') {} - get title(): Promise { + get title(): promise.Promise { return browser.getTitle(); } - load(relativeUrl: string = ''): Promise { + load(relativeUrl: string = ''): promise.Promise { const hash = Page.USE_HASH_STRATEGY ? '/#' : ''; const path = `${hash}${this.url}${relativeUrl}`; return browser.get(path); } - refresh(): Promise { + refresh(): promise.Promise { return browser.refresh(); } - isSnackBarDisplayed(): Promise { + isSnackBarDisplayed(): promise.Promise { return this.snackBar.isDisplayed(); } - getSnackBarMessage(): Promise { + getSnackBarMessage(): promise.Promise { return this.isSnackBarDisplayed() .then(() => this.snackBar.getText()) .catch(() => ''); diff --git a/e2e/suites/actions/edit-folder.test.ts b/e2e/suites/actions/edit-folder.test.ts index e3c7b8e91..47bf0b749 100644 --- a/e2e/suites/actions/edit-folder.test.ts +++ b/e2e/suites/actions/edit-folder.test.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { protractor, element, browser, by, ElementFinder } from 'protractor'; +import { protractor, element, browser, by, ElementFinder, promise } from 'protractor'; import { LoginPage, LogoutPage, BrowsingPage } from '../../pages/pages'; import { APP_ROUTES, SITE_VISIBILITY, SITE_ROLES } from '../../configs'; import { RepoClient } from '../../utilities/repo-client/repo-client'; @@ -62,7 +62,7 @@ describe('Edit folder', () => { apis.user.nodes.createFolders([ folderNameToEdit, duplicateFolderName ]), loginPage.load() ])) - .then(() => loginPage.loginWith(username, password)) + .then(() => { loginPage.loginWith(username, password); }) .then(done); }); @@ -181,7 +181,7 @@ describe('Edit folder', () => { dataTable.clickOnRowByContainingText(folderName) .then(() => editButton.click()) .then(() => editDialog.clickCancel()) - .then(() => expect(editDialog.component.isPresent()).not.toBe(true, 'dialog is not closed')); + .then(() => { expect(editDialog.component.isPresent()).not.toBe(true, 'dialog is not closed'); }); }); it('with duplicate folder name', () => { diff --git a/e2e/utilities/local-storage.ts b/e2e/utilities/local-storage.ts index 04c841895..46d7d7926 100644 --- a/e2e/utilities/local-storage.ts +++ b/e2e/utilities/local-storage.ts @@ -15,18 +15,18 @@ * limitations under the License. */ -import { browser } from 'protractor'; +import { browser, promise } from 'protractor'; declare var window; export class LocalStorageUtility { - static clear(): Promise { + static clear(): promise.Promise { return browser.executeScript(() => { return window.localStorage.clear(); }); } - static getTicket(): Promise { + static getTicket(): promise.Promise { return browser.executeScript(() => { return window.localStorage.getItem('ticket-ECM'); }); diff --git a/package.json b/package.json index 50ac090c1..71e5f5e53 100644 --- a/package.json +++ b/package.json @@ -55,6 +55,7 @@ "karma-coverage-istanbul-reporter": "^1.2.1", "karma-jasmine": "~1.1.0", "karma-jasmine-html-reporter": "^0.2.2", + "node-rest-client": "^3.1.0", "protractor": "~5.1.2", "ts-node": "~3.2.0", "tslint": "~5.7.0", diff --git a/yarn.lock b/yarn.lock index 7105a9694..9b34fe6a1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1442,13 +1442,13 @@ debug@*: dependencies: ms "2.0.0" -debug@2, debug@2.6.9, debug@^2.2.0, debug@^2.6.3, debug@^2.6.6, debug@^2.6.8, debug@~2.6.7: +debug@2, debug@2.6.9, debug@^2.2.0, debug@^2.6.3, debug@^2.6.6, debug@^2.6.8, debug@^2.6.9, debug@~2.6.7: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: ms "2.0.0" -debug@2.2.0: +debug@2.2.0, debug@~2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" dependencies: @@ -2099,6 +2099,12 @@ flatten@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" +follow-redirects@>=1.2.0: + version "1.2.5" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.2.5.tgz#ffd3e14cbdd5eaa72f61b6368c1f68516c2a26cc" + dependencies: + debug "^2.6.9" + for-in@^0.1.3: version "0.1.8" resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" @@ -3901,6 +3907,14 @@ node-pre-gyp@^0.6.36: tar "^2.2.1" tar-pack "^3.4.0" +node-rest-client@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/node-rest-client/-/node-rest-client-3.1.0.tgz#e0beb6dda7b20cc0b67a7847cf12c5fc419c37c3" + dependencies: + debug "~2.2.0" + follow-redirects ">=1.2.0" + xml2js ">=0.2.4" + node-sass@^4.3.0: version "4.5.3" resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.5.3.tgz#d09c9d1179641239d1b97ffc6231fdcec53e1568" @@ -6276,7 +6290,7 @@ xml2js@0.4.4: sax "0.6.x" xmlbuilder ">=1.0.0" -xml2js@^0.4.17: +xml2js@>=0.2.4, xml2js@^0.4.17: version "0.4.19" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" dependencies: