Skip to main content

PatchRequest

The PATCH method requests that a set of changes described in the request entity be applied to the resource identified by the resourceUri.

Add new resource to a collection

import { actorCalled } from '@serenity-js/core'
import { CallAnApi, LastResponse, PatchRequest, Send } from '@serenity-js/rest'
import { Ensure, equals } from '@serenity-js/assertions'

await actorCalled('Apisitt')
.whoCan(CallAnApi.at('https://api.example.org/'))
.attemptsTo(
Send.a(PatchRequest.to('/books/0-688-00230-7').with({
lastReadOn: '2016-06-16',
})),
Ensure.that(LastResponse.status(), equals(204)),
)

Learn more

Hierarchy

Index

Methods

staticto

  • Configures the object with a destination URI.

    When the resourceUri is not a fully qualified URL but a path, such as /products/2, it gets concatenated with the URL provided to the Axios instance when the ability to CallAnApi was instantiated.


    Parameters

    • resourceUri: Answerable<string>

      The URI where the Actor should send the HTTPRequest

    Returns PatchRequest

as

  • as<O>(mapping: (answer: AxiosRequestConfig<any>) => O | Promise<O>): QuestionAdapter<O>
  • Maps this question to one of a different type.

    Question.about('number returned as string', actor => '42')   // returns: QuestionAdapter<string>
    .as(Number) // returns: QuestionAdapter<number>

    Type parameters

    • O

    Parameters

    • mapping: (answer: AxiosRequestConfig<any>) => O | Promise<O>

    Returns QuestionAdapter<O>

answeredBy

  • answeredBy(actor: AnswersQuestions & UsesAbilities): Promise<AxiosRequestConfig<any>>
  • @inheritDoc

    Parameters

    • actor: AnswersQuestions & UsesAbilities

    Returns Promise<AxiosRequestConfig<any>>

describedAs

  • @inheritDoc

    Parameters

    • subject: string

    Returns PatchRequest

toString

  • toString(): string
  • @inheritDoc

    Returns string

with

  • Configures the object with a request body.


    Parameters

    • data: any

      Data to be sent to the resourceUri

    Returns PatchRequest

