(title, configs)
| 111 | } |
| 112 | |
| 113 | function setup(title, configs) { |
| 114 | const { |
| 115 | client: clientCfg_, |
| 116 | server: serverCfg_, |
| 117 | allReady: allReady_, |
| 118 | timeout: timeout_, |
| 119 | debug, |
| 120 | noForceClientReady, |
| 121 | noForceServerReady, |
| 122 | noClientError, |
| 123 | noServerError, |
| 124 | } = configs; |
| 125 | |
| 126 | // Make shallow copies of client/server configs to avoid mutating them when |
| 127 | // multiple tests share the same config object reference |
| 128 | let clientCfg; |
| 129 | if (clientCfg_) |
| 130 | clientCfg = { ...clientCfg_ }; |
| 131 | let serverCfg; |
| 132 | if (serverCfg_) |
| 133 | serverCfg = { ...serverCfg_ }; |
| 134 | |
| 135 | let clientClose = false; |
| 136 | let clientReady = false; |
| 137 | let serverClose = false; |
| 138 | let serverReady = false; |
| 139 | const msg = (text) => { |
| 140 | return `${title}: ${text}`; |
| 141 | }; |
| 142 | |
| 143 | const timeout = (typeof timeout_ === 'number' |
| 144 | ? timeout_ |
| 145 | : DEFAULT_TEST_TIMEOUT); |
| 146 | |
| 147 | const allReady = (typeof allReady_ === 'function' ? allReady_ : undefined); |
| 148 | |
| 149 | if (debug) { |
| 150 | if (clientCfg) { |
| 151 | clientCfg.debug = (...args) => { |
| 152 | console.log(`[${title}][CLIENT]`, ...args); |
| 153 | }; |
| 154 | } |
| 155 | if (serverCfg) { |
| 156 | serverCfg.debug = (...args) => { |
| 157 | console.log(`[${title}][SERVER]`, ...args); |
| 158 | }; |
| 159 | } |
| 160 | } |
| 161 | |
| 162 | let timer; |
| 163 | let client; |
| 164 | let clientReadyFn; |
| 165 | let server; |
| 166 | let serverReadyFn; |
| 167 | if (clientCfg) { |
| 168 | client = new Client(); |
| 169 | if (!noClientError) |
| 170 | client.on('error', onError); |
no test coverage detected
searching dependent graphs…