che-server/tests/e2e/utils/WorkspaceNameHandler.ts

41 lines
1.5 KiB
TypeScript

/*********************************************************************
* Copyright (c) 2019 Red Hat, Inc.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
**********************************************************************/
import { DriverHelper } from './DriverHelper';
import { e2eContainer } from '../inversify.config';
import { CLASSES } from '../inversify.types';
let driverHelper : DriverHelper = e2eContainer.get(CLASSES.DriverHelper);
export class WorkspaceNameHandler {
public static generateWorkspaceName(prefix: string, randomLength: number): string {
const possibleCharacters: string = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
const possibleCharactersLength: number = possibleCharacters.length;
let randomPart: string = '';
for (let i = 0; i < randomLength; i++) {
let currentRandomIndex: number = Math.floor(Math.random() * Math.floor(possibleCharactersLength));
randomPart += possibleCharacters[currentRandomIndex];
}
return prefix + randomPart;
}
public static async getNameFromUrl() : Promise<string> {
let url : string = await driverHelper.getCurrentUrl();
url = url.split('?')[0];
let splittedUrl = url.split(`/`);
let wsname : string = splittedUrl[splittedUrl.length - 1];
return wsname;
}
}