You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: README.md
+8-10
Original file line number
Diff line number
Diff line change
@@ -2,27 +2,28 @@
2
2
Mock http requests made using fetch (or isomorphic-fetch)
3
3
4
4
*notes*
5
-
- When using isomorphic-fetch or node-fetch fetch should be added as a global
6
-
- fetch-mock doesn't declare fetch or Promise as dependencies; as you're testing `fetch` it's assumed you're already taking care of these globals
5
+
- When using isomorphic-fetch or node-fetch `fetch` should be added as a global
6
+
- fetch-mock doesn't declare `fetch` or `Promise` as dependencies; as you're testing `fetch` it's assumed you're already taking care of these globals
7
7
- If you prefer documentation by example skip to the bottom of this README
8
8
9
9
## API
10
10
11
11
`require('fetch-mock')` exports a singleton with the following methods
12
12
13
13
### `mock(config)`
14
-
Replaces `fetch()` with a sinon stub which, in addition to the default sinon behaviour, records each of its calls and optionally returns a stub response or passes the call through to `fetch()`. `config` is an optional* object with the following properties.
14
+
Replaces `fetch()` with a sinon stub which, in addition to the default sinon behaviour, records it's calls, grouped by route, and optionally returns a stub response or passes the call through to `fetch()`. `config` is an optional* object with the following properties.
15
15
16
-
*`routes`: Either a single object or an array of similar objects each defining how the mock handles a given request. Each route object must have the following properties. If multiple routes are specified the first matching route will be used to define the response
16
+
*`routes`: Either a single object or an array of similar objects each defining how the mock handles a given request. If multiple routes are specified the first matching route will be used to define the response. Each route object must have the following properties.
17
17
* `name`: A unique string naming the route
18
18
* `matcher`: The rule for matching calls to `fetch()`. Accepts any of the following
19
19
* `string`: Either an exact url to match e.g. 'http://www.site.com/page.html' or, if the string begins with a `^`, the string following the `^` must begin the url e.g. '^http://www.site.com' would match 'http://www.site.com' or 'http://www.site.com/page.html'
20
20
* `RegExp`: A regular expression to test the url against
21
-
* `Function(url, opts)`: A function that is passed the url and opts `fetch` is called with and that returns a Boolean
21
+
* `Function(url, opts)`: A function that is passed the url and opts `fetch()` is called with and that returns a Boolean
22
22
* `response`: Configures the response object returned by the mock. Can take any of the following values
23
+
* `number`: creates a response with the number as the response status
23
24
* `string`: creates a 200 response with the string as the response body
24
25
* `object`: If the object contains any of the properties body, status, headers, throws; then these properties - all of them optional - are used to construct a response as follows
25
-
* `body`: Retunred in the response body
26
+
* `body`: Returned in the response body
26
27
* `status`: Returned in the response status
27
28
* `headers`: Returned in the response headers. They should be defined as an object literal (property names case-insensitive) which will be converted to a `Headers` instance
28
29
* `throws`: If this property is present then a `Promise` rejected with the value of `throws` is returned
@@ -68,7 +69,7 @@ Returns a Boolean denoting whether any calls matched the given route
68
69
Normally calling `mock()` twice without restoring inbetween will throw an error. `reMock()` calls `restore()` internally before calling `mock()` again. This allows you to put a generic call to `mock()` in a `beforeEach()` while retaining the flexibility to vary the responses for some tests
69
70
70
71
### `registerRoute(name, matcher, response)`
71
-
Often your application/module will always need responses for some calls in order to initialise properly, even if the content of those calls are not the subject of a given test e.g. a mock response from an authentication service and a lti-variant testing service might be necessary in order to test the UI for a version of a log in form. It's helpful to be able to define some default responses for these services which will exist throughout all or a large subset of your tests. `registerRoute()` aims to fulfil this need. All these predefined routes can be overridden when `mock(config)` is called.
72
+
Often your application/module will need a mocked response for some http requests in order to initialise properly, even if the content of those calls are not the subject of a given test e.g. a mock response from an authentication service and a multi-variant testing service might be necessary in order to test the UI for a version of a log in form. It's helpful to be able to define some default responses for these services which will exist throughout all or a large subset of your tests. `registerRoute()` aims to fulfil this need. All these predefined routes can be overridden when `mock(config)` is called.
72
73
73
74
`registerRoute()` takes either of the following parameters
74
75
*`object`: An object similar to the route objects accepted by `mock()`
@@ -78,8 +79,6 @@ Often your application/module will always need responses for some calls in order
78
79
### `unregisterRoute(name)`
79
80
Unregisters one or more previously registered routes. Accepts either a string or an array of strings
80
81
81
-
82
-
83
82
## Example
84
83
```javascript
85
84
@@ -156,7 +155,6 @@ describe('content', function () {
0 commit comments