# requestOnce

Only change request parameter once with given overwrite for the next request. You can call `requestOnce` multiple consecutive times and it will apply the overwrites in order. If you only use `requestOnce` and the resource is called more times a mock has been defined than it defaults back to the original resource.

## Usage[​](#usage "Direct link to Usage")

```
mock.requestOnce({ header, cookies, method, url, header, statusCode, fetchResponse })
```

## Parameters[​](#parameters "Direct link to Parameters")

| Name                                   | Type                     | Details                                                |
| -------------------------------------- | ------------------------ | ------------------------------------------------------ |
| `overwrites`                           | `MockOverwrite`          | payload to overwrite the response                      |
| `overwrites.header`                    | `Record<string, string>` | overwrite specific headers                             |
| `overwrites.cookies`                   | `Record<string, string>` | overwrite request cookies                              |
| `overwrites.method`                    | `string`                 | overwrite request method                               |
| `overwrites.url`                       | `string`                 | overwrite request url to initiate a redirect           |
| `params`<br />*optional*               | `MockResponseParams`     | additional respond parameters to overwrite             |
| `params.header`<br />*optional*        | `Object`                 | overwrite specific headers                             |
| `params.statusCode`<br />*optional*    | `Number`                 | overwrite response status code                         |
| `params.fetchResponse`<br />*optional* | `Boolean`                | fetch real response before responding with mocked data |

## Example[​](#example "Direct link to Example")

respond.js

```
it('adds different auth headers to my API requests', async () => {
    const mock = await browser.mock('https://application.com/api', {
        method: 'get'
    })

    mock.requestOnce({
        headers: { 'Authorization': 'Bearer token' }
    })
    mock.requestOnce({
        headers: { 'Authorization': 'Another bearer token' }
    })

    await browser.url('https://application.com')
    // ...
})
```
