deepv-code 1.0.182 → 1.0.185
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/dvcode.js +757 -753
- package/package.json +1 -1
- package/bundle/assets/help/README.md +0 -113
- package/bundle/assets/sounds/README.md +0 -74
- package/bundle/node_modules/undici/LICENSE +0 -21
- package/bundle/node_modules/undici/README.md +0 -472
- package/bundle/node_modules/undici/docs/docs/api/Agent.md +0 -83
- package/bundle/node_modules/undici/docs/docs/api/BalancedPool.md +0 -99
- package/bundle/node_modules/undici/docs/docs/api/CacheStorage.md +0 -30
- package/bundle/node_modules/undici/docs/docs/api/CacheStore.md +0 -151
- package/bundle/node_modules/undici/docs/docs/api/Client.md +0 -281
- package/bundle/node_modules/undici/docs/docs/api/ClientStats.md +0 -27
- package/bundle/node_modules/undici/docs/docs/api/Connector.md +0 -115
- package/bundle/node_modules/undici/docs/docs/api/ContentType.md +0 -57
- package/bundle/node_modules/undici/docs/docs/api/Cookies.md +0 -101
- package/bundle/node_modules/undici/docs/docs/api/Debug.md +0 -62
- package/bundle/node_modules/undici/docs/docs/api/DiagnosticsChannel.md +0 -204
- package/bundle/node_modules/undici/docs/docs/api/Dispatcher.md +0 -1200
- package/bundle/node_modules/undici/docs/docs/api/EnvHttpProxyAgent.md +0 -159
- package/bundle/node_modules/undici/docs/docs/api/Errors.md +0 -49
- package/bundle/node_modules/undici/docs/docs/api/EventSource.md +0 -45
- package/bundle/node_modules/undici/docs/docs/api/Fetch.md +0 -52
- package/bundle/node_modules/undici/docs/docs/api/H2CClient.md +0 -262
- package/bundle/node_modules/undici/docs/docs/api/MockAgent.md +0 -603
- package/bundle/node_modules/undici/docs/docs/api/MockCallHistory.md +0 -197
- package/bundle/node_modules/undici/docs/docs/api/MockCallHistoryLog.md +0 -43
- package/bundle/node_modules/undici/docs/docs/api/MockClient.md +0 -77
- package/bundle/node_modules/undici/docs/docs/api/MockErrors.md +0 -12
- package/bundle/node_modules/undici/docs/docs/api/MockPool.md +0 -548
- package/bundle/node_modules/undici/docs/docs/api/Pool.md +0 -84
- package/bundle/node_modules/undici/docs/docs/api/PoolStats.md +0 -35
- package/bundle/node_modules/undici/docs/docs/api/ProxyAgent.md +0 -227
- package/bundle/node_modules/undici/docs/docs/api/RedirectHandler.md +0 -96
- package/bundle/node_modules/undici/docs/docs/api/RetryAgent.md +0 -45
- package/bundle/node_modules/undici/docs/docs/api/RetryHandler.md +0 -117
- package/bundle/node_modules/undici/docs/docs/api/Util.md +0 -25
- package/bundle/node_modules/undici/docs/docs/api/WebSocket.md +0 -85
- package/bundle/node_modules/undici/docs/docs/api/api-lifecycle.md +0 -91
- package/bundle/node_modules/undici/docs/docs/best-practices/client-certificate.md +0 -64
- package/bundle/node_modules/undici/docs/docs/best-practices/mocking-request.md +0 -190
- package/bundle/node_modules/undici/docs/docs/best-practices/proxy.md +0 -127
- package/bundle/node_modules/undici/docs/docs/best-practices/writing-tests.md +0 -20
- package/bundle/node_modules/undici/index-fetch.js +0 -35
- package/bundle/node_modules/undici/index.d.ts +0 -3
- package/bundle/node_modules/undici/index.js +0 -183
- package/bundle/node_modules/undici/lib/api/abort-signal.js +0 -59
- package/bundle/node_modules/undici/lib/api/api-connect.js +0 -110
- package/bundle/node_modules/undici/lib/api/api-pipeline.js +0 -252
- package/bundle/node_modules/undici/lib/api/api-request.js +0 -199
- package/bundle/node_modules/undici/lib/api/api-stream.js +0 -209
- package/bundle/node_modules/undici/lib/api/api-upgrade.js +0 -110
- package/bundle/node_modules/undici/lib/api/index.js +0 -7
- package/bundle/node_modules/undici/lib/api/readable.js +0 -558
- package/bundle/node_modules/undici/lib/api/util.js +0 -95
- package/bundle/node_modules/undici/lib/cache/memory-cache-store.js +0 -234
- package/bundle/node_modules/undici/lib/cache/sqlite-cache-store.js +0 -461
- package/bundle/node_modules/undici/lib/core/connect.js +0 -164
- package/bundle/node_modules/undici/lib/core/constants.js +0 -143
- package/bundle/node_modules/undici/lib/core/diagnostics.js +0 -196
- package/bundle/node_modules/undici/lib/core/errors.js +0 -244
- package/bundle/node_modules/undici/lib/core/request.js +0 -397
- package/bundle/node_modules/undici/lib/core/symbols.js +0 -68
- package/bundle/node_modules/undici/lib/core/tree.js +0 -160
- package/bundle/node_modules/undici/lib/core/util.js +0 -988
- package/bundle/node_modules/undici/lib/dispatcher/agent.js +0 -135
- package/bundle/node_modules/undici/lib/dispatcher/balanced-pool.js +0 -206
- package/bundle/node_modules/undici/lib/dispatcher/client-h1.js +0 -1615
- package/bundle/node_modules/undici/lib/dispatcher/client-h2.js +0 -798
- package/bundle/node_modules/undici/lib/dispatcher/client.js +0 -614
- package/bundle/node_modules/undici/lib/dispatcher/dispatcher-base.js +0 -161
- package/bundle/node_modules/undici/lib/dispatcher/dispatcher.js +0 -48
- package/bundle/node_modules/undici/lib/dispatcher/env-http-proxy-agent.js +0 -151
- package/bundle/node_modules/undici/lib/dispatcher/fixed-queue.js +0 -159
- package/bundle/node_modules/undici/lib/dispatcher/h2c-client.js +0 -122
- package/bundle/node_modules/undici/lib/dispatcher/pool-base.js +0 -191
- package/bundle/node_modules/undici/lib/dispatcher/pool.js +0 -118
- package/bundle/node_modules/undici/lib/dispatcher/proxy-agent.js +0 -275
- package/bundle/node_modules/undici/lib/dispatcher/retry-agent.js +0 -35
- package/bundle/node_modules/undici/lib/global.js +0 -32
- package/bundle/node_modules/undici/lib/handler/cache-handler.js +0 -448
- package/bundle/node_modules/undici/lib/handler/cache-revalidation-handler.js +0 -124
- package/bundle/node_modules/undici/lib/handler/decorator-handler.js +0 -67
- package/bundle/node_modules/undici/lib/handler/redirect-handler.js +0 -227
- package/bundle/node_modules/undici/lib/handler/retry-handler.js +0 -342
- package/bundle/node_modules/undici/lib/handler/unwrap-handler.js +0 -96
- package/bundle/node_modules/undici/lib/handler/wrap-handler.js +0 -95
- package/bundle/node_modules/undici/lib/interceptor/cache.js +0 -372
- package/bundle/node_modules/undici/lib/interceptor/dns.js +0 -432
- package/bundle/node_modules/undici/lib/interceptor/dump.js +0 -111
- package/bundle/node_modules/undici/lib/interceptor/redirect.js +0 -21
- package/bundle/node_modules/undici/lib/interceptor/response-error.js +0 -95
- package/bundle/node_modules/undici/lib/interceptor/retry.js +0 -19
- package/bundle/node_modules/undici/lib/llhttp/.gitkeep +0 -0
- package/bundle/node_modules/undici/lib/llhttp/constants.d.ts +0 -97
- package/bundle/node_modules/undici/lib/llhttp/constants.js +0 -498
- package/bundle/node_modules/undici/lib/llhttp/constants.js.map +0 -1
- package/bundle/node_modules/undici/lib/llhttp/llhttp-wasm.js +0 -15
- package/bundle/node_modules/undici/lib/llhttp/llhttp_simd-wasm.js +0 -15
- package/bundle/node_modules/undici/lib/llhttp/utils.d.ts +0 -2
- package/bundle/node_modules/undici/lib/llhttp/utils.js +0 -15
- package/bundle/node_modules/undici/lib/llhttp/utils.js.map +0 -1
- package/bundle/node_modules/undici/lib/mock/mock-agent.js +0 -224
- package/bundle/node_modules/undici/lib/mock/mock-call-history.js +0 -248
- package/bundle/node_modules/undici/lib/mock/mock-client.js +0 -64
- package/bundle/node_modules/undici/lib/mock/mock-errors.js +0 -19
- package/bundle/node_modules/undici/lib/mock/mock-interceptor.js +0 -209
- package/bundle/node_modules/undici/lib/mock/mock-pool.js +0 -64
- package/bundle/node_modules/undici/lib/mock/mock-symbols.js +0 -31
- package/bundle/node_modules/undici/lib/mock/mock-utils.js +0 -433
- package/bundle/node_modules/undici/lib/mock/pending-interceptors-formatter.js +0 -43
- package/bundle/node_modules/undici/lib/util/cache.js +0 -368
- package/bundle/node_modules/undici/lib/util/date.js +0 -259
- package/bundle/node_modules/undici/lib/util/stats.js +0 -32
- package/bundle/node_modules/undici/lib/util/timers.js +0 -423
- package/bundle/node_modules/undici/lib/web/cache/cache.js +0 -862
- package/bundle/node_modules/undici/lib/web/cache/cachestorage.js +0 -152
- package/bundle/node_modules/undici/lib/web/cache/util.js +0 -45
- package/bundle/node_modules/undici/lib/web/cookies/constants.js +0 -12
- package/bundle/node_modules/undici/lib/web/cookies/index.js +0 -199
- package/bundle/node_modules/undici/lib/web/cookies/parse.js +0 -322
- package/bundle/node_modules/undici/lib/web/cookies/util.js +0 -282
- package/bundle/node_modules/undici/lib/web/eventsource/eventsource-stream.js +0 -399
- package/bundle/node_modules/undici/lib/web/eventsource/eventsource.js +0 -484
- package/bundle/node_modules/undici/lib/web/eventsource/util.js +0 -37
- package/bundle/node_modules/undici/lib/web/fetch/LICENSE +0 -21
- package/bundle/node_modules/undici/lib/web/fetch/body.js +0 -532
- package/bundle/node_modules/undici/lib/web/fetch/constants.js +0 -131
- package/bundle/node_modules/undici/lib/web/fetch/data-url.js +0 -744
- package/bundle/node_modules/undici/lib/web/fetch/dispatcher-weakref.js +0 -46
- package/bundle/node_modules/undici/lib/web/fetch/formdata-parser.js +0 -501
- package/bundle/node_modules/undici/lib/web/fetch/formdata.js +0 -263
- package/bundle/node_modules/undici/lib/web/fetch/global.js +0 -40
- package/bundle/node_modules/undici/lib/web/fetch/headers.js +0 -719
- package/bundle/node_modules/undici/lib/web/fetch/index.js +0 -2258
- package/bundle/node_modules/undici/lib/web/fetch/request.js +0 -1099
- package/bundle/node_modules/undici/lib/web/fetch/response.js +0 -636
- package/bundle/node_modules/undici/lib/web/fetch/util.js +0 -1782
- package/bundle/node_modules/undici/lib/web/fetch/webidl.js +0 -740
- package/bundle/node_modules/undici/lib/web/websocket/connection.js +0 -325
- package/bundle/node_modules/undici/lib/web/websocket/constants.js +0 -126
- package/bundle/node_modules/undici/lib/web/websocket/events.js +0 -331
- package/bundle/node_modules/undici/lib/web/websocket/frame.js +0 -138
- package/bundle/node_modules/undici/lib/web/websocket/permessage-deflate.js +0 -70
- package/bundle/node_modules/undici/lib/web/websocket/receiver.js +0 -454
- package/bundle/node_modules/undici/lib/web/websocket/sender.js +0 -109
- package/bundle/node_modules/undici/lib/web/websocket/stream/websocketerror.js +0 -83
- package/bundle/node_modules/undici/lib/web/websocket/stream/websocketstream.js +0 -485
- package/bundle/node_modules/undici/lib/web/websocket/util.js +0 -338
- package/bundle/node_modules/undici/lib/web/websocket/websocket.js +0 -686
- package/bundle/node_modules/undici/package.json +0 -149
- package/bundle/node_modules/undici/scripts/strip-comments.js +0 -10
- package/bundle/node_modules/undici/types/README.md +0 -6
- package/bundle/node_modules/undici/types/agent.d.ts +0 -35
- package/bundle/node_modules/undici/types/api.d.ts +0 -43
- package/bundle/node_modules/undici/types/balanced-pool.d.ts +0 -29
- package/bundle/node_modules/undici/types/cache-interceptor.d.ts +0 -172
- package/bundle/node_modules/undici/types/cache.d.ts +0 -36
- package/bundle/node_modules/undici/types/client-stats.d.ts +0 -15
- package/bundle/node_modules/undici/types/client.d.ts +0 -110
- package/bundle/node_modules/undici/types/connector.d.ts +0 -34
- package/bundle/node_modules/undici/types/content-type.d.ts +0 -21
- package/bundle/node_modules/undici/types/cookies.d.ts +0 -30
- package/bundle/node_modules/undici/types/diagnostics-channel.d.ts +0 -66
- package/bundle/node_modules/undici/types/dispatcher.d.ts +0 -281
- package/bundle/node_modules/undici/types/env-http-proxy-agent.d.ts +0 -21
- package/bundle/node_modules/undici/types/errors.d.ts +0 -171
- package/bundle/node_modules/undici/types/eventsource.d.ts +0 -61
- package/bundle/node_modules/undici/types/fetch.d.ts +0 -210
- package/bundle/node_modules/undici/types/formdata.d.ts +0 -108
- package/bundle/node_modules/undici/types/global-dispatcher.d.ts +0 -9
- package/bundle/node_modules/undici/types/global-origin.d.ts +0 -7
- package/bundle/node_modules/undici/types/h2c-client.d.ts +0 -75
- package/bundle/node_modules/undici/types/handlers.d.ts +0 -15
- package/bundle/node_modules/undici/types/header.d.ts +0 -160
- package/bundle/node_modules/undici/types/index.d.ts +0 -75
- package/bundle/node_modules/undici/types/interceptors.d.ts +0 -34
- package/bundle/node_modules/undici/types/mock-agent.d.ts +0 -68
- package/bundle/node_modules/undici/types/mock-call-history.d.ts +0 -111
- package/bundle/node_modules/undici/types/mock-client.d.ts +0 -25
- package/bundle/node_modules/undici/types/mock-errors.d.ts +0 -12
- package/bundle/node_modules/undici/types/mock-interceptor.d.ts +0 -93
- package/bundle/node_modules/undici/types/mock-pool.d.ts +0 -25
- package/bundle/node_modules/undici/types/patch.d.ts +0 -29
- package/bundle/node_modules/undici/types/pool-stats.d.ts +0 -19
- package/bundle/node_modules/undici/types/pool.d.ts +0 -41
- package/bundle/node_modules/undici/types/proxy-agent.d.ts +0 -29
- package/bundle/node_modules/undici/types/readable.d.ts +0 -68
- package/bundle/node_modules/undici/types/retry-agent.d.ts +0 -8
- package/bundle/node_modules/undici/types/retry-handler.d.ts +0 -116
- package/bundle/node_modules/undici/types/util.d.ts +0 -18
- package/bundle/node_modules/undici/types/utility.d.ts +0 -7
- package/bundle/node_modules/undici/types/webidl.d.ts +0 -266
- package/bundle/node_modules/undici/types/websocket.d.ts +0 -184
|
@@ -1,248 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const { kMockCallHistoryAddLog } = require('./mock-symbols')
|
|
4
|
-
const { InvalidArgumentError } = require('../core/errors')
|
|
5
|
-
|
|
6
|
-
function handleFilterCallsWithOptions (criteria, options, handler, store) {
|
|
7
|
-
switch (options.operator) {
|
|
8
|
-
case 'OR':
|
|
9
|
-
store.push(...handler(criteria))
|
|
10
|
-
|
|
11
|
-
return store
|
|
12
|
-
case 'AND':
|
|
13
|
-
return handler.call({ logs: store }, criteria)
|
|
14
|
-
default:
|
|
15
|
-
// guard -- should never happens because buildAndValidateFilterCallsOptions is called before
|
|
16
|
-
throw new InvalidArgumentError('options.operator must to be a case insensitive string equal to \'OR\' or \'AND\'')
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
function buildAndValidateFilterCallsOptions (options = {}) {
|
|
21
|
-
const finalOptions = {}
|
|
22
|
-
|
|
23
|
-
if ('operator' in options) {
|
|
24
|
-
if (typeof options.operator !== 'string' || (options.operator.toUpperCase() !== 'OR' && options.operator.toUpperCase() !== 'AND')) {
|
|
25
|
-
throw new InvalidArgumentError('options.operator must to be a case insensitive string equal to \'OR\' or \'AND\'')
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
return {
|
|
29
|
-
...finalOptions,
|
|
30
|
-
operator: options.operator.toUpperCase()
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
return finalOptions
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
function makeFilterCalls (parameterName) {
|
|
38
|
-
return (parameterValue) => {
|
|
39
|
-
if (typeof parameterValue === 'string' || parameterValue == null) {
|
|
40
|
-
return this.logs.filter((log) => {
|
|
41
|
-
return log[parameterName] === parameterValue
|
|
42
|
-
})
|
|
43
|
-
}
|
|
44
|
-
if (parameterValue instanceof RegExp) {
|
|
45
|
-
return this.logs.filter((log) => {
|
|
46
|
-
return parameterValue.test(log[parameterName])
|
|
47
|
-
})
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
throw new InvalidArgumentError(`${parameterName} parameter should be one of string, regexp, undefined or null`)
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
function computeUrlWithMaybeSearchParameters (requestInit) {
|
|
54
|
-
// path can contains query url parameters
|
|
55
|
-
// or query can contains query url parameters
|
|
56
|
-
try {
|
|
57
|
-
const url = new URL(requestInit.path, requestInit.origin)
|
|
58
|
-
|
|
59
|
-
// requestInit.path contains query url parameters
|
|
60
|
-
// requestInit.query is then undefined
|
|
61
|
-
if (url.search.length !== 0) {
|
|
62
|
-
return url
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
// requestInit.query can be populated here
|
|
66
|
-
url.search = new URLSearchParams(requestInit.query).toString()
|
|
67
|
-
|
|
68
|
-
return url
|
|
69
|
-
} catch (error) {
|
|
70
|
-
throw new InvalidArgumentError('An error occurred when computing MockCallHistoryLog.url', { cause: error })
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
class MockCallHistoryLog {
|
|
75
|
-
constructor (requestInit = {}) {
|
|
76
|
-
this.body = requestInit.body
|
|
77
|
-
this.headers = requestInit.headers
|
|
78
|
-
this.method = requestInit.method
|
|
79
|
-
|
|
80
|
-
const url = computeUrlWithMaybeSearchParameters(requestInit)
|
|
81
|
-
|
|
82
|
-
this.fullUrl = url.toString()
|
|
83
|
-
this.origin = url.origin
|
|
84
|
-
this.path = url.pathname
|
|
85
|
-
this.searchParams = Object.fromEntries(url.searchParams)
|
|
86
|
-
this.protocol = url.protocol
|
|
87
|
-
this.host = url.host
|
|
88
|
-
this.port = url.port
|
|
89
|
-
this.hash = url.hash
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
toMap () {
|
|
93
|
-
return new Map([
|
|
94
|
-
['protocol', this.protocol],
|
|
95
|
-
['host', this.host],
|
|
96
|
-
['port', this.port],
|
|
97
|
-
['origin', this.origin],
|
|
98
|
-
['path', this.path],
|
|
99
|
-
['hash', this.hash],
|
|
100
|
-
['searchParams', this.searchParams],
|
|
101
|
-
['fullUrl', this.fullUrl],
|
|
102
|
-
['method', this.method],
|
|
103
|
-
['body', this.body],
|
|
104
|
-
['headers', this.headers]]
|
|
105
|
-
)
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
toString () {
|
|
109
|
-
const options = { betweenKeyValueSeparator: '->', betweenPairSeparator: '|' }
|
|
110
|
-
let result = ''
|
|
111
|
-
|
|
112
|
-
this.toMap().forEach((value, key) => {
|
|
113
|
-
if (typeof value === 'string' || value === undefined || value === null) {
|
|
114
|
-
result = `${result}${key}${options.betweenKeyValueSeparator}${value}${options.betweenPairSeparator}`
|
|
115
|
-
}
|
|
116
|
-
if ((typeof value === 'object' && value !== null) || Array.isArray(value)) {
|
|
117
|
-
result = `${result}${key}${options.betweenKeyValueSeparator}${JSON.stringify(value)}${options.betweenPairSeparator}`
|
|
118
|
-
}
|
|
119
|
-
// maybe miss something for non Record / Array headers and searchParams here
|
|
120
|
-
})
|
|
121
|
-
|
|
122
|
-
// delete last betweenPairSeparator
|
|
123
|
-
return result.slice(0, -1)
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
class MockCallHistory {
|
|
128
|
-
logs = []
|
|
129
|
-
|
|
130
|
-
calls () {
|
|
131
|
-
return this.logs
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
firstCall () {
|
|
135
|
-
return this.logs.at(0)
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
lastCall () {
|
|
139
|
-
return this.logs.at(-1)
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
nthCall (number) {
|
|
143
|
-
if (typeof number !== 'number') {
|
|
144
|
-
throw new InvalidArgumentError('nthCall must be called with a number')
|
|
145
|
-
}
|
|
146
|
-
if (!Number.isInteger(number)) {
|
|
147
|
-
throw new InvalidArgumentError('nthCall must be called with an integer')
|
|
148
|
-
}
|
|
149
|
-
if (Math.sign(number) !== 1) {
|
|
150
|
-
throw new InvalidArgumentError('nthCall must be called with a positive value. use firstCall or lastCall instead')
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
// non zero based index. this is more human readable
|
|
154
|
-
return this.logs.at(number - 1)
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
filterCalls (criteria, options) {
|
|
158
|
-
// perf
|
|
159
|
-
if (this.logs.length === 0) {
|
|
160
|
-
return this.logs
|
|
161
|
-
}
|
|
162
|
-
if (typeof criteria === 'function') {
|
|
163
|
-
return this.logs.filter(criteria)
|
|
164
|
-
}
|
|
165
|
-
if (criteria instanceof RegExp) {
|
|
166
|
-
return this.logs.filter((log) => {
|
|
167
|
-
return criteria.test(log.toString())
|
|
168
|
-
})
|
|
169
|
-
}
|
|
170
|
-
if (typeof criteria === 'object' && criteria !== null) {
|
|
171
|
-
// no criteria - returning all logs
|
|
172
|
-
if (Object.keys(criteria).length === 0) {
|
|
173
|
-
return this.logs
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
const finalOptions = { operator: 'OR', ...buildAndValidateFilterCallsOptions(options) }
|
|
177
|
-
|
|
178
|
-
let maybeDuplicatedLogsFiltered = []
|
|
179
|
-
if ('protocol' in criteria) {
|
|
180
|
-
maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.protocol, finalOptions, this.filterCallsByProtocol, maybeDuplicatedLogsFiltered)
|
|
181
|
-
}
|
|
182
|
-
if ('host' in criteria) {
|
|
183
|
-
maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.host, finalOptions, this.filterCallsByHost, maybeDuplicatedLogsFiltered)
|
|
184
|
-
}
|
|
185
|
-
if ('port' in criteria) {
|
|
186
|
-
maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.port, finalOptions, this.filterCallsByPort, maybeDuplicatedLogsFiltered)
|
|
187
|
-
}
|
|
188
|
-
if ('origin' in criteria) {
|
|
189
|
-
maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.origin, finalOptions, this.filterCallsByOrigin, maybeDuplicatedLogsFiltered)
|
|
190
|
-
}
|
|
191
|
-
if ('path' in criteria) {
|
|
192
|
-
maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.path, finalOptions, this.filterCallsByPath, maybeDuplicatedLogsFiltered)
|
|
193
|
-
}
|
|
194
|
-
if ('hash' in criteria) {
|
|
195
|
-
maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.hash, finalOptions, this.filterCallsByHash, maybeDuplicatedLogsFiltered)
|
|
196
|
-
}
|
|
197
|
-
if ('fullUrl' in criteria) {
|
|
198
|
-
maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.fullUrl, finalOptions, this.filterCallsByFullUrl, maybeDuplicatedLogsFiltered)
|
|
199
|
-
}
|
|
200
|
-
if ('method' in criteria) {
|
|
201
|
-
maybeDuplicatedLogsFiltered = handleFilterCallsWithOptions(criteria.method, finalOptions, this.filterCallsByMethod, maybeDuplicatedLogsFiltered)
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
const uniqLogsFiltered = [...new Set(maybeDuplicatedLogsFiltered)]
|
|
205
|
-
|
|
206
|
-
return uniqLogsFiltered
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
throw new InvalidArgumentError('criteria parameter should be one of function, regexp, or object')
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
filterCallsByProtocol = makeFilterCalls.call(this, 'protocol')
|
|
213
|
-
|
|
214
|
-
filterCallsByHost = makeFilterCalls.call(this, 'host')
|
|
215
|
-
|
|
216
|
-
filterCallsByPort = makeFilterCalls.call(this, 'port')
|
|
217
|
-
|
|
218
|
-
filterCallsByOrigin = makeFilterCalls.call(this, 'origin')
|
|
219
|
-
|
|
220
|
-
filterCallsByPath = makeFilterCalls.call(this, 'path')
|
|
221
|
-
|
|
222
|
-
filterCallsByHash = makeFilterCalls.call(this, 'hash')
|
|
223
|
-
|
|
224
|
-
filterCallsByFullUrl = makeFilterCalls.call(this, 'fullUrl')
|
|
225
|
-
|
|
226
|
-
filterCallsByMethod = makeFilterCalls.call(this, 'method')
|
|
227
|
-
|
|
228
|
-
clear () {
|
|
229
|
-
this.logs = []
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
[kMockCallHistoryAddLog] (requestInit) {
|
|
233
|
-
const log = new MockCallHistoryLog(requestInit)
|
|
234
|
-
|
|
235
|
-
this.logs.push(log)
|
|
236
|
-
|
|
237
|
-
return log
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
* [Symbol.iterator] () {
|
|
241
|
-
for (const log of this.calls()) {
|
|
242
|
-
yield log
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
module.exports.MockCallHistory = MockCallHistory
|
|
248
|
-
module.exports.MockCallHistoryLog = MockCallHistoryLog
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const { promisify } = require('node:util')
|
|
4
|
-
const Client = require('../dispatcher/client')
|
|
5
|
-
const { buildMockDispatch } = require('./mock-utils')
|
|
6
|
-
const {
|
|
7
|
-
kDispatches,
|
|
8
|
-
kMockAgent,
|
|
9
|
-
kClose,
|
|
10
|
-
kOriginalClose,
|
|
11
|
-
kOrigin,
|
|
12
|
-
kOriginalDispatch,
|
|
13
|
-
kConnected,
|
|
14
|
-
kIgnoreTrailingSlash
|
|
15
|
-
} = require('./mock-symbols')
|
|
16
|
-
const { MockInterceptor } = require('./mock-interceptor')
|
|
17
|
-
const Symbols = require('../core/symbols')
|
|
18
|
-
const { InvalidArgumentError } = require('../core/errors')
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* MockClient provides an API that extends the Client to influence the mockDispatches.
|
|
22
|
-
*/
|
|
23
|
-
class MockClient extends Client {
|
|
24
|
-
constructor (origin, opts) {
|
|
25
|
-
if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {
|
|
26
|
-
throw new InvalidArgumentError('Argument opts.agent must implement Agent')
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
super(origin, opts)
|
|
30
|
-
|
|
31
|
-
this[kMockAgent] = opts.agent
|
|
32
|
-
this[kOrigin] = origin
|
|
33
|
-
this[kIgnoreTrailingSlash] = opts.ignoreTrailingSlash ?? false
|
|
34
|
-
this[kDispatches] = []
|
|
35
|
-
this[kConnected] = 1
|
|
36
|
-
this[kOriginalDispatch] = this.dispatch
|
|
37
|
-
this[kOriginalClose] = this.close.bind(this)
|
|
38
|
-
|
|
39
|
-
this.dispatch = buildMockDispatch.call(this)
|
|
40
|
-
this.close = this[kClose]
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
get [Symbols.kConnected] () {
|
|
44
|
-
return this[kConnected]
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Sets up the base interceptor for mocking replies from undici.
|
|
49
|
-
*/
|
|
50
|
-
intercept (opts) {
|
|
51
|
-
return new MockInterceptor(
|
|
52
|
-
opts && { ignoreTrailingSlash: this[kIgnoreTrailingSlash], ...opts },
|
|
53
|
-
this[kDispatches]
|
|
54
|
-
)
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
async [kClose] () {
|
|
58
|
-
await promisify(this[kOriginalClose])()
|
|
59
|
-
this[kConnected] = 0
|
|
60
|
-
this[kMockAgent][Symbols.kClients].delete(this[kOrigin])
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
module.exports = MockClient
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const { UndiciError } = require('../core/errors')
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* The request does not match any registered mock dispatches.
|
|
7
|
-
*/
|
|
8
|
-
class MockNotMatchedError extends UndiciError {
|
|
9
|
-
constructor (message) {
|
|
10
|
-
super(message)
|
|
11
|
-
this.name = 'MockNotMatchedError'
|
|
12
|
-
this.message = message || 'The request does not match any registered mock dispatches'
|
|
13
|
-
this.code = 'UND_MOCK_ERR_MOCK_NOT_MATCHED'
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
module.exports = {
|
|
18
|
-
MockNotMatchedError
|
|
19
|
-
}
|
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const { getResponseData, buildKey, addMockDispatch } = require('./mock-utils')
|
|
4
|
-
const {
|
|
5
|
-
kDispatches,
|
|
6
|
-
kDispatchKey,
|
|
7
|
-
kDefaultHeaders,
|
|
8
|
-
kDefaultTrailers,
|
|
9
|
-
kContentLength,
|
|
10
|
-
kMockDispatch,
|
|
11
|
-
kIgnoreTrailingSlash
|
|
12
|
-
} = require('./mock-symbols')
|
|
13
|
-
const { InvalidArgumentError } = require('../core/errors')
|
|
14
|
-
const { serializePathWithQuery } = require('../core/util')
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Defines the scope API for an interceptor reply
|
|
18
|
-
*/
|
|
19
|
-
class MockScope {
|
|
20
|
-
constructor (mockDispatch) {
|
|
21
|
-
this[kMockDispatch] = mockDispatch
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Delay a reply by a set amount in ms.
|
|
26
|
-
*/
|
|
27
|
-
delay (waitInMs) {
|
|
28
|
-
if (typeof waitInMs !== 'number' || !Number.isInteger(waitInMs) || waitInMs <= 0) {
|
|
29
|
-
throw new InvalidArgumentError('waitInMs must be a valid integer > 0')
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
this[kMockDispatch].delay = waitInMs
|
|
33
|
-
return this
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* For a defined reply, never mark as consumed.
|
|
38
|
-
*/
|
|
39
|
-
persist () {
|
|
40
|
-
this[kMockDispatch].persist = true
|
|
41
|
-
return this
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Allow one to define a reply for a set amount of matching requests.
|
|
46
|
-
*/
|
|
47
|
-
times (repeatTimes) {
|
|
48
|
-
if (typeof repeatTimes !== 'number' || !Number.isInteger(repeatTimes) || repeatTimes <= 0) {
|
|
49
|
-
throw new InvalidArgumentError('repeatTimes must be a valid integer > 0')
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
this[kMockDispatch].times = repeatTimes
|
|
53
|
-
return this
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Defines an interceptor for a Mock
|
|
59
|
-
*/
|
|
60
|
-
class MockInterceptor {
|
|
61
|
-
constructor (opts, mockDispatches) {
|
|
62
|
-
if (typeof opts !== 'object') {
|
|
63
|
-
throw new InvalidArgumentError('opts must be an object')
|
|
64
|
-
}
|
|
65
|
-
if (typeof opts.path === 'undefined') {
|
|
66
|
-
throw new InvalidArgumentError('opts.path must be defined')
|
|
67
|
-
}
|
|
68
|
-
if (typeof opts.method === 'undefined') {
|
|
69
|
-
opts.method = 'GET'
|
|
70
|
-
}
|
|
71
|
-
// See https://github.com/nodejs/undici/issues/1245
|
|
72
|
-
// As per RFC 3986, clients are not supposed to send URI
|
|
73
|
-
// fragments to servers when they retrieve a document,
|
|
74
|
-
if (typeof opts.path === 'string') {
|
|
75
|
-
if (opts.query) {
|
|
76
|
-
opts.path = serializePathWithQuery(opts.path, opts.query)
|
|
77
|
-
} else {
|
|
78
|
-
// Matches https://github.com/nodejs/undici/blob/main/lib/web/fetch/index.js#L1811
|
|
79
|
-
const parsedURL = new URL(opts.path, 'data://')
|
|
80
|
-
opts.path = parsedURL.pathname + parsedURL.search
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
if (typeof opts.method === 'string') {
|
|
84
|
-
opts.method = opts.method.toUpperCase()
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
this[kDispatchKey] = buildKey(opts)
|
|
88
|
-
this[kDispatches] = mockDispatches
|
|
89
|
-
this[kIgnoreTrailingSlash] = opts.ignoreTrailingSlash ?? false
|
|
90
|
-
this[kDefaultHeaders] = {}
|
|
91
|
-
this[kDefaultTrailers] = {}
|
|
92
|
-
this[kContentLength] = false
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
createMockScopeDispatchData ({ statusCode, data, responseOptions }) {
|
|
96
|
-
const responseData = getResponseData(data)
|
|
97
|
-
const contentLength = this[kContentLength] ? { 'content-length': responseData.length } : {}
|
|
98
|
-
const headers = { ...this[kDefaultHeaders], ...contentLength, ...responseOptions.headers }
|
|
99
|
-
const trailers = { ...this[kDefaultTrailers], ...responseOptions.trailers }
|
|
100
|
-
|
|
101
|
-
return { statusCode, data, headers, trailers }
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
validateReplyParameters (replyParameters) {
|
|
105
|
-
if (typeof replyParameters.statusCode === 'undefined') {
|
|
106
|
-
throw new InvalidArgumentError('statusCode must be defined')
|
|
107
|
-
}
|
|
108
|
-
if (typeof replyParameters.responseOptions !== 'object' || replyParameters.responseOptions === null) {
|
|
109
|
-
throw new InvalidArgumentError('responseOptions must be an object')
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Mock an undici request with a defined reply.
|
|
115
|
-
*/
|
|
116
|
-
reply (replyOptionsCallbackOrStatusCode) {
|
|
117
|
-
// Values of reply aren't available right now as they
|
|
118
|
-
// can only be available when the reply callback is invoked.
|
|
119
|
-
if (typeof replyOptionsCallbackOrStatusCode === 'function') {
|
|
120
|
-
// We'll first wrap the provided callback in another function,
|
|
121
|
-
// this function will properly resolve the data from the callback
|
|
122
|
-
// when invoked.
|
|
123
|
-
const wrappedDefaultsCallback = (opts) => {
|
|
124
|
-
// Our reply options callback contains the parameter for statusCode, data and options.
|
|
125
|
-
const resolvedData = replyOptionsCallbackOrStatusCode(opts)
|
|
126
|
-
|
|
127
|
-
// Check if it is in the right format
|
|
128
|
-
if (typeof resolvedData !== 'object' || resolvedData === null) {
|
|
129
|
-
throw new InvalidArgumentError('reply options callback must return an object')
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
const replyParameters = { data: '', responseOptions: {}, ...resolvedData }
|
|
133
|
-
this.validateReplyParameters(replyParameters)
|
|
134
|
-
// Since the values can be obtained immediately we return them
|
|
135
|
-
// from this higher order function that will be resolved later.
|
|
136
|
-
return {
|
|
137
|
-
...this.createMockScopeDispatchData(replyParameters)
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
// Add usual dispatch data, but this time set the data parameter to function that will eventually provide data.
|
|
142
|
-
const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], wrappedDefaultsCallback, { ignoreTrailingSlash: this[kIgnoreTrailingSlash] })
|
|
143
|
-
return new MockScope(newMockDispatch)
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
// We can have either one or three parameters, if we get here,
|
|
147
|
-
// we should have 1-3 parameters. So we spread the arguments of
|
|
148
|
-
// this function to obtain the parameters, since replyData will always
|
|
149
|
-
// just be the statusCode.
|
|
150
|
-
const replyParameters = {
|
|
151
|
-
statusCode: replyOptionsCallbackOrStatusCode,
|
|
152
|
-
data: arguments[1] === undefined ? '' : arguments[1],
|
|
153
|
-
responseOptions: arguments[2] === undefined ? {} : arguments[2]
|
|
154
|
-
}
|
|
155
|
-
this.validateReplyParameters(replyParameters)
|
|
156
|
-
|
|
157
|
-
// Send in-already provided data like usual
|
|
158
|
-
const dispatchData = this.createMockScopeDispatchData(replyParameters)
|
|
159
|
-
const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], dispatchData, { ignoreTrailingSlash: this[kIgnoreTrailingSlash] })
|
|
160
|
-
return new MockScope(newMockDispatch)
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
/**
|
|
164
|
-
* Mock an undici request with a defined error.
|
|
165
|
-
*/
|
|
166
|
-
replyWithError (error) {
|
|
167
|
-
if (typeof error === 'undefined') {
|
|
168
|
-
throw new InvalidArgumentError('error must be defined')
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
const newMockDispatch = addMockDispatch(this[kDispatches], this[kDispatchKey], { error }, { ignoreTrailingSlash: this[kIgnoreTrailingSlash] })
|
|
172
|
-
return new MockScope(newMockDispatch)
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
* Set default reply headers on the interceptor for subsequent replies
|
|
177
|
-
*/
|
|
178
|
-
defaultReplyHeaders (headers) {
|
|
179
|
-
if (typeof headers === 'undefined') {
|
|
180
|
-
throw new InvalidArgumentError('headers must be defined')
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
this[kDefaultHeaders] = headers
|
|
184
|
-
return this
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
/**
|
|
188
|
-
* Set default reply trailers on the interceptor for subsequent replies
|
|
189
|
-
*/
|
|
190
|
-
defaultReplyTrailers (trailers) {
|
|
191
|
-
if (typeof trailers === 'undefined') {
|
|
192
|
-
throw new InvalidArgumentError('trailers must be defined')
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
this[kDefaultTrailers] = trailers
|
|
196
|
-
return this
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
* Set reply content length header for replies on the interceptor
|
|
201
|
-
*/
|
|
202
|
-
replyContentLength () {
|
|
203
|
-
this[kContentLength] = true
|
|
204
|
-
return this
|
|
205
|
-
}
|
|
206
|
-
}
|
|
207
|
-
|
|
208
|
-
module.exports.MockInterceptor = MockInterceptor
|
|
209
|
-
module.exports.MockScope = MockScope
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
const { promisify } = require('node:util')
|
|
4
|
-
const Pool = require('../dispatcher/pool')
|
|
5
|
-
const { buildMockDispatch } = require('./mock-utils')
|
|
6
|
-
const {
|
|
7
|
-
kDispatches,
|
|
8
|
-
kMockAgent,
|
|
9
|
-
kClose,
|
|
10
|
-
kOriginalClose,
|
|
11
|
-
kOrigin,
|
|
12
|
-
kOriginalDispatch,
|
|
13
|
-
kConnected,
|
|
14
|
-
kIgnoreTrailingSlash
|
|
15
|
-
} = require('./mock-symbols')
|
|
16
|
-
const { MockInterceptor } = require('./mock-interceptor')
|
|
17
|
-
const Symbols = require('../core/symbols')
|
|
18
|
-
const { InvalidArgumentError } = require('../core/errors')
|
|
19
|
-
|
|
20
|
-
/**
|
|
21
|
-
* MockPool provides an API that extends the Pool to influence the mockDispatches.
|
|
22
|
-
*/
|
|
23
|
-
class MockPool extends Pool {
|
|
24
|
-
constructor (origin, opts) {
|
|
25
|
-
if (!opts || !opts.agent || typeof opts.agent.dispatch !== 'function') {
|
|
26
|
-
throw new InvalidArgumentError('Argument opts.agent must implement Agent')
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
super(origin, opts)
|
|
30
|
-
|
|
31
|
-
this[kMockAgent] = opts.agent
|
|
32
|
-
this[kOrigin] = origin
|
|
33
|
-
this[kIgnoreTrailingSlash] = opts.ignoreTrailingSlash ?? false
|
|
34
|
-
this[kDispatches] = []
|
|
35
|
-
this[kConnected] = 1
|
|
36
|
-
this[kOriginalDispatch] = this.dispatch
|
|
37
|
-
this[kOriginalClose] = this.close.bind(this)
|
|
38
|
-
|
|
39
|
-
this.dispatch = buildMockDispatch.call(this)
|
|
40
|
-
this.close = this[kClose]
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
get [Symbols.kConnected] () {
|
|
44
|
-
return this[kConnected]
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Sets up the base interceptor for mocking replies from undici.
|
|
49
|
-
*/
|
|
50
|
-
intercept (opts) {
|
|
51
|
-
return new MockInterceptor(
|
|
52
|
-
opts && { ignoreTrailingSlash: this[kIgnoreTrailingSlash], ...opts },
|
|
53
|
-
this[kDispatches]
|
|
54
|
-
)
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
async [kClose] () {
|
|
58
|
-
await promisify(this[kOriginalClose])()
|
|
59
|
-
this[kConnected] = 0
|
|
60
|
-
this[kMockAgent][Symbols.kClients].delete(this[kOrigin])
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
module.exports = MockPool
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
'use strict'
|
|
2
|
-
|
|
3
|
-
module.exports = {
|
|
4
|
-
kAgent: Symbol('agent'),
|
|
5
|
-
kOptions: Symbol('options'),
|
|
6
|
-
kFactory: Symbol('factory'),
|
|
7
|
-
kDispatches: Symbol('dispatches'),
|
|
8
|
-
kDispatchKey: Symbol('dispatch key'),
|
|
9
|
-
kDefaultHeaders: Symbol('default headers'),
|
|
10
|
-
kDefaultTrailers: Symbol('default trailers'),
|
|
11
|
-
kContentLength: Symbol('content length'),
|
|
12
|
-
kMockAgent: Symbol('mock agent'),
|
|
13
|
-
kMockAgentSet: Symbol('mock agent set'),
|
|
14
|
-
kMockAgentGet: Symbol('mock agent get'),
|
|
15
|
-
kMockDispatch: Symbol('mock dispatch'),
|
|
16
|
-
kClose: Symbol('close'),
|
|
17
|
-
kOriginalClose: Symbol('original agent close'),
|
|
18
|
-
kOriginalDispatch: Symbol('original dispatch'),
|
|
19
|
-
kOrigin: Symbol('origin'),
|
|
20
|
-
kIsMockActive: Symbol('is mock active'),
|
|
21
|
-
kNetConnect: Symbol('net connect'),
|
|
22
|
-
kGetNetConnect: Symbol('get net connect'),
|
|
23
|
-
kConnected: Symbol('connected'),
|
|
24
|
-
kIgnoreTrailingSlash: Symbol('ignore trailing slash'),
|
|
25
|
-
kMockAgentMockCallHistoryInstance: Symbol('mock agent mock call history name'),
|
|
26
|
-
kMockAgentRegisterCallHistory: Symbol('mock agent register mock call history'),
|
|
27
|
-
kMockAgentAddCallHistoryLog: Symbol('mock agent add call history log'),
|
|
28
|
-
kMockAgentIsCallHistoryEnabled: Symbol('mock agent is call history enabled'),
|
|
29
|
-
kMockAgentAcceptsNonStandardSearchParameters: Symbol('mock agent accepts non standard search parameters'),
|
|
30
|
-
kMockCallHistoryAddLog: Symbol('mock call history add log')
|
|
31
|
-
}
|