diff --git a/sasjs-tests/package-lock.json b/sasjs-tests/package-lock.json index 0a6980a..f8ba25d 100644 --- a/sasjs-tests/package-lock.json +++ b/sasjs-tests/package-lock.json @@ -1357,9 +1357,9 @@ "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" }, "@sasjs/adapter": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/@sasjs/adapter/-/adapter-1.12.0.tgz", - "integrity": "sha512-0uGQH9ynomWzdBaEujEtcR38q6V7LCgG0mrb1Wellv6cC/IHD3j6WfeZZAgtiMPeOSJjbCDBOlVnzC2TlBqJFw==", + "version": "1.18.3", + "resolved": "https://registry.npmjs.org/@sasjs/adapter/-/adapter-1.18.3.tgz", + "integrity": "sha512-wzDFJRyt2dXFeQP+JzqRGunYUbujrAbU/Jc4IWg5URsCkGAzwsNl/4G0xJVbqOTy1MvoZ431rfCnvhkUlg7D3Q==", "requires": { "es6-promise": "^4.2.8", "form-data": "^3.0.0", diff --git a/sasjs-tests/package.json b/sasjs-tests/package.json index 40e8293..cc28aef 100644 --- a/sasjs-tests/package.json +++ b/sasjs-tests/package.json @@ -4,7 +4,7 @@ "homepage": ".", "private": true, "dependencies": { - "@sasjs/adapter": "^1.12.0", + "@sasjs/adapter": "^1.18.2", "@sasjs/test-framework": "^1.4.0", "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^9.5.0", diff --git a/sasjs-tests/src/App.test.js b/sasjs-tests/src/App.test.js deleted file mode 100644 index 352d7b8..0000000 --- a/sasjs-tests/src/App.test.js +++ /dev/null @@ -1,9 +0,0 @@ -import React from "react"; -import { render } from "@testing-library/react"; -import App from "./App"; - -test("renders learn react link", () => { - const { getByText } = render(); - const linkElement = getByText(/learn react/i); - expect(linkElement).toBeInTheDocument(); -}); diff --git a/sasjs-tests/src/testSuites/Basic.ts b/sasjs-tests/src/testSuites/Basic.ts index b045874..a7f87a9 100644 --- a/sasjs-tests/src/testSuites/Basic.ts +++ b/sasjs-tests/src/testSuites/Basic.ts @@ -3,12 +3,12 @@ import { TestSuite } from "@sasjs/test-framework"; const defaultConfig: SASjsConfig = { serverUrl: window.location.origin, - pathSAS9: "/SASStoredProcess/do", - pathSASViya: "/SASJobExecution", - appLoc: "/Public/seedapp", + pathSAS9: '/SASStoredProcess/do', + pathSASViya: '/SASJobExecution', + appLoc: '/Public/seedapp', serverType: ServerType.SASViya, - debug: true, - contextName: "SAS Job Execution compute context", + debug: false, + contextName: 'SAS Job Execution compute context', useComputeApi: false }; @@ -57,6 +57,7 @@ export const basicTests = ( }, assertion: (sasjsInstance: SASjs) => { const sasjsConfig = sasjsInstance.getSasjsConfig(); + return ( sasjsConfig.serverUrl === defaultConfig.serverUrl && sasjsConfig.pathSAS9 === defaultConfig.pathSAS9 && diff --git a/sasjs-tests/src/testSuites/RequestData.ts b/sasjs-tests/src/testSuites/RequestData.ts index b6f17ae..df05a3d 100644 --- a/sasjs-tests/src/testSuites/RequestData.ts +++ b/sasjs-tests/src/testSuites/RequestData.ts @@ -88,7 +88,7 @@ export const sendArrTests = (adapter: SASjs): TestSuite => ({ return adapter.request("common/sendArr", data).catch((e) => e); }, assertion: (error: any) => { - return !!error && !!error.body && !!error.body.message; + return !!error && !!error.error && !!error.error.message; } }, { @@ -185,7 +185,7 @@ export const sendObjTests = (adapter: SASjs): TestSuite => ({ }; return adapter.request("common/sendObj", invalidData).catch((e) => e); }, - assertion: (error: any) => !!error && !!error.body && !!error.body.message + assertion: (error: any) => !!error && !!error.error && !!error.error.message }, { title: "Single string value", @@ -219,7 +219,7 @@ export const sendObjTests = (adapter: SASjs): TestSuite => ({ .catch((e) => e); }, assertion: (error: any) => { - return !!error && !!error.body && !!error.body.message; + return !!error && !!error.error && !!error.error.message; } }, { diff --git a/sasjs-tests/src/testSuites/SasjsRequests.ts b/sasjs-tests/src/testSuites/SasjsRequests.ts index d212b23..4aa063b 100644 --- a/sasjs-tests/src/testSuites/SasjsRequests.ts +++ b/sasjs-tests/src/testSuites/SasjsRequests.ts @@ -23,22 +23,24 @@ export const sasjsRequestTests = (adapter: SASjs): TestSuite => ({ }, { title: "Make error and capture log", - description: "Should make an error and capture log", + description: "Should make an error and capture log, in the same time it is testing if debug override is working", test: async () => { return new Promise(async (resolve, reject) => { adapter - .request("common/makeErr", data) + .request("common/makeErr", data, {debug: true}) .then((res) => { //no action here, this request must throw error }) .catch((err) => { let sasRequests = adapter.getSasRequests(); - let makeErrRequest = + let makeErrRequest: any = sasRequests.find((req) => req.serviceLink.includes("makeErr") ) || null; - resolve(!!makeErrRequest); + if (!makeErrRequest) resolve(false) + + resolve(!!(makeErrRequest.logFile && makeErrRequest.logFile.length > 0)); }); }); }, diff --git a/src/SASViyaApiClient.ts b/src/SASViyaApiClient.ts index 71ad469..dcf1dd5 100644 --- a/src/SASViyaApiClient.ts +++ b/src/SASViyaApiClient.ts @@ -426,10 +426,10 @@ export class SASViyaApiClient { * @param linesOfCode - an array of code lines to execute. * @param contextName - the context to execute the code in. * @param accessToken - an access token for an authorized user. - * @param sessionId - optional session ID to reuse. * @param data - execution data. * @param debug - when set to true, the log will be returned. * @param expectWebout - when set to true, the automatic _webout fileref will be checked for content, and that content returned. This fileref is used when the Job contains a SASjs web request (as opposed to executing arbitrary SAS code). + * @param waitForResult - when set to true, function will return the session */ public async executeScript( jobPath: string, @@ -437,6 +437,7 @@ export class SASViyaApiClient { contextName: string, accessToken?: string, data = null, + debug: boolean = false, expectWebout = false, waitForResult = true ): Promise { @@ -467,7 +468,7 @@ export class SASViyaApiClient { _OMITTEXTLOG: true } - if (this.debug) { + if (debug) { jobArguments['_OMITTEXTLOG'] = false jobArguments['_OMITSESSIONRESULTS'] = false jobArguments['_DEBUG'] = 131 @@ -535,7 +536,7 @@ export class SASViyaApiClient { return session } - if (this.debug) { + if (debug) { console.log(`Job has been submitted for '${fileName}'.`) console.log( `You can monitor the job progress at '${this.serverUrl}${ @@ -558,7 +559,7 @@ export class SASViyaApiClient { const logLink = currentJob.links.find((l) => l.rel === 'log') - if (this.debug && logLink) { + if (debug && logLink) { log = await this.request( `${this.serverUrl}${logLink.href}/content?limit=10000`, { @@ -606,12 +607,10 @@ export class SASViyaApiClient { throw err }) - return Promise.reject( - new ErrorResponse('Job execution failed.', { - status: 500, - body: log - }) - ) + return Promise.reject({ + status: 500, + log: log + }) } } return { @@ -635,6 +634,7 @@ export class SASViyaApiClient { contextName, accessToken, data, + debug, false, true ) @@ -955,6 +955,7 @@ export class SASViyaApiClient { public async executeComputeJob( sasJob: string, contextName: string, + debug?: boolean, data?: any, accessToken?: string, waitForResult = true, @@ -1041,6 +1042,7 @@ export class SASViyaApiClient { contextName, accessToken, data, + debug, expectWebout, waitForResult ) diff --git a/src/SASjs.ts b/src/SASjs.ts index 27e0489..494f875 100644 --- a/src/SASjs.ts +++ b/src/SASjs.ts @@ -734,6 +734,7 @@ export default class SASjs { return this.sasViyaApiClient?.executeComputeJob( sasJob, config.contextName, + config.debug, data, accessToken, !!waitForResult, @@ -766,6 +767,7 @@ export default class SASjs { ?.executeComputeJob( sasJob, config.contextName, + config.debug, data, accessToken, waitForResult, @@ -895,8 +897,8 @@ export default class SASjs { return responseJson }) - .catch(async (e) => { - if (needsRetry(JSON.stringify(e))) { + .catch(async (response) => { + if (needsRetry(JSON.stringify(response))) { if (this.retryCountJeseApi < requestRetryLimit) { let retryResponse = await this.executeJobViaJesApi( sasJob, @@ -917,11 +919,11 @@ export default class SASjs { } } - if (e?.log) { - this.appendSasjsRequest(e.log, sasJob, null) + if (response?.log) { + this.appendSasjsRequest(response.log, sasJob, null) } - if (e.toString().includes('Job was not found')) { + if (response.toString().includes('Job was not found')) { reject( new ErrorResponse('Service not found on the server.', { sasJob: sasJob @@ -929,7 +931,7 @@ export default class SASjs { ) } - reject(new ErrorResponse('Job execution failed.', e)) + reject(new ErrorResponse('Job execution failed.', response)) }) ) }