externalOptionsRequest
Hierarchy
- HTTPRequest
- OptionsRequest
Index
Methods
Screenplay Pattern
Methods
staticexternalto
Parameters
externalresourceUri: Answerable<string>
The URI where the
Actorshould send theHTTPRequest
Returns OptionsRequest
externaldescribedAs
Changes the description of this object, as returned by
Describable.describedByandDescribable.toString.Parameters
externaldescription: Answerable<string> | MetaQuestion<AxiosRequestConfig<any, any>, Question<Promise<string>>>
Replaces the current description according to the following rules:
- If
descriptionis anAnswerable, it replaces the current description - If
descriptionis aMetaQuestion, the current description is passed ascontexttodescription.of(context), and the result replaces the current description
- If
Returns this
externaldescribedBy
Resolves the description of this object in the context of the provided
actor.Parameters
externalactor: AnswersQuestions & UsesAbilities & HasName
Returns Promise<string>
externaltoString
Returns a human-readable description of this object.
Returns string
externalansweredBy
Parameters
externalactor: AnswersQuestions & UsesAbilities
Returns Promise<AxiosRequestConfig<any, any>>
externalusing
Parameters
externalconfig: Answerable<{ url?: Answerable<string>; method?: Answerable<string>; baseURL?: Answerable<string>; allowAbsoluteUrls?: Answerable<false> | Answerable<true>; transformRequest?: {} | {}[]; transformResponse?: {} | {}[]; headers?: { set: any; get: any; has: any; delete: any; clear: any; normalize: any; concat: any; toJSON: any; setContentType: any; getContentType: any; hasContentType: any; setContentLength: any; getContentLength: any; hasContentLength: any; setAccept: any; getAccept: any; hasAccept: any; setUserAgent: any; getUserAgent: any; hasUserAgent: any; setContentEncoding: any; getContentEncoding: any; hasContentEncoding: any; setAuthorization: any; getAuthorization: any; hasAuthorization: any; getSetCookie: any; toString: any; [iterator]: any } | { Accept: Answerable<string> | Answerable<number> | Answerable<false> | Answerable<true> | Answerable<string>[] | { set: any; get: any; has: any; delete: any; clear: any; normalize: any; concat: any; toJSON: any; setContentType: any; getContentType: any; hasContentType: any; setContentLength: any; getContentLength: any; hasContentLength: any; setAccept: any; getAccept: any; hasAccept: any; setUserAgent: any; getUserAgent: any; hasUserAgent: any; setContentEncoding: any; getContentEncoding: any; hasContentEncoding: any; setAuthorization: any; getAuthorization: any; hasAuthorization: any; getSetCookie: any; toString: any; [iterator]: any }; Content-Length: Answerable<string> | Answerable<number> | Answerable<false> | Answerable<true> | Answerable<string>[] | { set: any; get: any; has: any; delete: any; clear: any; normalize: any; concat: any; toJSON: any; setContentType: any; getContentType: any; hasContentType: any; setContentLength: any; getContentLength: any; hasContentLength: any; setAccept: any; getAccept: any; hasAccept: any; setUserAgent: any; getUserAgent: any; hasUserAgent: any; setContentEncoding: any; getContentEncoding: any; hasContentEncoding: any; setAuthorization: any; getAuthorization: any; hasAuthorization: any; getSetCookie: any; toString: any; [iterator]: any }; User-Agent: Answerable<string> | Answerable<number> | Answerable<false> | Answerable<true> | Answerable<string>[] | { set: any; get: any; has: any; delete: any; clear: any; normalize: any; concat: any; toJSON: any; setContentType: any; getContentType: any; hasContentType: any; setContentLength: any; getContentLength: any; hasContentLength: any; setAccept: any; getAccept: any; hasAccept: any; setUserAgent: any; getUserAgent: any; hasUserAgent: any; setContentEncoding: any; getContentEncoding: any; hasContentEncoding: any; setAuthorization: any; getAuthorization: any; hasAuthorization: any; getSetCookie: any; toString: any; [iterator]: any }; Content-Encoding: Answerable<string> | Answerable<number> | Answerable<false> | Answerable<true> | Answerable<string>[] | { set: any; get: any; has: any; delete: any; clear: any; normalize: any; concat: any; toJSON: any; setContentType: any; getContentType: any; hasContentType: any; setContentLength: any; getContentLength: any; hasContentLength: any; setAccept: any; getAccept: any; hasAccept: any; setUserAgent: any; getUserAgent: any; hasUserAgent: any; setContentEncoding: any; getContentEncoding: any; hasContentEncoding: any; setAuthorization: any; getAuthorization: any; hasAuthorization: any; getSetCookie: any; toString: any; [iterator]: any }; Authorization: Answerable<string> | Answerable<number> | Answerable<false> | Answerable<true> | Answerable<string>[] | { set: any; get: any; has: any; delete: any; clear: any; normalize: any; concat: any; toJSON: any; setContentType: any; getContentType: any; hasContentType: any; setContentLength: any; getContentLength: any; hasContentLength: any; setAccept: any; getAccept: any; hasAccept: any; setUserAgent: any; getUserAgent: any; hasUserAgent: any; setContentEncoding: any; getContentEncoding: any; hasContentEncoding: any; setAuthorization: any; getAuthorization: any; hasAuthorization: any; getSetCookie: any; toString: any; [iterator]: any }; Location: Answerable<string> | Answerable<number> | Answerable<false> | Answerable<true> | Answerable<string>[] | { set: any; get: any; has: any; delete: any; clear: any; normalize: any; concat: any; toJSON: any; setContentType: any; getContentType: any; hasContentType: any; setContentLength: any; getContentLength: any; hasContentLength: any; setAccept: any; getAccept: any; hasAccept: any; setUserAgent: any; getUserAgent: any; hasUserAgent: any; setContentEncoding: any; getContentEncoding: any; hasContentEncoding: any; setAuthorization: any; getAuthorization: any; hasAuthorization: any; getSetCookie: any; toString: any; [iterator]: any }; link: { set: any; get: any; has: any; delete: any; clear: any; normalize: any; concat: any; toJSON: any; setContentType: any; getContentType: any; hasContentType: any; setContentLength: any; getContentLength: any; hasContentLength: any; setAccept: any; getAccept: any; hasAccept: any; setUserAgent: any; getUserAgent: any; hasUserAgent: any; setContentEncoding: any; getContentEncoding: any; hasContentEncoding: any; setAuthorization: any; getAuthorization: any; hasAuthorization: any; getSetCookie: any; toString: any; [iterator]: any }; delete: { set: any; get: any; has: any; delete: any; clear: any; normalize: any; concat: any; toJSON: any; setContentType: any; getContentType: any; hasContentType: any; setContentLength: any; getContentLength: any; hasContentLength: any; setAccept: any; getAccept: any; hasAccept: any; setUserAgent: any; getUserAgent: any; hasUserAgent: any; setContentEncoding: any; getContentEncoding: any; hasContentEncoding: any; setAuthorization: any; getAuthorization: any; hasAuthorization: any; getSetCookie: any; toString: any; [iterator]: any }; get: { set: any; get: any; has: any; delete: any; clear: any; normalize: any; concat: any; toJSON: any; setContentType: any; getContentType: any; hasContentType: any; setContentLength: any; getContentLength: any; hasContentLength: any; setAccept: any; getAccept: any; hasAccept: any; setUserAgent: any; getUserAgent: any; hasUserAgent: any; setContentEncoding: any; getContentEncoding: any; hasContentEncoding: any; setAuthorization: any; getAuthorization: any; hasAuthorization: any; getSetCookie: any; toString: any; [iterator]: any }; head: { set: any; get: any; has: any; delete: any; clear: any; normalize: any; concat: any; toJSON: any; setContentType: any; getContentType: any; hasContentType: any; setContentLength: any; getContentLength: any; hasContentLength: any; setAccept: any; getAccept: any; hasAccept: any; setUserAgent: any; getUserAgent: any; hasUserAgent: any; setContentEncoding: any; getContentEncoding: any; hasContentEncoding: any; setAuthorization: any; getAuthorization: any; hasAuthorization: any; getSetCookie: any; toString: any; [iterator]: any }; options: { set: any; get: any; has: any; delete: any; clear: any; normalize: any; concat: any; toJSON: any; setContentType: any; getContentType: any; hasContentType: any; setContentLength: any; getContentLength: any; hasContentLength: any; setAccept: any; getAccept: any; hasAccept: any; setUserAgent: any; getUserAgent: any; hasUserAgent: any; setContentEncoding: any; getContentEncoding: any; hasContentEncoding: any; setAuthorization: any; getAuthorization: any; hasAuthorization: any; getSetCookie: any; toString: any; [iterator]: any }; post: { set: any; get: any; has: any; delete: any; clear: any; normalize: any; concat: any; toJSON: any; setContentType: any; getContentType: any; hasContentType: any; setContentLength: any; getContentLength: any; hasContentLength: any; setAccept: any; getAccept: any; hasAccept: any; setUserAgent: any; getUserAgent: any; hasUserAgent: any; setContentEncoding: any; getContentEncoding: any; hasContentEncoding: any; setAuthorization: any; getAuthorization: any; hasAuthorization: any; getSetCookie: any; toString: any; [iterator]: any }; put: { set: any; get: any; has: any; delete: any; clear: any; normalize: any; concat: any; toJSON: any; setContentType: any; getContentType: any; hasContentType: any; setContentLength: any; getContentLength: any; hasContentLength: any; setAccept: any; getAccept: any; hasAccept: any; setUserAgent: any; getUserAgent: any; hasUserAgent: any; setContentEncoding: any; getContentEncoding: any; hasContentEncoding: any; setAuthorization: any; getAuthorization: any; hasAuthorization: any; getSetCookie: any; toString: any; [iterator]: any }; patch: { set: any; get: any; has: any; delete: any; clear: any; normalize: any; concat: any; toJSON: any; setContentType: any; getContentType: any; hasContentType: any; setContentLength: any; getContentLength: any; hasContentLength: any; setAccept: any; getAccept: any; hasAccept: any; setUserAgent: any; getUserAgent: any; hasUserAgent: any; setContentEncoding: any; getContentEncoding: any; hasContentEncoding: any; setAuthorization: any; getAuthorization: any; hasAuthorization: any; getSetCookie: any; toString: any; [iterator]: any }; purge: { set: any; get: any; has: any; delete: any; clear: any; normalize: any; concat: any; toJSON: any; setContentType: any; getContentType: any; hasContentType: any; setContentLength: any; getContentLength: any; hasContentLength: any; setAccept: any; getAccept: any; hasAccept: any; setUserAgent: any; getUserAgent: any; hasUserAgent: any; setContentEncoding: any; getContentEncoding: any; hasContentEncoding: any; setAuthorization: any; getAuthorization: any; hasAuthorization: any; getSetCookie: any; toString: any; [iterator]: any }; unlink: { set: any; get: any; has: any; delete: any; clear: any; normalize: any; concat: any; toJSON: any; setContentType: any; getContentType: any; hasContentType: any; setContentLength: any; getContentLength: any; hasContentLength: any; setAccept: any; getAccept: any; hasAccept: any; setUserAgent: any; getUserAgent: any; hasUserAgent: any; setContentEncoding: any; getContentEncoding: any; hasContentEncoding: any; setAuthorization: any; getAuthorization: any; hasAuthorization: any; getSetCookie: any; toString: any; [iterator]: any }; query: { set: any; get: any; has: any; delete: any; clear: any; normalize: any; concat: any; toJSON: any; setContentType: any; getContentType: any; hasContentType: any; setContentLength: any; getContentLength: any; hasContentLength: any; setAccept: any; getAccept: any; hasAccept: any; setUserAgent: any; getUserAgent: any; hasUserAgent: any; setContentEncoding: any; getContentEncoding: any; hasContentEncoding: any; setAuthorization: any; getAuthorization: any; hasAuthorization: any; getSetCookie: any; toString: any; [iterator]: any }; common?: { set: any; get: any; has: any; delete: any; clear: any; normalize: any; concat: any; toJSON: any; setContentType: any; getContentType: any; hasContentType: any; setContentLength: any; getContentLength: any; hasContentLength: any; setAccept: any; getAccept: any; hasAccept: any; setUserAgent: any; getUserAgent: any; hasUserAgent: any; setContentEncoding: any; getContentEncoding: any; hasContentEncoding: any; setAuthorization: any; getAuthorization: any; hasAuthorization: any; getSetCookie: any; toString: any; [iterator]: any }; Content-Type?: Answerable<string> | Answerable<number> | Answerable<false> | Answerable<true> | Answerable<string>[] | { set: any; get: any; has: any; delete: any; clear: any; normalize: any; concat: any; toJSON: any; setContentType: any; getContentType: any; hasContentType: any; setContentLength: any; getContentLength: any; hasContentLength: any; setAccept: any; getAccept: any; hasAccept: any; setUserAgent: any; getUserAgent: any; hasUserAgent: any; setContentEncoding: any; getContentEncoding: any; hasContentEncoding: any; setAuthorization: any; getAuthorization: any; hasAuthorization: any; getSetCookie: any; toString: any; [iterator]: any } }; params?: any; paramsSerializer?: { visitor?: {}; dots?: Answerable<false> | Answerable<true>; metaTokens?: Answerable<false> | Answerable<true>; indexes?: Answerable<false> | Answerable<true>; maxDepth?: Answerable<number>; Blob?: {}; encode?: {}; serialize?: {} } | {}; data?: any; timeout?: Answerable<number>; timeoutErrorMessage?: Answerable<string>; withCredentials?: Answerable<false> | Answerable<true>; adapter?: {} | Answerable<fetch> | Answerable<xhr> | Answerable<http> | { codePointAt: any; includes: any; endsWith: any; normalize: any; repeat: any; startsWith: any; anchor: any; big: any; blink: any; bold: any; fixed: any; fontcolor: any; fontsize: any; italics: any; link: any; small: any; strike: any; sub: any; sup: any; [iterator]: any; padStart: any; padEnd: any; trimEnd: any; trimStart: any; trimLeft: any; trimRight: any; matchAll: any; replaceAll: any; at: any; toString: any; charAt: any; charCodeAt: any; concat: any; indexOf: any; lastIndexOf: any; localeCompare: any; match: any; replace: any; search: any; slice: any; split: any; substring: any; toLowerCase: any; toLocaleLowerCase: any; toUpperCase: any; toLocaleUpperCase: any; trim: any; length: Answerable<number>; substr: any; valueOf: any } | {} | Answerable<"fetch"> | Answerable<"xhr"> | Answerable<"http"> | { readonly [x: number]: Answerable<string>; toString: {}; charAt: {}; ... 47 more ...; [Symbol.iterator]: {}; }[]; auth?: { username: Answerable<string>; password: Answerable<string> }; responseType?: Answerable<text> | Answerable<document> | Answerable<arraybuffer> | Answerable<blob> | Answerable<json> | Answerable<stream> | Answerable<formdata>; 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>; allowedSocketPaths?: Answerable<string> | 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<string> }; cancelToken?: { promise: Answerable<Cancel>; reason?: { message: Answerable<string> }; throwIfRequested: any; subscribe: any; unsubscribe: any; toAbortSignal: any }; decompress?: Answerable<false> | Answerable<true>; transitional?: { silentJSONParsing?: Answerable<false> | Answerable<true>; forcedJSONParsing?: Answerable<false> | Answerable<true>; clarifyTimeoutError?: Answerable<false> | Answerable<true>; legacyInterceptorReqResOrdering?: Answerable<false> | Answerable<true>; advertiseZstdAcceptEncoding?: Answerable<false> | Answerable<true>; validateStatusUndefinedResolves?: Answerable<false> | Answerable<true> }; signal?: { aborted: Answerable<false> | Answerable<true>; onabort?: {}; addEventListener?: {}; removeEventListener?: {} }; insecureHTTPParser?: Answerable<false> | Answerable<true>; env?: { FormData?: {}; fetch?: {}; Request?: {}; Response?: {} }; formSerializer?: { visitor?: {}; dots?: Answerable<false> | Answerable<true>; metaTokens?: Answerable<false> | Answerable<true>; indexes?: Answerable<false> | Answerable<true>; maxDepth?: Answerable<number>; Blob?: {} }; family?: Answerable<4> | Answerable<6>; lookup?: {} | {}; withXSRFToken?: Answerable<false> | Answerable<true> | {}; parseReviver?: {}; fetchOptions?: {} | { cache?: Answerable<default> | Answerable<reload> | Answerable<force-cache> | Answerable<no-cache> | Answerable<no-store> | Answerable<only-if-cached>; credentials?: Answerable<include> | Answerable<omit> | Answerable<same-origin>; integrity?: Answerable<string>; keepalive?: Answerable<false> | Answerable<true>; mode?: Answerable<same-origin> | Answerable<cors> | Answerable<navigate> | Answerable<no-cors>; priority?: Answerable<auto> | Answerable<high> | Answerable<low>; redirect?: Answerable<error> | Answerable<follow> | Answerable<manual>; referrer?: Answerable<string>; referrerPolicy?: Answerable<same-origin> | Answerable<> | Answerable<no-referrer> | Answerable<no-referrer-when-downgrade> | Answerable<origin> | Answerable<origin-when-cross-origin> | Answerable<strict-origin> | Answerable<strict-origin-when-cross-origin> | Answerable<unsafe-url>; window?: null }; httpVersion?: Answerable<1> | Answerable<2>; http2Options?: { sessionTimeout?: Answerable<number> }; formDataHeaderPolicy?: Answerable<legacy> | Answerable<content-only>; redact?: Answerable<string>[]; sensitiveHeaders?: Answerable<string>[] }>
Axios request configuration overrides
Returns OptionsRequest
Screenplay Pattern
externalas
Maps this question's resolved answer to a QuestionAdapter of a different type.
Provide a function to transform the resolved answer:
import { Question } from '@serenity-js/core'
const number = Question.about('number returned as text', () => '42')
.as(Number)
const name = Question.about('name with whitespace', () => ' Alice ')
.as(value => value.trim())
const firstValue = Question.about('available values', () => ['first', 'second'])
.as(values => values[0])Alternatively, provide a constructor. When you call
.as(MyClass), Serenity/JS passes the resolved answer asMyClass's sole constructor argument. This is particularly useful when wrapping a mounted UI component in an Interaction Object for component testing:const card = story('components/UserCard/Default', { name: 'Alice' }).as(UserCard)To distinguish a mapping function from a constructor, Serenity/JS calls the mapping as a function first. If that throws a
TypeErrorand the mapping has aprototype(indicating an ES6 class), Serenity/JS retries withnew. This preserves the primitive result ofNumber(42), rather than producing aNumberwrapper object.Learn more
Type parameters
- O
Parameters
externalmapping: (answer: AxiosRequestConfig<any, any>) => O | Promise<O>
A function that transforms the resolved answer, or a constructor that receives it as its sole argument.
Returns QuestionAdapter<O>
A QuestionAdapter that resolves to the mapped answer.
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
Learn more