1
0
mirror of https://github.com/sasjs/adapter.git synced 2026-01-03 10:40:06 +00:00

test(RequestClient): fixed to use actual axios

This commit is contained in:
Saad Jutt
2021-10-01 15:42:04 +05:00
parent e975e7de97
commit 7f590c35da
5 changed files with 29 additions and 14 deletions

View File

@@ -12,7 +12,11 @@ import { SASjsRequest } from '../types'
import { parseWeboutResponse } from '../utils/parseWeboutResponse'
import { prefixMessage } from '@sasjs/utils/error'
import { SAS9AuthError } from '../types/errors/SAS9AuthError'
import { parseGeneratedCode, parseSourceCode } from '../utils'
import {
parseGeneratedCode,
parseSourceCode,
createAxiosInstance
} from '../utils'
import { HttpsAgent } from '../types/HttpsAgent'
export interface HttpClient {
@@ -519,7 +523,7 @@ export class RequestClient implements HttpClient {
const https = require('https')
const { selfSigned, clientCA, allowInsecure } = httpsAgentConfiguration
const httpsAgentConfig = selfSigned
const httpsAgentOptions = selfSigned
? { ca: selfSigned.ca }
: clientCA
? { key: clientCA.key, cert: clientCA.cert, requestCert: true }
@@ -527,17 +531,12 @@ export class RequestClient implements HttpClient {
? { rejectUnauthorized: !allowInsecure }
: undefined
if (httpsAgentConfig && https.Agent) {
const httpsAgent = new https.Agent(httpsAgentConfig)
this.httpClient = axios.create({
baseURL: baseUrl,
httpsAgent
})
} else {
this.httpClient = axios.create({
baseURL: baseUrl
})
}
const httpsAgent =
httpsAgentOptions && https.Agent
? new https.Agent(httpsAgentOptions)
: undefined
this.httpClient = createAxiosInstance(baseUrl, httpsAgent)
this.httpClient.defaults.validateStatus = (status) =>
status >= 200 && status < 305

View File

@@ -4,6 +4,15 @@ import * as https from 'https'
import { app, mockedAuthResponse } from './SAS_server_app'
import { ServerType } from '@sasjs/utils'
import SASjs from '../SASjs'
import * as axiosModules from '../utils/createAxiosInstance'
const axiosActual = jest.requireActual('axios')
jest
.spyOn(axiosModules, 'createAxiosInstance')
.mockImplementation((baseURL: string, httpsAgent?: https.Agent) =>
axiosActual.create({ baseURL, httpsAgent })
)
const PORT = 8000
const SERVER_URL = `https://localhost:${PORT}/`

View File

@@ -1,6 +1,5 @@
import { SessionManager } from '../SessionManager'
import { RequestClient } from '../request/RequestClient'
import { NoSessionStateError } from '../types/errors'
import * as dotenv from 'dotenv'
import axios from 'axios'
import { Logger, LogLevel } from '@sasjs/utils'

View File

@@ -0,0 +1,7 @@
import axios from 'axios'
import * as https from 'https'
export const createAxiosInstance = (
baseURL: string,
httpsAgent?: https.Agent
) => axios.create({ baseURL, httpsAgent })

View File

@@ -1,6 +1,7 @@
export * from './asyncForEach'
export * from './compareTimestamps'
export * from './convertToCsv'
export * from './createAxiosInstance'
export * from './delay'
export * from './isNode'
export * from './isRelativePath'