Skip to content

Commit

Permalink
[AAE-7246] fix eslint warnings for Testing project (#7490)
Browse files Browse the repository at this point in the history
* fix eslint warnings for Testing project

* fix lint issue
  • Loading branch information
DenysVuika committed Feb 8, 2022
1 parent 670d2be commit 765badc
Show file tree
Hide file tree
Showing 38 changed files with 237 additions and 285 deletions.
13 changes: 0 additions & 13 deletions lib/testing/.eslintrc.json
Expand Up @@ -20,19 +20,6 @@
"eslint-plugin-rxjs"
],
"rules": {
"jsdoc/newline-after-description": "warn",
"@typescript-eslint/naming-convention": "warn",
"@typescript-eslint/consistent-type-assertions": "warn",
"@typescript-eslint/prefer-for-of": "warn",
"no-underscore-dangle": "warn",
"no-shadow": "warn",
"quote-props": "warn",
"object-shorthand": "warn",
"prefer-const": "warn",
"arrow-body-style": "warn",
"@angular-eslint/no-output-native": "warn",
"space-before-function-paren": "warn",

"@angular-eslint/component-selector": [
"error",
{
Expand Down
Expand Up @@ -53,14 +53,15 @@ export class UploadActions {
async createEmptyFiles(emptyFileNames: string[], parentFolderId): Promise<NodeEntry> {
const filesRequest = [];

// eslint-disable-next-line @typescript-eslint/prefer-for-of
for (let i = 0; i < emptyFileNames.length; i++) {
const jsonItem = {};
jsonItem['name'] = emptyFileNames[i];
jsonItem['nodeType'] = 'cm:content';
filesRequest.push(jsonItem);
}

return this.nodesApi.createNode(parentFolderId, <any> filesRequest, {});
return this.nodesApi.createNode(parentFolderId, filesRequest as any, {});
}

async createFolder(folderName, parentFolderId): Promise<NodeEntry> {
Expand Down
Expand Up @@ -20,10 +20,7 @@ import { BrowserVisibility } from '../../core/utils/browser-visibility';
import { BrowserActions } from '../../core/utils/browser-actions';

export class RatePage {

private ratingsCounter = $(`div[id="adf-rating-counter"]`);
private coloredStar = async (rateValue: number) => $(`span[id="adf-rate-${rateValue}"] mat-icon`);
private greyStar = async (rateValue: number) => $(`mat-icon[id="adf-grey-star-${rateValue}"]`);

async rateComponent(rateValue: number) {
const unratedStar = await this.coloredStar(rateValue);
Expand Down Expand Up @@ -64,4 +61,6 @@ export class RatePage {
return BrowserActions.getColor(coloredStar);
}

private coloredStar = async (rateValue: number) => $(`span[id="adf-rate-${rateValue}"] mat-icon`);
private greyStar = async (rateValue: number) => $(`mat-icon[id="adf-grey-star-${rateValue}"]`);
}
Expand Up @@ -20,10 +20,10 @@ import { ApiService } from '../../../shared/api/api.service';
import { Logger } from '../utils/logger';
import { browser } from 'protractor';

export function createApiService(
export const createApiService = (
/** @deprecated */
appConfigOverride: Partial<AlfrescoApiConfig> = {}
) {
) => {
const patchedAppConfig = {
...browser.params.testConfig.appConfig,
oauth2: {
Expand All @@ -44,4 +44,4 @@ export function createApiService(
},
Logger
);
}
};
12 changes: 6 additions & 6 deletions lib/testing/src/lib/protractor/core/actions/drop.actions.ts
Expand Up @@ -20,19 +20,19 @@ import * as path from 'path';
import * as fs from 'fs';
import { BrowserActions } from '../utils/browser-actions';

const JS_BIND_INPUT = function(target) {
const JS_BIND_INPUT = (target) => {
const input = document.createElement('input');
input.type = 'file';
input.style.display = 'none';
input.addEventListener('change', function() {
input.addEventListener('change', () => {
target.scrollIntoView(true);

const rect = target.getBoundingClientRect();
const x = rect.left + (rect.width >> 1);
const y = rect.top + (rect.height >> 1);
const data = { files: input.files };

['dragenter', 'dragover', 'drop'].forEach(function(name) {
['dragenter', 'dragover', 'drop'].forEach((name) => {
const mouseEvent: any = document.createEvent('MouseEvent');
mouseEvent.initMouseEvent(name, !0, !0, window, 0, 0, 0, x, y, !1, !1, !1, !1, 0, null);
mouseEvent.dataTransfer = data;
Expand All @@ -46,21 +46,21 @@ const JS_BIND_INPUT = function(target) {
return input;
};

const JS_BIND_INPUT_FOLDER = function(target) {
const JS_BIND_INPUT_FOLDER = (target) => {
const input: any = document.createElement('input');
input.type = 'file';
input.style.display = 'none';
input.multiple = true;
input.webkitdirectory = true;
input.addEventListener('change', function() {
input.addEventListener('change', () => {
target.scrollIntoView(true);

const rect = target.getBoundingClientRect();
const x = rect.left + (rect.width >> 1);
const y = rect.top + (rect.height >> 1);
const data = { files: input.files };

['dragenter', 'dragover', 'drop'].forEach(function(name) {
['dragenter', 'dragover', 'drop'].forEach((name) => {
const mouseEvent: any = document.createEvent('MouseEvent');
mouseEvent.initMouseEvent(name, !0, !0, window, 0, 0, 0, x, y, !1, !1, !1, !1, 0, null);
mouseEvent.dataTransfer = data;
Expand Down
Expand Up @@ -15,6 +15,8 @@
* limitations under the License.
*/

/* eslint-disable @typescript-eslint/naming-convention */

import { ApiService } from '../../../../shared/api/api.service';
import { UserModel } from '../../models/user.model';
import { RolesService } from './roles.service';
Expand All @@ -33,6 +35,7 @@ export class IdentityService {
async createIdentityUserWithRole(roles: string[]): Promise<any> {
const rolesService = new RolesService(this.api);
const user = await this.createIdentityUser();
// eslint-disable-next-line @typescript-eslint/prefer-for-of
for (let i = 0; i < roles.length; i++) {
const roleId = await rolesService.getRoleIdByRoleName(roles[i]);
await this.assignRole(user.idIdentityService, roleId, roles[i]);
Expand Down
Expand Up @@ -122,6 +122,7 @@ export class QueryService {
const postBody = {};

const data = await this.api.performBpmOperation(path, method, queryParams, postBody);
// eslint-disable-next-line @typescript-eslint/prefer-for-of
for (let i = 0; i < data.list.entries.length; i++) {
if (data.list.entries[i].entry.name === taskName) {
return data.list.entries[i];
Expand All @@ -148,6 +149,7 @@ export class QueryService {
const postBody = {};

const data = await this.api.performBpmOperation(path, method, queryParams, postBody);
// eslint-disable-next-line @typescript-eslint/prefer-for-of
for (let i = 0; i < data.list.entries.length; i++) {
if (data.list.entries[i].entry.name === taskName) {
return data.list.entries[i];
Expand All @@ -170,6 +172,7 @@ export class QueryService {
const postBody = {};

const data = await this.api.performBpmOperation(path, method, queryParams, postBody);
// eslint-disable-next-line @typescript-eslint/prefer-for-of
for (let i = 0; i < data.list.entries.length; i++) {
if (data.list.entries[i].entry.name === taskName) {
const task = data.list.entries[i];
Expand Down
47 changes: 21 additions & 26 deletions lib/testing/src/lib/protractor/core/actions/search.service.ts
Expand Up @@ -32,10 +32,7 @@ export class SearchService {

async isSearchable(name: string): Promise<any> {
const query = this.createSearchQuery(name);

const predicate = (result: ResultSetPaging) => {
return !!result?.list?.entries?.find(({ entry }) => entry.name === name);
};
const predicate = (result: ResultSetPaging) => !!result?.list?.entries?.find(({ entry }) => entry.name === name);

return this.performSearch(query, predicate, 'Failed to search folder');
}
Expand All @@ -56,58 +53,56 @@ export class SearchService {
async isUserSearchable(user: UserModel): Promise<any> {
const query = this.createUserSearchQuery(user);

const predicate = (result: ResultSetPaging) => {
return result.list && result.list.entries.length > 0 && !!result.list.entries.find(({ entry }) => entry.properties['cm:email'] === user.email);
};
const predicate = (result: ResultSetPaging) => result.list && result.list.entries.length > 0 && !!result.list.entries.find(({ entry }) => entry.properties['cm:email'] === user.email);

return this.performSearch(query, predicate, 'Failed to search user');
}

private createUserSearchQuery(user: UserModel) {
return {
'query': {
'query': `email:*${user.email}* OR firstName:*${user.firstName}* OR lastName:*${user.lastName}*`
query: {
query: `email:*${user.email}* OR firstName:*${user.firstName}* OR lastName:*${user.lastName}*`
},
'include': [
include: [
'aspectNames',
'properties'
],
'paging': {
'maxItems': 1,
'skipCount': 0
paging: {
maxItems: 1,
skipCount: 0
},
'filterQueries': [
filterQueries: [
{
'query': `TYPE:'cm:authority'`
query: `TYPE:'cm:authority'`
}
]
};
}

private createSearchQuery(name: string) {
return {
'query': {
'query': `${name}*`
query: {
query: `${name}*`
},
'include': [
include: [
'path',
'allowableOperations',
'properties'
],
'paging': {
'maxItems': 20,
'skipCount': 0
paging: {
maxItems: 20,
skipCount: 0
},
'filterQueries': [
filterQueries: [
{
'query': `TYPE:'cm:folder' OR TYPE:'cm:content'`
query: `TYPE:'cm:folder' OR TYPE:'cm:content'`
},
{
'query': 'NOT cm:creator:System'
query: 'NOT cm:creator:System'
}
],
'scope': {
'locations': [
scope: {
locations: [
'nodes'
]
}
Expand Down
Expand Up @@ -118,7 +118,7 @@ export class UsersActions {
}

async createUserWithName(firstName: string, lastName: string): Promise<UserModel> {
const user = new UserModel({ firstName: firstName, lastName: lastName });
const user = new UserModel({ firstName, lastName });
return this.createUser(user);
}

Expand Down
Expand Up @@ -20,6 +20,8 @@ import { BrowserVisibility } from '../utils/browser-visibility';
import { BrowserActions } from '../utils/browser-actions';
import { Logger } from '../utils/logger';

const MAX_LOADING_TIME = 120000;

export class DataTableComponentPage {

rootElement: ElementFinder;
Expand All @@ -38,8 +40,6 @@ export class DataTableComponentPage {

rows = `adf-datatable div[class*='adf-datatable-body'] adf-datatable-row[class*='adf-datatable-row']`;

MAX_LOADING_TIME = 120000;

constructor(rootElement = $$('adf-datatable').first()) {
this.rootElement = rootElement;
this.list = this.rootElement.$$(`div[class*='adf-datatable-body'] adf-datatable-row[class*='adf-datatable-row']`);
Expand Down Expand Up @@ -375,7 +375,7 @@ export class DataTableComponentPage {

if (await this.isSpinnerPresent()) {
Logger.log('wait datatable loading spinner disappear');
await BrowserVisibility.waitUntilElementIsNotVisible(this.rootElement.element(by.tagName('mat-progress-spinner')), this.MAX_LOADING_TIME);
await BrowserVisibility.waitUntilElementIsNotVisible(this.rootElement.element(by.tagName('mat-progress-spinner')), MAX_LOADING_TIME);

if (await this.isEmpty()) {
Logger.log('empty page');
Expand All @@ -389,7 +389,7 @@ export class DataTableComponentPage {
try {
Logger.log('wait datatable loading spinner is present');
await BrowserVisibility.waitUntilElementIsVisible(this.rootElement.element(by.tagName('mat-progress-spinner')), 2000);
await BrowserVisibility.waitUntilElementIsNotVisible(this.rootElement.element(by.tagName('mat-progress-spinner')), this.MAX_LOADING_TIME);
await BrowserVisibility.waitUntilElementIsNotVisible(this.rootElement.element(by.tagName('mat-progress-spinner')), MAX_LOADING_TIME);
} catch (error) {
}

Expand All @@ -401,39 +401,6 @@ export class DataTableComponentPage {
}
}

private async isSpinnerPresent(): Promise<boolean> {
let isSpinnerPresent;

try {
isSpinnerPresent = await this.rootElement.element(by.tagName('mat-progress-spinner')).isDisplayed();
} catch (error) {
isSpinnerPresent = false;
}

return isSpinnerPresent;
}

private async isInfiniteSpinnerPresent(): Promise<boolean> {
let isSpinnerPresent;

try {
isSpinnerPresent = await this.rootElement.element(by.tagName('mat-progress-bar')).isDisplayed();
} catch (error) {
isSpinnerPresent = false;
}

return isSpinnerPresent;
}

private async waitFirstElementPresent(): Promise<void> {
try {
Logger.log('wait first element is present');
await BrowserVisibility.waitUntilElementIsVisible(this.contents.first());
} catch (error) {
Logger.log('Possible empty page');
}
}

async waitTillContentLoadedInfinitePagination(): Promise<void> {
await browser.sleep(500);

Expand Down Expand Up @@ -615,4 +582,37 @@ export class DataTableComponentPage {
}
return '';
}

private async isSpinnerPresent(): Promise<boolean> {
let isSpinnerPresent;

try {
isSpinnerPresent = await this.rootElement.element(by.tagName('mat-progress-spinner')).isDisplayed();
} catch (error) {
isSpinnerPresent = false;
}

return isSpinnerPresent;
}

private async isInfiniteSpinnerPresent(): Promise<boolean> {
let isSpinnerPresent;

try {
isSpinnerPresent = await this.rootElement.element(by.tagName('mat-progress-bar')).isDisplayed();
} catch (error) {
isSpinnerPresent = false;
}

return isSpinnerPresent;
}

private async waitFirstElementPresent(): Promise<void> {
try {
Logger.log('wait first element is present');
await BrowserVisibility.waitUntilElementIsVisible(this.contents.first());
} catch (error) {
Logger.log('Possible empty page');
}
}
}

0 comments on commit 765badc

Please sign in to comment.