[ACA-2322] Sidenav - support dynamic components (#1066)

* dynamic components support

* subscribe to sidenav selector

* update module for extension

* sidenav selector

* support dynamic components definistion

* update docs

* stabilise tests

* Update src/app/components/sidenav/sidenav.module.ts

Co-Authored-By: pionnegru <pionnegru@users.noreply.github.com>

* Update src/app/components/sidenav/sidenav.module.ts

Co-Authored-By: pionnegru <pionnegru@users.noreply.github.com>

* rename selector
This commit is contained in:
Cilibiu Bogdan
2019-04-12 12:39:05 +03:00
committed by Denys Vuika
parent bbdf3a9b27
commit 5bf77dfc81
10 changed files with 92 additions and 191 deletions

View File

@@ -56,22 +56,22 @@ export abstract class Page {
constructor(public url: string = '') {}
getTitle() {
return browser.getTitle();
async getTitle() {
return await browser.getTitle();
}
load(relativeUrl: string = '') {
async load(relativeUrl: string = '') {
const hash = USE_HASH_STRATEGY ? '/#' : '';
const path = `${browser.baseUrl}${hash}${this.url}${relativeUrl}`;
return browser.get(path);
return await browser.get(path);
}
waitForApp() {
return browser.wait(EC.presenceOf(this.layout), BROWSER_WAIT_TIMEOUT);
async waitForApp() {
return await browser.wait(EC.presenceOf(this.layout), BROWSER_WAIT_TIMEOUT);
}
waitForSnackBarToAppear() {
return browser.wait(until.elementLocated(by.css('.mat-snack-bar-container')), BROWSER_WAIT_TIMEOUT, '------- timeout waiting for snackbar to appear');
async waitForSnackBarToAppear() {
return await browser.wait(until.elementLocated(by.css('.mat-snack-bar-container')), BROWSER_WAIT_TIMEOUT, '------- timeout waiting for snackbar to appear');
}
async waitForSnackBarToClose() {

View File

@@ -730,7 +730,7 @@ describe('Upload new version', () => {
it('file is updated after uploading a new version - major - [C307004]', async () => {
await searchInput.clickSearchButton();
await searchInput.checkFilesAndFolders();
await searchInput.searchFor('search-f');
await searchInput.searchFor(fileSearch1);
await dataTable.waitForBody();
await dataTable.selectItem(fileSearch1, parentSearch);
await toolbar.clickMoreActionsUploadNewVersion();
@@ -751,7 +751,7 @@ describe('Upload new version', () => {
it('file is updated after uploading a new version - minor - [C307005]', async () => {
await searchInput.clickSearchButton();
await searchInput.checkFilesAndFolders();
await searchInput.searchFor('search-f');
await searchInput.searchFor(fileSearch2);
await dataTable.waitForBody();
await dataTable.selectItem(fileSearch2, parentSearch);
await toolbar.clickMoreActionsUploadNewVersion();
@@ -772,7 +772,7 @@ describe('Upload new version', () => {
it('file is not updated when clicking Cancel - [C307006]', async () => {
await searchInput.clickSearchButton();
await searchInput.checkFilesAndFolders();
await searchInput.searchFor('search-f');
await searchInput.searchFor(fileSearch3);
await dataTable.waitForBody();
await dataTable.selectItem(fileSearch3, parentSearch);
await toolbar.clickMoreActionsUploadNewVersion();
@@ -792,7 +792,7 @@ describe('Upload new version', () => {
it('upload new version fails when new file name already exists - [C307007]', async () => {
await searchInput.clickSearchButton();
await searchInput.checkFilesAndFolders();
await searchInput.searchFor('search-f');
await searchInput.searchFor(fileSearch4);
await dataTable.waitForBody();
await dataTable.selectItem(fileSearch4, parentSearch);
await toolbar.clickMoreActionsUploadNewVersion();
@@ -814,7 +814,7 @@ describe('Upload new version', () => {
it('file is unlocked after uploading a new version - [C307008]', async () => {
await searchInput.clickSearchButton();
await searchInput.checkFilesAndFolders();
await searchInput.searchFor('search-f');
await searchInput.searchFor(fileLockedSearch1);
await dataTable.waitForBody();
await dataTable.selectItem(fileLockedSearch1, parentSearch);
await toolbar.clickMoreActionsUploadNewVersion();
@@ -836,7 +836,7 @@ describe('Upload new version', () => {
it('file remains locked after canceling of uploading a new version - [C307009]', async () => {
await searchInput.clickSearchButton();
await searchInput.checkFilesAndFolders();
await searchInput.searchFor('search-f');
await searchInput.searchFor(fileLockedSearch2);
await dataTable.waitForBody();
await dataTable.selectItem(fileLockedSearch2, parentSearch);
await toolbar.clickMoreActionsUploadNewVersion();

View File

@@ -1,79 +0,0 @@
/*!
* @license
* Alfresco Example Content Application
*
* Copyright (C) 2005 - 2019 Alfresco Software Limited
*
* This file is part of the Alfresco Example Content Application.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
/* tslint:disable */
const chalk = require('chalk');
/* tslint:enable */
export const log = {
i: 0,
get indentation(): string {
return new Array(this.i).fill(' ').join('');
},
indent() {
this.i++;
return this;
},
unindent() {
this.i--;
return this;
},
log(message: string = '', options: any = { ignoreIndentation: false }) {
const indentation = (!options.ignoreIndentation)
? this.indentation
: '';
console.log(`${indentation}${message}`);
return this;
},
blank() {
return this.log();
},
info(message: string = '', options: any = { bold: false, title: false }) {
const { bold } = options;
const style = (bold ? chalk.bold : chalk).gray;
return this.log(style(message), options);
},
success(message: string = '', options: any = { bold: false }) {
const style = options.bold ? chalk.bold.green : chalk.green;
return this.log(style(message), options);
},
error(message: string = '', options: any = { bold: false }) {
const style = options.bold ? chalk.bold.red : chalk.red;
return this.log(style(message), options);
}
};

View File

@@ -1,90 +0,0 @@
/*!
* @license
* Alfresco Example Content Application
*
* Copyright (C) 2005 - 2019 Alfresco Software Limited
*
* This file is part of the Alfresco Example Content Application.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
*/
import { log } from './console-logger';
const errors = [];
export const consoleReporter = {
jasmineStarted(suiteInfo) {
log.blank().info(
`Running ${suiteInfo.totalSpecsDefined} tests`,
{ bold: true, title: true }
).blank();
},
suiteStarted(suite) {
log.info(suite.description).indent();
},
specDone: (spec) => {
const {
status,
description,
failedExpectations
} = spec;
if (status === 'passed') {
log.success(`${description}`);
}
if (status === 'failed') {
log.error(`${description}`, { bold: true });
errors.push(spec);
failedExpectations.forEach((failed) => {
log.error(` ${failed.message}`);
});
}
},
suiteDone: (result) => {
log.unindent();
},
jasmineDone: (result) => {
if (!!errors.length) {
log .blank()
.blank()
.info(`${errors.length} failing tests`, { bold: true, title: true });
errors.forEach(error => {
log .blank()
.error(`${error.fullName}`, { bold: true });
error.failedExpectations.forEach(failed => {
log .info(`${failed.message}`)
.blank()
.error(`${failed.stack}`);
});
});
} else {
log.success(`All tests passed!`, { bold: true });
}
log.blank().blank();
}
};