async getTestAPI()

in src/services/APIService.ts [49:76]


    async getTestAPI(allow404 : boolean = false): Promise<TestModel | null> {
        let urlSuffix = "tests/"+this.testId+"?api-version="+ ApiVersionConstants.latestVersion;
        let url = new URL(urlSuffix, this.baseURL);
        let header = await this.authContext.getDataPlaneHeader(FetchCallType.get);
        let testResult = await FetchUtil.httpClientRetries(url.toString(),header,FetchCallType.get,3,"");

        if(testResult.message.statusCode == 200) {
            let testObj: TestModel = await Util.getResultObj(testResult);
            if(testObj == null){
                throw new Error(Util.errorCorrection(testResult));
            }
            return testObj;
        } else if (testResult.message.statusCode == 404 && allow404) {
            return null;
        }

        if(testResult.message.statusCode == 401 || testResult.message.statusCode == 403){
            var message = "Service Principal does not have sufficient permissions. Please assign " 
            +"the Load Test Contributor role to the service principal. Follow the steps listed at "
            +"https://learn.microsoft.com/en-us/azure/load-testing/how-to-configure-load-test-cicd?tabs=github#configure-the-github-actions-workflow-to-run-a-load-test";

            throw new Error(message);
        }

        let errorObj:any=await Util.getResultObj(testResult);
        let err = errorObj?.error?.message ? errorObj?.error?.message : Util.errorCorrection(testResult);
        throw new Error(err);
    }