1# Class: MockClient 2 3Extends: `undici.Client` 4 5A mock client class that implements the same api as [MockPool](MockPool.md). 6 7## `new MockClient(origin, [options])` 8 9Arguments: 10 11* **origin** `string` - It should only include the **protocol, hostname, and port**. 12* **options** `MockClientOptions` - It extends the `Client` options. 13 14Returns: `MockClient` 15 16### Parameter: `MockClientOptions` 17 18Extends: `ClientOptions` 19 20* **agent** `Agent` - the agent to associate this MockClient with. 21 22### Example - Basic MockClient instantiation 23 24We can use MockAgent to instantiate a MockClient ready to be used to intercept specified requests. It will not do anything until registered as the agent to use and any mock request are registered. 25 26```js 27import { MockAgent } from 'undici' 28 29// Connections must be set to 1 to return a MockClient instance 30const mockAgent = new MockAgent({ connections: 1 }) 31 32const mockClient = mockAgent.get('http://localhost:3000') 33``` 34 35## Instance Methods 36 37### `MockClient.intercept(options)` 38 39Implements: [`MockPool.intercept(options)`](MockPool.md#mockpoolinterceptoptions) 40 41### `MockClient.close()` 42 43Implements: [`MockPool.close()`](MockPool.md#mockpoolclose) 44 45### `MockClient.dispatch(options, handlers)` 46 47Implements [`Dispatcher.dispatch(options, handlers)`](Dispatcher.md#dispatcherdispatchoptions-handler). 48 49### `MockClient.request(options[, callback])` 50 51See [`Dispatcher.request(options [, callback])`](Dispatcher.md#dispatcherrequestoptions-callback). 52 53#### Example - MockClient request 54 55```js 56import { MockAgent } from 'undici' 57 58const mockAgent = new MockAgent({ connections: 1 }) 59 60const mockClient = mockAgent.get('http://localhost:3000') 61mockClient.intercept({ path: '/foo' }).reply(200, 'foo') 62 63const { 64 statusCode, 65 body 66} = await mockClient.request({ 67 origin: 'http://localhost:3000', 68 path: '/foo', 69 method: 'GET' 70}) 71 72console.log('response received', statusCode) // response received 200 73 74for await (const data of body) { 75 console.log('data', data.toString('utf8')) // data foo 76} 77``` 78