externalGetRequest
Hierarchy
- HTTPRequest
- GetRequest
Index
Methods
Screenplay Pattern
Methods
staticexternalto
Parameters
externalresourceUri: Answerable<string>
The URI where the
Actorshould send theHTTPRequest
Returns GetRequest
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
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 GetRequest
externalansweredBy
Parameters
externalactor: AnswersQuestions & UsesAbilities
Returns Promise<AxiosRequestConfig<any, any>>
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 HTTP GET method requests a representation of the specified resource. It is the most frequent type of request made by consumers of a typical HTTP API. For this reason it's important to test every known endpoint that responds to GET requests and ensure that it behaves correctly.
Since the GET method is used to retrieve data from a server, it should be implemented as safe and idempotent. This means that an identical request can be made once or several times in a row with the same effect while leaving the server in the same state.
Verify response to a GET request
Learn more