[ACS-5519] viewer-general tests Playwright (#3327)

* [ACS-5519] view general tests Playwright

* [ACS-5519] remove same function call
This commit is contained in:
Akash Rathod
2023-07-11 19:54:58 +02:00
committed by GitHub
parent b192c5f6bb
commit 5abbda78a3
32 changed files with 901 additions and 101 deletions

View File

@@ -35,7 +35,9 @@ import {
SecurityGroupsApi,
SecurityMarksApi,
SitesApi,
UploadApi
UploadApi,
SharedlinksApi,
FavoritesApi
} from '@alfresco/js-api';
import { logger } from '@alfresco/adf-cli/scripts/logger';
import { ActionTypes, Rule } from './rules-api';
@@ -45,6 +47,8 @@ export interface AcaBackend {
sites: SitesApi;
upload: UploadApi;
nodes: NodesApi;
share: SharedlinksApi;
favorites: FavoritesApi;
tearDown(): Promise<any>;
}
@@ -73,6 +77,8 @@ export class ApiClientFactory {
public securityGroupsApi: SecurityGroupsApi;
public securityMarksApi: SecurityMarksApi;
public contentClient: ContentClient;
public share: SharedlinksApi;
public favorites: FavoritesApi;
constructor() {
this.alfrescoApi = new AlfrescoApi(config);
@@ -92,6 +98,8 @@ export class ApiClientFactory {
this.search = new SearchApi(this.alfrescoApi);
this.securityGroupsApi = new SecurityGroupsApi(this.alfrescoApi);
this.securityMarksApi = new SecurityMarksApi(this.alfrescoApi);
this.share = new SharedlinksApi(this.alfrescoApi);
this.favorites = new FavoritesApi(this.alfrescoApi);
return this;
}

View File

@@ -0,0 +1,52 @@
/*!
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Alfresco Example Content Application
*
* 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 { ApiClientFactory } from './api-client-factory';
import { FavoriteEntry } from '@alfresco/js-api';
import { users } from '../base-config/global-variables';
export class FavoritesPageApi extends ApiClientFactory {
private apiService: ApiClientFactory;
constructor() {
super();
this.apiService = new ApiClientFactory();
}
static async initialize(userProfile: keyof typeof users): Promise<FavoritesPageApi> {
const classObj = new FavoritesPageApi();
await classObj.apiService.setUpAcaBackend(userProfile);
return classObj;
}
async addFavoriteById(nodeType: 'file' | 'folder' | 'site', id: string): Promise<FavoriteEntry | null> {
let guid = nodeType === 'site' ? (await this.sites.getSite(id)).entry.guid : id;
const data = {
target: {
[nodeType]: {
guid: guid
}
}
};
return await this.apiService.favorites.createFavorite('-me-', data);
}
}

View File

@@ -0,0 +1,59 @@
/*!
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Alfresco Example Content Application
*
* 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 * as fs from 'fs';
import { ApiClientFactory } from './api-client-factory';
import { users } from '../base-config/global-variables';
export class FileActionsApi extends ApiClientFactory {
private apiService: ApiClientFactory;
constructor() {
super();
this.apiService = new ApiClientFactory();
}
static async initialize(
userProfile: keyof typeof users
): Promise<FileActionsApi> {
const classObj = new FileActionsApi();
await classObj.apiService.setUpAcaBackend(userProfile);
return classObj;
}
async uploadFile(fileLocation: string, fileName: string, parentFolderId: string): Promise<any> {
const file = fs.createReadStream(fileLocation);
return this.apiService.upload.uploadFile(
file,
'',
parentFolderId,
null,
{
name: fileName,
nodeType: 'cm:content',
renditions: 'doclib'
}
);
}
}

View File

@@ -24,3 +24,6 @@
export * from './rules-api';
export * from './api-client-factory';
export * from './file-actions';
export * from './shared-links-api';
export * from './favorites-api';

View File

@@ -0,0 +1,55 @@
/*!
* Copyright © 2005-2023 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Alfresco Example Content Application
*
* 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 { ApiClientFactory } from './api-client-factory';
import { SharedLinkEntry } from '@alfresco/js-api';
import { users } from '../base-config/global-variables';
export class SharedLinksApi extends ApiClientFactory {
private apiService: ApiClientFactory;
constructor() {
super();
this.apiService = new ApiClientFactory();
}
static async initialize(
userProfile: keyof typeof users
): Promise<SharedLinksApi> {
const classObj = new SharedLinksApi();
await classObj.apiService.setUpAcaBackend(userProfile);
return classObj;
}
async shareFileById(id: string, expireDate?: Date): Promise<SharedLinkEntry | null> {
try {
const data = {
nodeId: id,
expiresAt: expireDate
};
return await this.apiService.share.createSharedLink(data);
} catch (error) {
return null;
}
}
}