Remove demo shell protractor TreeView e2e (#9000)

* remove protractor TreeView e2e

* [ci:force] fix types

* [ci:force] remove unused method
This commit is contained in:
Denys Vuika 2023-10-16 11:31:33 +01:00 committed by GitHub
parent 462166293a
commit 82fafff114
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 6 additions and 304 deletions

View File

@ -55,7 +55,6 @@ import { MonacoEditorModule } from 'ngx-monaco-editor-v2';
import { ContentModule } from '@alfresco/adf-content-services';
import { InsightsModule } from '@alfresco/adf-insights';
import { ProcessModule } from '@alfresco/adf-process-services';
import { TreeViewSampleComponent } from './components/tree-view/tree-view-sample.component';
import { CloudLayoutComponent } from './components/cloud/cloud-layout.component';
import { AppsCloudDemoComponent } from './components/cloud/apps-cloud-demo.component';
import { TasksCloudDemoComponent } from './components/cloud/tasks-cloud-demo.component';
@ -120,7 +119,6 @@ import { UserInfoComponent } from './components/app-layout/user-info/user-info.c
ProcessAttachmentsComponent,
DemoPermissionComponent,
DemoErrorComponent,
TreeViewSampleComponent,
CloudLayoutComponent,
AppsCloudDemoComponent,
TasksCloudDemoComponent,

View File

@ -30,7 +30,6 @@ import { FilesComponent } from './components/files/files.component';
import { FormComponent } from './components/form/form.component';
import { DemoPermissionComponent } from './components/permissions/demo-permissions.component';
import { AppComponent } from './app.component';
import { TreeViewSampleComponent } from './components/tree-view/tree-view-sample.component';
import { AppsCloudDemoComponent } from './components/cloud/apps-cloud-demo.component';
import { CloudLayoutComponent } from './components/cloud/cloud-layout.component';
import { TasksCloudDemoComponent } from './components/cloud/tasks-cloud-demo.component';
@ -245,11 +244,6 @@ export const appRoutes: Routes = [
component: DemoPermissionComponent,
canActivate: [AuthGuardEcm]
},
{
path: 'treeview',
component: TreeViewSampleComponent,
canActivate: [AuthGuardEcm]
},
{ path: 'form-cloud', component: FormCloudDemoComponent },
{ path: 'form', component: FormComponent },
{

View File

@ -1,19 +0,0 @@
<div>TREE VIEW TEST</div>
<mat-form-field class="example-full-width">
<input matInput placeholder="Node Id"
[(ngModel)]="nodeIdSample"
(ngModelChange)="reset()">
</mat-form-field>
<span>
CLICKED NODE: {{clickedNodeName}}
</span>
<adf-tree-view-list *ngIf="!errorMessage; else errorOccurred"
[nodeId]="nodeIdSample"
(nodeClicked)="onClick($event)"
(error)="onErrorOccurred($event)">
</adf-tree-view-list>
<ng-template #errorOccurred>
<span>An Error Occurred </span>
<span>{{errorMessage}}</span>
</ng-template>

View File

@ -1,3 +0,0 @@
.example-full-width {
width: 100%;
}

View File

@ -1,45 +0,0 @@
/*!
* @license
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* 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 { Component } from '@angular/core';
@Component({
selector: 'app-tree-view',
templateUrl: './tree-view-sample.component.html',
styleUrls: ['./tree-view-sample.component.scss']
})
export class TreeViewSampleComponent {
clickedNodeName: string = '';
errorMessage: string = '';
nodeIdSample: string = '-my-';
onClick(node) {
this.clickedNodeName = node.entry.name;
}
reset() {
this.clickedNodeName = '';
this.errorMessage = '';
}
onErrorOccurred(error: string) {
this.clickedNodeName = '';
this.errorMessage = error;
}
}

View File

@ -1,139 +0,0 @@
/*!
* @license
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* 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 { createApiService, LoginPage, UploadActions, UserModel, UsersActions } from '@alfresco/adf-testing';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { TreeViewPage } from './../pages/tree-view.page';
import { NodesApi } from '@alfresco/js-api';
describe('Tree View Component', () => {
const loginPage = new LoginPage();
const navigationBarPage = new NavigationBarPage();
const treeViewPage = new TreeViewPage();
let acsUser: UserModel;
const apiService = createApiService();
const usersActions = new UsersActions(apiService);
const uploadActions = new UploadActions(apiService);
const nodesApi = new NodesApi(apiService.getInstance());
let treeFolder; let secondTreeFolder; let thirdTreeFolder;
const nodeNames = {
folder: 'Folder1',
secondFolder: 'Folder2',
thirdFolder: 'Folder3',
parentFolder: '-my-',
document: 'MyFile'
};
beforeAll(async () => {
await apiService.loginWithProfile('admin');
acsUser = await usersActions.createUser();
await apiService.login(acsUser.username, acsUser.password);
treeFolder = await nodesApi.createNode(nodeNames.parentFolder, {
name: nodeNames.folder,
nodeType: 'cm:folder'
});
secondTreeFolder = await nodesApi.createNode(nodeNames.parentFolder, {
name: nodeNames.secondFolder,
nodeType: 'cm:folder'
});
thirdTreeFolder = await nodesApi.createNode(secondTreeFolder.entry.id, {
name: nodeNames.thirdFolder,
nodeType: 'cm:folder'
});
await nodesApi.createNode(thirdTreeFolder.entry.id, {
name: nodeNames.document,
nodeType: 'cm:content'
});
await loginPage.login(acsUser.username, acsUser.password);
await navigationBarPage.clickTreeViewButton();
});
afterAll(async () => {
await navigationBarPage.clickLogoutButton();
await apiService.loginWithProfile('admin');
await uploadActions.deleteFileOrFolder(treeFolder.entry.id);
await uploadActions.deleteFileOrFolder(secondTreeFolder.entry.id);
});
it('[C289972] Should be able to show folders and sub-folders of a node as a tree view', async () => {
await treeViewPage.checkTreeViewTitleIsDisplayed();
await expect(await treeViewPage.getNodeId()).toEqual(nodeNames.parentFolder);
await treeViewPage.checkNodeIsDisplayedAsClosed(nodeNames.folder);
await treeViewPage.checkNodeIsDisplayedAsClosed(nodeNames.secondFolder);
await treeViewPage.clickNode(nodeNames.secondFolder);
await treeViewPage.checkClickedNodeName(nodeNames.secondFolder);
await treeViewPage.checkNodeIsDisplayedAsOpen(nodeNames.secondFolder);
await treeViewPage.checkNodeIsDisplayedAsClosed(nodeNames.thirdFolder);
await treeViewPage.clickNode(nodeNames.thirdFolder);
await treeViewPage.checkClickedNodeName(nodeNames.thirdFolder);
await treeViewPage.checkNodeIsDisplayedAsOpen(nodeNames.thirdFolder);
await treeViewPage.clickNode(nodeNames.secondFolder);
await treeViewPage.checkClickedNodeName(nodeNames.secondFolder);
await treeViewPage.checkNodeIsDisplayedAsClosed(nodeNames.secondFolder);
await treeViewPage.checkNodeIsNotDisplayed(nodeNames.thirdFolder);
});
it('[C289973] Should be able to change the default nodeId', async () => {
await treeViewPage.clearNodeIdInput();
await treeViewPage.checkNoNodeIdMessageIsDisplayed();
await treeViewPage.addNodeId(secondTreeFolder.entry.id);
await treeViewPage.checkNodeIsDisplayedAsClosed(nodeNames.thirdFolder);
await treeViewPage.addNodeId('ThisIdDoesNotExist');
await treeViewPage.checkErrorMessageIsDisplayed();
await treeViewPage.addNodeId(nodeNames.parentFolder);
await treeViewPage.checkNodeIsDisplayedAsClosed(nodeNames.folder);
await treeViewPage.checkNodeIsDisplayedAsClosed(nodeNames.secondFolder);
await treeViewPage.clickNode(nodeNames.secondFolder);
await treeViewPage.checkNodeIsDisplayedAsClosed(nodeNames.thirdFolder);
});
it('[C290071] Should not be able to display files', async () => {
await treeViewPage.addNodeId(secondTreeFolder.entry.id);
await treeViewPage.checkNodeIsDisplayedAsClosed(nodeNames.thirdFolder);
await treeViewPage.clickNode(nodeNames.thirdFolder);
await expect(await treeViewPage.getTotalNodes()).toEqual(1);
});
});

View File

@ -20,6 +20,7 @@ import { browser } from 'protractor';
import { createApiService, LoginPage, StringUtil, UploadActions, UserModel, UsersActions } from '@alfresco/adf-testing';
import { FileModel } from '../../models/ACS/file.model';
import { NavigationBarPage } from '../../core/pages/navigation-bar.page';
import { NodeEntry } from '@alfresco/js-api';
describe('Document List Component', () => {
@ -56,7 +57,11 @@ describe('Document List Component', () => {
location: browser.params.resources.Files.ADF_DOCUMENTS.DOCX.file_path
});
const folderName = `MEESEEKS_${StringUtil.generateRandomString(5)}_LOOK_AT_ME`;
let filePdfNode; let fileTestNode; let fileDocxNode; let folderNode; let filePDFSubNode;
let filePdfNode: NodeEntry;
let fileTestNode: NodeEntry;
let fileDocxNode: NodeEntry;
let folderNode: NodeEntry;
let filePDFSubNode: NodeEntry;
beforeAll(async () => {
await apiService.loginWithProfile('admin');

View File

@ -1,85 +0,0 @@
/*!
* @license
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* 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 { element, by, protractor, $, $$ } from 'protractor';
import { BrowserVisibility, BrowserActions } from '@alfresco/adf-testing';
export class TreeViewPage {
treeViewTitle = element(by.cssContainingText('app-tree-view div', 'TREE VIEW TEST'));
nodeIdInput = $('input[data-placeholder="Node Id"]');
noNodeMessage = $('#adf-tree-view-missing-node');
nodesOnPage = $$('mat-tree-node');
async checkTreeViewTitleIsDisplayed(): Promise<void> {
await BrowserVisibility.waitUntilElementIsVisible(this.treeViewTitle);
}
async getNodeId(): Promise<string> {
return BrowserActions.getInputValue(this.nodeIdInput);
}
async clickNode(nodeName: string): Promise<void> {
const node = $('mat-tree-node[id="' + nodeName + '-tree-child-node"] button');
await BrowserActions.click(node);
}
async checkNodeIsDisplayedAsClosed(nodeName: string): Promise<void> {
const node = $('mat-tree-node[id="' + nodeName + '-tree-child-node"][aria-expanded="false"]');
await BrowserVisibility.waitUntilElementIsVisible(node);
}
async checkNodeIsDisplayedAsOpen(nodeName: string): Promise<void> {
const node = $('mat-tree-node[id="' + nodeName + '-tree-child-node"][aria-expanded="true"]');
await BrowserVisibility.waitUntilElementIsVisible(node);
}
async checkClickedNodeName(nodeName: string): Promise<void> {
const clickedNode = element(by.cssContainingText('span', ' CLICKED NODE: ' + nodeName + ''));
await BrowserVisibility.waitUntilElementIsVisible(clickedNode);
}
async checkNodeIsNotDisplayed(nodeName: string): Promise<void> {
const node = $('#' + nodeName + '-tree-child-node');
await BrowserVisibility.waitUntilElementIsNotVisible(node);
}
async clearNodeIdInput(): Promise<void> {
await BrowserActions.click(this.nodeIdInput);
await BrowserActions.clearWithBackSpace(this.nodeIdInput);
}
async checkNoNodeIdMessageIsDisplayed(): Promise<void> {
await BrowserVisibility.waitUntilElementIsVisible(this.noNodeMessage);
}
async addNodeId(nodeId: string): Promise<void> {
await BrowserActions.click(this.nodeIdInput);
await BrowserActions.clearSendKeys(this.nodeIdInput, nodeId);
await this.nodeIdInput.sendKeys('a');
await this.nodeIdInput.sendKeys(protractor.Key.BACK_SPACE);
}
async checkErrorMessageIsDisplayed(): Promise<void> {
const clickedNode = element(by.cssContainingText('span', 'An Error Occurred '));
await BrowserVisibility.waitUntilElementIsVisible(clickedNode);
}
async getTotalNodes(): Promise<number> {
return this.nodesOnPage.count();
}
}

View File

@ -90,10 +90,6 @@ export class NavigationBarPage {
await BrowserVisibility.waitUntilElementIsNotPresent(this.linkMenuChildrenContainer);
}
async clickTreeViewButton(): Promise<void> {
await this.clickNavigationBarItem('Tree View');
}
async clickLogoutButton(): Promise<void> {
Logger.log('Logout');
try {