UNPKG

@opentext/sdp-sdm-tests-to-run-conversion

Version:

JavaScript-based tool that converts the testsToRun parameter for running automated tests from OpenText Core Software Delivery Platform and OpenText Software Delivery Management.

86 lines (71 loc) 3.08 kB
/* * Copyright 2016-2025 Open Text. * * The only warranties for products and services of Open Text and * its affiliates and licensors (“Open Text”) are as may be set forth * in the express warranty statements accompanying such products and services. * Nothing herein should be construed as constituting an additional warranty. * Open Text shall not be liable for technical or editorial errors or * omissions contained herein. The information contained herein is subject * to change without notice. * * Except as specifically indicated otherwise, this document contains * confidential information and a valid license is required for possession, * use or copying. If this work is provided to the U.S. Government, * consistent with FAR 12.211 and 12.212, Commercial Computer Software, * Computer Software Documentation, and Technical Data for Commercial Items are * licensed to the U.S. Government under vendor's standard commercial license. * * 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 Test from "./dto/Test"; import Logger from "./utils/logger"; const LOGGER: Logger = new Logger("testsToRunParser.ts"); const parseTestsToRun = (testsToRun: string): Test[] => { let TEST_PARTS_MINIMAL_SIZE = 3; let PARAMETER_SIZE = 2; testsToRun = testsToRun.slice(testsToRun.indexOf(":") + 1); if (testsToRun) { const testsList = testsToRun.split(";"); let parsedTestsToRun = new Array<Test>(); testsList?.forEach((testToRun) => { const testSplit = testToRun.split("|"); if (testSplit.length < TEST_PARTS_MINIMAL_SIZE) { throw Error( `Test '${testToRun}' does not contains all required components.`, ); } const testToRunData: Test = { packageName: testSplit[0], className: testSplit[1], testName: testSplit[2], }; if (testSplit.length > TEST_PARTS_MINIMAL_SIZE) { testToRunData.parameters = {}; for (let i = TEST_PARTS_MINIMAL_SIZE; i < testSplit.length; i++) { let paramSplit = testSplit[i].split("="); if (paramSplit.length != PARAMETER_SIZE) { throw Error( `Expected ${PARAMETER_SIZE} parameters but only found ${paramSplit.length}`, ); } else { testToRunData.parameters[paramSplit[0]] = paramSplit[1]; } } } LOGGER.debug(`Found test to run: ${JSON.stringify(testToRunData)}`); parsedTestsToRun.push(testToRunData); }); return parsedTestsToRun; } return []; }; export default parseTestsToRun;