mirror of
https://github.com/sasjs/adapter.git
synced 2026-01-18 01:20:05 +00:00
test(RequestClient): fixed to use actual axios
This commit is contained in:
@@ -12,7 +12,11 @@ import { SASjsRequest } from '../types'
|
|||||||
import { parseWeboutResponse } from '../utils/parseWeboutResponse'
|
import { parseWeboutResponse } from '../utils/parseWeboutResponse'
|
||||||
import { prefixMessage } from '@sasjs/utils/error'
|
import { prefixMessage } from '@sasjs/utils/error'
|
||||||
import { SAS9AuthError } from '../types/errors/SAS9AuthError'
|
import { SAS9AuthError } from '../types/errors/SAS9AuthError'
|
||||||
import { parseGeneratedCode, parseSourceCode } from '../utils'
|
import {
|
||||||
|
parseGeneratedCode,
|
||||||
|
parseSourceCode,
|
||||||
|
createAxiosInstance
|
||||||
|
} from '../utils'
|
||||||
import { HttpsAgent } from '../types/HttpsAgent'
|
import { HttpsAgent } from '../types/HttpsAgent'
|
||||||
|
|
||||||
export interface HttpClient {
|
export interface HttpClient {
|
||||||
@@ -519,7 +523,7 @@ export class RequestClient implements HttpClient {
|
|||||||
const https = require('https')
|
const https = require('https')
|
||||||
const { selfSigned, clientCA, allowInsecure } = httpsAgentConfiguration
|
const { selfSigned, clientCA, allowInsecure } = httpsAgentConfiguration
|
||||||
|
|
||||||
const httpsAgentConfig = selfSigned
|
const httpsAgentOptions = selfSigned
|
||||||
? { ca: selfSigned.ca }
|
? { ca: selfSigned.ca }
|
||||||
: clientCA
|
: clientCA
|
||||||
? { key: clientCA.key, cert: clientCA.cert, requestCert: true }
|
? { key: clientCA.key, cert: clientCA.cert, requestCert: true }
|
||||||
@@ -527,17 +531,12 @@ export class RequestClient implements HttpClient {
|
|||||||
? { rejectUnauthorized: !allowInsecure }
|
? { rejectUnauthorized: !allowInsecure }
|
||||||
: undefined
|
: undefined
|
||||||
|
|
||||||
if (httpsAgentConfig && https.Agent) {
|
const httpsAgent =
|
||||||
const httpsAgent = new https.Agent(httpsAgentConfig)
|
httpsAgentOptions && https.Agent
|
||||||
this.httpClient = axios.create({
|
? new https.Agent(httpsAgentOptions)
|
||||||
baseURL: baseUrl,
|
: undefined
|
||||||
httpsAgent
|
|
||||||
})
|
this.httpClient = createAxiosInstance(baseUrl, httpsAgent)
|
||||||
} else {
|
|
||||||
this.httpClient = axios.create({
|
|
||||||
baseURL: baseUrl
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
this.httpClient.defaults.validateStatus = (status) =>
|
this.httpClient.defaults.validateStatus = (status) =>
|
||||||
status >= 200 && status < 305
|
status >= 200 && status < 305
|
||||||
|
|||||||
@@ -4,6 +4,15 @@ import * as https from 'https'
|
|||||||
import { app, mockedAuthResponse } from './SAS_server_app'
|
import { app, mockedAuthResponse } from './SAS_server_app'
|
||||||
import { ServerType } from '@sasjs/utils'
|
import { ServerType } from '@sasjs/utils'
|
||||||
import SASjs from '../SASjs'
|
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 PORT = 8000
|
||||||
const SERVER_URL = `https://localhost:${PORT}/`
|
const SERVER_URL = `https://localhost:${PORT}/`
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import { SessionManager } from '../SessionManager'
|
import { SessionManager } from '../SessionManager'
|
||||||
import { RequestClient } from '../request/RequestClient'
|
import { RequestClient } from '../request/RequestClient'
|
||||||
import { NoSessionStateError } from '../types/errors'
|
|
||||||
import * as dotenv from 'dotenv'
|
import * as dotenv from 'dotenv'
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
import { Logger, LogLevel } from '@sasjs/utils'
|
import { Logger, LogLevel } from '@sasjs/utils'
|
||||||
|
|||||||
7
src/utils/createAxiosInstance.ts
Normal file
7
src/utils/createAxiosInstance.ts
Normal 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 })
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
export * from './asyncForEach'
|
export * from './asyncForEach'
|
||||||
export * from './compareTimestamps'
|
export * from './compareTimestamps'
|
||||||
export * from './convertToCsv'
|
export * from './convertToCsv'
|
||||||
|
export * from './createAxiosInstance'
|
||||||
export * from './delay'
|
export * from './delay'
|
||||||
export * from './isNode'
|
export * from './isNode'
|
||||||
export * from './isRelativePath'
|
export * from './isRelativePath'
|
||||||
|
|||||||
Reference in New Issue
Block a user