public async awaitTerminationForFileValidation()

in src/RunnerFiles/CreateAndRunTest.ts [126:149]


    public async awaitTerminationForFileValidation(apiService : APIService) : Promise<TestModel | null> {
        let minutesToAdd=10;
        let startTime = new Date();
        let maxAllowedTime = new Date(startTime.getTime() + minutesToAdd*60000);
        let validationStatus : string = FileStatus.VALIDATION_INITIATED;
        let testObj: TestModel | null = null;
        let retry = 5;
        while(maxAllowedTime>(new Date()) && !Util.isTerminalFileStatus(validationStatus)){
            await Util.sleep(5000);
            try{
                testObj = await apiService.getTestAPI();
                let inputScriptFileInfo: FileInfo | undefined
                testObj && (inputScriptFileInfo = testObj.kind == TestKind.URL ? testObj.inputArtifacts?.urlTestConfigFileInfo : testObj.inputArtifacts?.testScriptFileInfo);
                validationStatus = inputScriptFileInfo?.validationStatus ?? validationStatus;
            }
            catch(e) {
                retry--;
                if(retry == 0){
                    throw new Error("Unable to validate the test plan. Please retry. Failed with error :" + e);
                }
            }
        }
        return testObj;
    }