using

  • using(config: Answerable<{ url?: Answerable<string>; method?: Answerable<string>; baseURL?: Answerable<string>; transformRequest?: {} | {}[]; transformResponse?: {} | {}[]; headers?: { [x: string]: any; set: {}; get: {}; has: {}; delete: {}; clear: {}; normalize: {}; concat: {}; toJSON: {}; setContentType: {}; getContentType: {}; hasContentType: {}; setContentLength: {}; getContentLength: {}; ... 13 more ...; [Symbol.iterator]: {}; } | { [x: string]: Answerable<string> | Answerable<false> | Answerable<true> | Answerable<number> | { [x: string]: any; set: {}; get: {}; has: {}; ... 23 more ...; [Symbol.iterator]: {}; } | Answerable<...>[]; ... 16 more ...; common?: { ...; }; }; params?: any; paramsSerializer?: { encode?: {}; serialize?: {}; visitor?: {}; dots?: Answerable<false> | Answerable<true>; metaTokens?: Answerable<false> | Answerable<true>; indexes?: Answerable<...> | Answerable<...>; } | {}; data?: any; timeout?: Answerable<number>; timeoutErrorMessage?: Answerable<string>; withCredentials?: Answerable<false> | Answerable<true>; adapter?: Answerable<string> | {} | (Answerable<string> | {})[]; auth?: { username: Answerable<string>; password: Answerable<string>; }; responseType?: Answerable<text> | Answerable<arraybuffer> | Answerable<blob> | Answerable<document> | Answerable<json> | Answerable<stream>; responseEncoding?: Answerable<string>; xsrfCookieName?: Answerable<string>; xsrfHeaderName?: Answerable<string>; onUploadProgress?: {}; onDownloadProgress?: {}; maxContentLength?: Answerable<number>; validateStatus?: {}; maxBodyLength?: Answerable<number>; maxRedirects?: Answerable<number>; maxRate?: Answerable<number> | [Answerable<number>, Answerable<number>]; beforeRedirect?: {}; socketPath?: Answerable<string>; transport?: any; httpAgent?: any; httpsAgent?: any; proxy?: Answerable<false> | { host: Answerable<string>; port: Answerable<number>; auth?: { username: Answerable<string>; password: Answerable<string>; }; protocol?: Answerable<...>; }; cancelToken?: { promise: Answerable<Cancel>; reason?: { message: Answerable<string>; }; throwIfRequested: {}; }; decompress?: Answerable<false> | Answerable<true>; transitional?: { silentJSONParsing?: Answerable<false> | Answerable<true>; forcedJSONParsing?: Answerable<false> | Answerable<true>; clarifyTimeoutError?: Answerable<...> | Answerable<...>; }; signal?: { readonly aborted: Answerable<false> | Answerable<true>; onabort?: {}; addEventListener?: {}; removeEventListener?: {}; }; insecureHTTPParser?: Answerable<false> | Answerable<true>; env?: { FormData?: {}; }; formSerializer?: { visitor?: {}; dots?: Answerable<false> | Answerable<true>; metaTokens?: Answerable<false> | Answerable<true>; indexes?: Answerable<false> | Answerable<...>; }; family?: Answerable<4> | Answerable<6>; lookup?: {} | {}; withXSRFToken?: Answerable<false> | Answerable<true> | {} }>): PatchRequest
  • Overrides the default Axios request configuration provided when the ability to CallAnApi was instantiated.

    Learn more


    Parameters

    • config: Answerable<{ url?: Answerable<string>; method?: Answerable<string>; baseURL?: Answerable<string>; transformRequest?: {} | {}[]; transformResponse?: {} | {}[]; headers?: { [x: string]: any; set: {}; get: {}; has: {}; delete: {}; clear: {}; normalize: {}; concat: {}; toJSON: {}; setContentType: {}; getContentType: {}; hasContentType: {}; setContentLength: {}; getContentLength: {}; ... 13 more ...; [Symbol.iterator]: {}; } | { [x: string]: Answerable<string> | Answerable<false> | Answerable<true> | Answerable<number> | { [x: string]: any; set: {}; get: {}; has: {}; ... 23 more ...; [Symbol.iterator]: {}; } | Answerable<...>[]; ... 16 more ...; common?: { ...; }; }; params?: any; paramsSerializer?: { encode?: {}; serialize?: {}; visitor?: {}; dots?: Answerable<false> | Answerable<true>; metaTokens?: Answerable<false> | Answerable<true>; indexes?: Answerable<...> | Answerable<...>; } | {}; data?: any; timeout?: Answerable<number>; timeoutErrorMessage?: Answerable<string>; withCredentials?: Answerable<false> | Answerable<true>; adapter?: Answerable<string> | {} | (Answerable<string> | {})[]; auth?: { username: Answerable<string>; password: Answerable<string>; }; responseType?: Answerable<text> | Answerable<arraybuffer> | Answerable<blob> | Answerable<document> | Answerable<json> | Answerable<stream>; responseEncoding?: Answerable<string>; xsrfCookieName?: Answerable<string>; xsrfHeaderName?: Answerable<string>; onUploadProgress?: {}; onDownloadProgress?: {}; maxContentLength?: Answerable<number>; validateStatus?: {}; maxBodyLength?: Answerable<number>; maxRedirects?: Answerable<number>; maxRate?: Answerable<number> | [Answerable<number>, Answerable<number>]; beforeRedirect?: {}; socketPath?: Answerable<string>; transport?: any; httpAgent?: any; httpsAgent?: any; proxy?: Answerable<false> | { host: Answerable<string>; port: Answerable<number>; auth?: { username: Answerable<string>; password: Answerable<string>; }; protocol?: Answerable<...>; }; cancelToken?: { promise: Answerable<Cancel>; reason?: { message: Answerable<string>; }; throwIfRequested: {}; }; decompress?: Answerable<false> | Answerable<true>; transitional?: { silentJSONParsing?: Answerable<false> | Answerable<true>; forcedJSONParsing?: Answerable<false> | Answerable<true>; clarifyTimeoutError?: Answerable<...> | Answerable<...>; }; signal?: { readonly aborted: Answerable<false> | Answerable<true>; onabort?: {}; addEventListener?: {}; removeEventListener?: {}; }; insecureHTTPParser?: Answerable<false> | Answerable<true>; env?: { FormData?: {}; }; formSerializer?: { visitor?: {}; dots?: Answerable<false> | Answerable<true>; metaTokens?: Answerable<false> | Answerable<true>; indexes?: Answerable<false> | Answerable<...>; }; family?: Answerable<4> | Answerable<6>; lookup?: {} | {}; withXSRFToken?: Answerable<false> | Answerable<true> | {} }>

      Axios request configuration overrides

    Returns PatchRequest