Skip to main content

OptionsRequest

The OPTIONS method requests information about the communication options available for the target resource, at either the origin server or an intervening intermediary. This method allows a client to determine the options and/or requirements associated with a resource, or the capabilities of a server, without implying a resource action.

File download test

import { actorCalled } from '@serenity-js/core'
import { CallAnApi, OptionsRequest, LastResponse, 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(OptionsRequest.to('/downloads/my-test-document.pdf')),
Ensure.that(LastResponse.status(), equals(200)),
Ensure.that(LastResponse.header('Allow'), equals('OPTIONS, GET, HEAD')),
)

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 OptionsRequest

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 OptionsRequest

toString

  • toString(): string
  • @inheritDoc

    Returns string

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> | {} }>): OptionsRequest
  • 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 OptionsRequest