///
///
declare namespace Cypress {
type FileContents = string | any[] | object
type HistoryDirection = 'back' | 'forward'
type HttpMethod = string
type RequestBody = string | object
type ViewportOrientation = 'portrait' | 'landscape'
type PrevSubject = keyof PrevSubjectMap
type TestingType = 'e2e' | 'component'
type PluginConfig = (on: PluginEvents, config: PluginConfigOptions) => void | ConfigOptions | Promise
interface JQueryWithSelector extends JQuery {
selector?: string | null
}
interface PrevSubjectMap {
optional: O
element: JQueryWithSelector
document: Document
window: Window
}
interface CommandOptions {
prevSubject: boolean | PrevSubject | PrevSubject[]
}
interface CommandFn {
(this: Mocha.Context, ...args: Parameters): ReturnType | void
}
interface CommandFns {
[name: string]: (this: Mocha.Context, ...args: any) => any
}
interface CommandFnWithSubject {
(this: Mocha.Context, prevSubject: S, ...args: Parameters): ReturnType | void
}
interface CommandFnsWithSubject {
[name: string]: (this: Mocha.Context, prevSubject: S, ...args: any) => any
}
interface CommandOriginalFn extends CallableFunction {
(...args: Parameters): ReturnType
}
interface CommandOriginalFnWithSubject extends CallableFunction {
(prevSubject: S, ...args: Parameters): ReturnType
}
interface CommandFnWithOriginalFn {
(this: Mocha.Context, originalFn: CommandOriginalFn, ...args: Parameters): ReturnType | void
}
interface CommandFnWithOriginalFnAndSubject {
(this: Mocha.Context, originalFn: CommandOriginalFnWithSubject, prevSubject: S, ...args: Parameters): ReturnType | void
}
interface ObjectLike {
[key: string]: any
}
interface Auth {
username: string
password: string
}
interface RemoteState {
auth?: Auth
domainName: string
strategy: 'file' | 'http'
origin: string
fileServer: string | null
props: Record
visiting: string
}
interface Backend {
/**
* Firefox only: Force Cypress to run garbage collection routines.
* No-op if not running in Firefox.
*
* @see https://on.cypress.io/firefox-gc-issue
*/
(task: 'firefox:force:gc'): Promise
(task: 'net', eventName: string, frame: any): Promise
}
type BrowserName = 'electron' | 'chrome' | 'chromium' | 'firefox' | 'edge' | string
type BrowserChannel = 'stable' | 'canary' | 'beta' | 'dev' | 'nightly' | string
type BrowserFamily = 'chromium' | 'firefox'
/**
* Describes a browser Cypress can control
*/
interface Browser {
/**
* Short browser name.
*/
name: BrowserName
/**
* The underlying engine for this browser.
*/
family: BrowserFamily
/**
* The release channel of the browser.
*/
channel: BrowserChannel
/**
* Human-readable browser name.
*/
displayName: string
version: string
majorVersion: number | string
path: string
isHeaded: boolean
isHeadless: boolean
/**
* Informational text to accompany this browser. Shown in desktop-gui.
*/
info?: string
/**
* Warning text to accompany this browser. Shown in desktop-gui.
*/
warning?: string
/**
* The minimum majorVersion of this browser supported by Cypress.
*/
minSupportedVersion?: number
/**
* If `true`, this browser is too old to be supported by Cypress.
*/
unsupportedVersion?: boolean
}
interface LocalStorage {
/**
* Called internally to clear `localStorage` in two situations.
*
* 1. Before every test, this is called with no argument to clear all keys.
* 2. On `cy.clearLocalStorage(keys)` this is called with `keys` as an argument.
*
* You should not call this method directly to clear `localStorage`; instead, use `cy.clearLocalStorage(key)`.
*
* @see https://on.cypress.io/clearlocalstorage
*/
clear: (keys?: string[]) => void
}
type IsBrowserMatcher = BrowserName | Partial | Array>
interface ViewportPosition extends WindowPosition {
right: number
bottom: number
}
interface WindowPosition {
top: number
left: number
topCenter: number
leftCenter: number
}
interface ElementPositioning {
scrollTop: number
scrollLeft: number
width: number
height: number
fromElViewport: ViewportPosition
fromElWindow: WindowPosition
fromAutWindow: WindowPosition
}
interface ElementCoordinates {
width: number
height: number
fromElViewport: ViewportPosition & { x: number, y: number }
fromElWindow: WindowPosition & { x: number, y: number }
fromAutWindow: WindowPosition & { x: number, y: number }
}
/**
* Spec type for the given test. "integration" is the default, but
* tests run using `open --component` will be "component"
*
* @see https://on.cypress.io/experiments
*/
type CypressSpecType = 'integration' | 'component'
/**
* A Cypress spec.
*/
interface Spec {
name: string // "config_passing_spec.js"
relative: string // "cypress/integration/config_passing_spec.js" or "__all" if clicked all specs button
absolute: string // "/Users/janelane/app/cypress/integration/config_passing_spec.js"
specFilter?: string // optional spec filter used by the user
specType?: CypressSpecType
}
/**
* Window type for Application Under Test(AUT)
*/
type AUTWindow = Window & typeof globalThis & ApplicationWindow
/**
* The interface for user-defined properties in Window object under test.
*/
interface ApplicationWindow { } // tslint:disable-line
/**
* The configuration for Cypress.
*/
type Config = ResolvedConfigOptions & RuntimeConfigOptions & RuntimeServerConfigOptions
/**
* Several libraries are bundled with Cypress by default.
*
* @see https://on.cypress.io/api
*/
interface Cypress {
/**
* Lodash library
*
* @see https://on.cypress.io/_
* @example
* Cypress._.keys(obj)
*/
_: _.LoDashStatic
/**
* jQuery library
*
* @see https://on.cypress.io/$
* @example
* Cypress.$('p')
*/
$: JQueryStatic
/**
* Cypress automatically includes a Blob library and exposes it as Cypress.Blob.
*
* @see https://on.cypress.io/blob
* @see https://github.com/nolanlawson/blob-util
* @example
* Cypress.Blob.method()
*/
Blob: BlobUtil.BlobUtilStatic
/**
* Cypress automatically includes a Buffer library and exposes it as Cypress.Buffer.
*
* @see https://on.cypress.io/buffer
* @see https://github.com/feross/buffer
* @example
* Cypress.Buffer.method()
*/
Buffer: BufferType
/**
* Cypress automatically includes minimatch and exposes it as Cypress.minimatch.
*
* @see https://on.cypress.io/minimatch
*/
minimatch: typeof Minimatch.minimatch
/**
* Cypress automatically includes Bluebird and exposes it as Cypress.Promise.
*
* @see https://on.cypress.io/promise
* @see https://github.com/petkaantonov/bluebird
* @example
* new Cypress.Promise((resolve, reject) => { ... })
*/
Promise: Bluebird.BluebirdStatic
/**
* Cypress includes Sinon.js library used in `cy.spy` and `cy.stub`.
*
* @see https://sinonjs.org/
* @see https://on.cypress.io/stubs-spies-and-clocks
* @see https://example.cypress.io/commands/spies-stubs-clocks
*/
sinon: sinon.SinonStatic
/**
* Cypress version string. i.e. "1.1.2"
* @see https://on.cypress.io/version
* @example
```
expect(Cypress.version).to.be.a('string')
if (Cypress.version === '1.2.0') {
// test something specific
}
```
*/
version: string
/**
* OS platform name, from Node `os.platform()`
*
* @see https://nodejs.org/api/os.html#os_os_platform
* @example
* Cypress.platform // "darwin"
*/
platform: string
/**
* CPU architecture, from Node `os.arch()`
*
* @see https://nodejs.org/api/os.html#os_os_arch
* @example
* Cypress.arch // "x64"
*/
arch: string
/**
* Currently executing spec file.
* @example
* ```
* Cypress.spec
* // {
* // name: "config_passing_spec.coffee",
* // relative: "cypress/integration/config_passing_spec.coffee",
* // absolute: "/users/smith/projects/web/cypress/integration/config_passing_spec.coffee"
* // specType: "integration"
* // }
* ```
*/
spec: Spec
/**
* Currently executing test runnable instance.
*/
currentTest: {
title: string
titlePath: string[]
}
/**
* Information about the browser currently running the tests
*/
browser: Browser
/**
* Internal class for LocalStorage management.
*/
LocalStorage: LocalStorage
/**
* Internal class for session management.
*/
session: Session
/**
* Current testing type, determined by the Test Runner chosen to run.
*/
testingType: TestingType
/**
* Fire automation:request event for internal use.
*/
automation(eventName: string, ...args: any[]): Bluebird.Promise
/**
* Promise wrapper for certain internal tasks.
*/
backend: Backend
/**
* Returns all configuration objects.
* @see https://on.cypress.io/config
* @example
```
Cypress.config()
// {defaultCommandTimeout: 10000, pageLoadTimeout: 30000, ...}
```
*/
config(): Config
/**
* Returns one configuration value.
* @see https://on.cypress.io/config
* @example
```
Cypress.config('pageLoadTimeout')
// 60000
```
*/
config(key: K): Config[K]
/**
* Sets one configuration value.
* @see https://on.cypress.io/config
* @example
```
Cypress.config('viewportWidth', 800)
```
*/
config(key: K, value: TestConfigOverrides[K]): void
/**
* Sets multiple configuration values at once.
* @see https://on.cypress.io/config
* @example
```
Cypress.config({
defaultCommandTimeout: 10000,
viewportHeight: 900
})
```
*/
config(Object: ConfigOptions): void
// no real way to type without generics
/**
* Returns all environment variables set with CYPRESS_ prefix or in "env" object in "cypress.config.{js,ts,mjs,cjs}"
*
* @see https://on.cypress.io/env
*/
env(): ObjectLike
/**
* Returns specific environment variable or undefined
* @see https://on.cypress.io/env
* @example
* // cypress.config.js
* { "env": { "foo": "bar" } }
* Cypress.env("foo") // => bar
*/
env(key: string): any
/**
* Set value for a variable.
* Any value you change will be permanently changed for the remainder of your tests.
* @see https://on.cypress.io/env
* @example
* Cypress.env("host", "http://server.dev.local")
*/
env(key: string, value: any): void
/**
* Set values for multiple variables at once. Values are merged with existing values.
* @see https://on.cypress.io/env
* @example
* Cypress.env({ host: "http://server.dev.local", foo: "foo" })
*/
env(object: ObjectLike): void
/**
* @returns the number of test retries currently enabled for the run
*/
getTestRetries(): number | null
/**
* Checks if a variable is a valid instance of `cy` or a `cy` chainable.
*
* @see https://on.cypress.io/iscy
* @example
* Cypress.isCy(cy) // => true
*/
isCy(obj: Chainable): obj is Chainable
isCy(obj: any): obj is Chainable
/**
* Returns true if currently running the supplied browser name or matcher object. Also accepts an array of matchers.
* @example isBrowser('chrome') will be true for the browser 'chrome:canary' and 'chrome:stable'
* @example isBrowser({ name: 'firefox', channel: 'dev' }) will be true only for the browser 'firefox:dev' (Firefox Developer Edition)
* @example isBrowser(['firefox', 'edge']) will be true only for the browsers 'firefox' and 'edge'
* @example isBrowser('!firefox') will be true for every browser other than 'firefox'
* @example isBrowser({ family: '!chromium'}) will be true for every browser not matching { family: 'chromium' }
* @param matcher browser name or matcher object to check.
*/
isBrowser(name: IsBrowserMatcher): boolean
/**
* Internal options for "cy.log" used in custom commands.
*
* @see https://on.cypress.io/cypress-log
*/
log(options: Partial): Log
/**
* @see https://on.cypress.io/api/commands
*/
Commands: {
add(name: T, fn: CommandFn): void
add(name: T, options: CommandOptions & {prevSubject: false}, fn: CommandFn): void
add(name: T, options: CommandOptions & {prevSubject: true}, fn: CommandFnWithSubject): void
add(
name: T, options: CommandOptions & { prevSubject: S | ['optional'] }, fn: CommandFnWithSubject,
): void
add(
name: T, options: CommandOptions & { prevSubject: S[] }, fn: CommandFnWithSubject[S]>,
): void
addAll(fns: CommandFns): void
addAll(options: CommandOptions & {prevSubject: false}, fns: CommandFns): void
addAll(options: CommandOptions & { prevSubject: true }, fns: CommandFnsWithSubject): void
addAll(
options: CommandOptions & { prevSubject: S | ['optional'] }, fns: CommandFnsWithSubject,
): void
addAll(
options: CommandOptions & { prevSubject: S[] }, fns: CommandFnsWithSubject[S]>,
): void
overwrite(name: T, fn: CommandFnWithOriginalFn): void
overwrite(name: T, fn: CommandFnWithOriginalFnAndSubject): void
}
/**
* @see https://on.cypress.io/cookies
*/
Cookies: {
debug(enabled: boolean, options?: Partial): void
/**
* @deprecated Use `cy.session()` instead.
* @see https://on.cypress.io/session
*/
preserveOnce(...names: string[]): void
/**
* @deprecated Use `cy.session()` instead.
* @see https://on.cypress.io/session
*/
defaults(options: Partial): CookieDefaults
}
/**
* @see https://on.cypress.io/dom
*/
dom: {
/**
* Returns a jQuery object obtained by wrapping an object in jQuery.
*/
wrap(wrappingElement_function: JQuery.Selector | JQuery.htmlString | Element | JQuery | ((index: number) => string | JQuery)): JQuery
query(selector: JQuery.Selector, context?: Element | JQuery): JQuery
/**
* Returns an array of raw elements pulled out from a jQuery object.
*/
unwrap(obj: any): any
/**
* Returns a boolean indicating whether an object is a DOM object.
*/
isDom(obj: any): boolean
isType(element: JQuery | HTMLElement, type: string): boolean
/**
* Returns a boolean indicating whether an element is visible.
*/
isVisible(element: JQuery | HTMLElement): boolean
/**
* Returns a boolean indicating whether an element is hidden.
*/
isHidden(element: JQuery | HTMLElement, methodName?: string, options?: object): boolean
/**
* Returns a boolean indicating whether an element can receive focus.
*/
isFocusable(element: JQuery | HTMLElement): boolean
isTextLike(element: JQuery | HTMLElement): boolean
/**
* Returns a boolean indicating whether an element is scrollable.
*/
isScrollable(element: Window | JQuery | HTMLElement): boolean
/**
* Returns a boolean indicating whether an element currently has focus.
*/
isFocused(element: JQuery | HTMLElement): boolean
/**
* Returns a boolean indicating whether an element is detached from the DOM.
*/
isDetached(element: JQuery | HTMLElement): boolean
/**
* Returns a boolean indicating whether an element is attached to the DOM.
*/
isAttached(element: JQuery | HTMLElement | Window | Document): boolean
isSelector(element: JQuery | HTMLElement, selector: JQuery.Selector): boolean
/**
* Returns a boolean indicating whether an element is a descendent of another element.
*/
isDescendent(element1: JQuery | HTMLElement, element2: JQuery | HTMLElement): boolean
/**
* Returns a boolean indicating whether object is undefined or html, body, or document.
*/
isUndefinedOrHTMLBodyDoc(obj: any): boolean
/**
* Returns a boolean indicating whether an object is a DOM element.
*/
isElement(obj: any): boolean
/**
* Returns a boolean indicating whether a node is of document type.
*/
isDocument(obj: any): boolean
/**
* Returns a boolean indicating whether an object is a window object.
*/
isWindow(obj: any): obj is Window
/**
* Returns a boolean indicating whether an object is a jQuery object.
*/
isJquery(obj: any): obj is JQuery
isInputType(element: JQuery | HTMLElement, type: string | string[]): boolean
stringify(element: JQuery | HTMLElement, form: string): string
getElements(element: JQuery): JQuery | HTMLElement[]
getContainsSelector(text: string, filter?: string): JQuery.Selector
getFirstDeepestElement(elements: HTMLElement[], index?: number): HTMLElement
getWindowByElement(element: JQuery | HTMLElement): JQuery | HTMLElement
getReasonIsHidden(element: JQuery | HTMLElement, options?: object): string
getFirstScrollableParent(element: JQuery | HTMLElement): JQuery | HTMLElement
getFirstFixedOrStickyPositionParent(element: JQuery | HTMLElement): JQuery | HTMLElement
getFirstStickyPositionParent(element: JQuery | HTMLElement): JQuery | HTMLElement
getCoordsByPosition(left: number, top: number, xPosition?: string, yPosition?: string): number
getElementPositioning(element: JQuery | HTMLElement): ElementPositioning
getElementAtPointFromViewport(doc: Document, x: number, y: number): Element | null
getElementCoordinatesByPosition(element: JQuery | HTMLElement, position: string): ElementCoordinates
getElementCoordinatesByPositionRelativeToXY(element: JQuery | HTMLElement, x: number, y: number): ElementPositioning
}
/**
* @see https://on.cypress.io/keyboard-api
*/
Keyboard: {
defaults(options: Partial): void
}
/**
* @see https://on.cypress.io/api/api-server
*/
Server: {
defaults(options: Partial): void
}
/**
* @see https://on.cypress.io/screenshot-api
*/
Screenshot: {
defaults(options: Partial): void
}
/**
* @see https://on.cypress.io/selector-playground-api
*/
SelectorPlayground: {
defaults(options: Partial): void
getSelector($el: JQuery): JQuery.Selector
}
/**
* These events come from Cypress as it issues commands and reacts to their state. These are all useful to listen to for debugging purposes.
* @see https://on.cypress.io/catalog-of-events#App-Events
*/
on: Actions
/**
* These events come from Cypress as it issues commands and reacts to their state. These are all useful to listen to for debugging purposes.
* @see https://on.cypress.io/catalog-of-events#App-Events
*/
once: Actions
/**
* These events come from Cypress as it issues commands and reacts to their state. These are all useful to listen to for debugging purposes.
* @see https://on.cypress.io/catalog-of-events#App-Events
*/
off: Actions
/**
* Trigger action
* @private
*/
action: (action: string, ...args: any[]) => any[] | void
/**
* Load files
* @private
*/
onSpecWindow: (window: Window, specList: string[] | Array<() => Promise>) => void
}
interface SessionOptions {
validate?: () => false | void
}
type CanReturnChainable = void | Chainable | Promise
type ThenReturn =
R extends void ? Chainable :
R extends R | undefined ? Chainable> :
Chainable
/**
* Chainable interface for non-array Subjects
*/
interface Chainable {
/**
* Create an assertion. Assertions are automatically retried until they pass or time out.
*
* @alias should
* @see https://on.cypress.io/and
*/
and: Chainer
/**
* Assign an alias for later use. Reference the alias later within a
* [cy.get()](https://on.cypress.io/get) or
* [cy.wait()](https://on.cypress.io/wait) command with a `@` prefix.
* You can alias DOM elements, routes, stubs and spies.
*
* @see https://on.cypress.io/as
* @see https://on.cypress.io/variables-and-aliases
* @see https://on.cypress.io/get
* @example
```
// Get the aliased 'todos' elements
cy.get('ul#todos').as('todos')
//...hack hack hack...
// later retrieve the todos
cy.get('@todos')
```
*/
as(alias: string): Chainable
/**
* Select a file with the given element, or drag and drop a file over any DOM subject.
*
* @param {FileReference} files - The file(s) to select or drag onto this element.
* @see https://on.cypress.io/selectfile
* @example
* cy.get('input[type=file]').selectFile(Cypress.Buffer.from('text'))
* cy.get('input[type=file]').selectFile({
* fileName: 'users.json',
* fileContents: [{name: 'John Doe'}]
* })
*/
selectFile(files: FileReference | FileReference[], options?: Partial): Chainable
/**
* Blur a focused element. This element must currently be in focus.
* If you want to ensure an element is focused before blurring,
* try using .focus() before .blur().
*
* @see https://on.cypress.io/blur
*/
blur(options?: Partial): Chainable
/**
* Check checkbox(es) or radio(s). This element must be an `` with type `checkbox` or `radio`.
*
* @see https://on.cypress.io/check
* @example
* // Check checkbox element
* cy.get('[type="checkbox"]').check()
* // Check first radio element
* cy.get('[type="radio"]').first().check()
*/
check(options?: Partial): Chainable
/**
* Check checkbox(es) or radio(s). This element must be an `` with type `checkbox` or `radio`.
*
* @see https://on.cypress.io/check
* @example
* // Select the radio with the value of 'US'
* cy.get('[type="radio"]').check('US')
* // Check the checkboxes with the values 'ga' and 'ca'
* cy.get('[type="checkbox"]').check(['ga', 'ca'])
*/
check(value: string | string[], options?: Partial): Chainable
/**
* Get the children of each DOM element within a set of DOM elements.
*
* @see https://on.cypress.io/children
*/
children(options?: Partial): Chainable>
children(selector: K, options?: Partial): Chainable>
children(selector: string, options?: Partial): Chainable>
/**
* Clear the value of an `input` or `textarea`.
* An alias for `.type({selectall}{backspace})`
*
* @see https://on.cypress.io/clear
*/
clear(options?: Partial): Chainable
/**
* Clear a specific browser cookie.
* Cypress automatically clears all cookies before each test to prevent state from being shared across tests. You shouldn't need to use this command unless you're using it to clear a specific cookie inside a single test.
*
* @see https://on.cypress.io/clearcookie
*/
clearCookie(name: string, options?: Partial): Chainable
/**
* Clear all browser cookies.
* Cypress automatically clears all cookies before each test to prevent state from being shared across tests. You shouldn't need to use this command unless you're using it to clear a specific cookie inside a single test.
*
* @see https://on.cypress.io/clearcookies
*/
clearCookies(options?: Partial): Chainable
/**
* Clear data in local storage.
* Cypress automatically runs this command before each test to prevent state from being
* shared across tests. You shouldn't need to use this command unless you're using it
* to clear localStorage inside a single test. Yields `localStorage` object.
*
* @see https://on.cypress.io/clearlocalstorage
* @param {string} [key] - name of a particular item to remove (optional).
* @example
```
// Removes all local storage keys
cy.clearLocalStorage()
.should(ls => {
expect(ls.getItem('prop1')).to.be.null
})
// Removes item "todos"
cy.clearLocalStorage("todos")
```
*/
clearLocalStorage(key?: string): Chainable
/**
* Clear keys in local storage that match given regular expression.
*
* @see https://on.cypress.io/clearlocalstorage
* @param {RegExp} re - regular expression to match.
* @example
```
// Clears all local storage matching /app-/
cy.clearLocalStorage(/app-/)
```
*/
clearLocalStorage(re: RegExp): Chainable
/**
* Clear data in local storage.
* Cypress automatically runs this command before each test to prevent state from being
* shared across tests. You shouldn't need to use this command unless you're using it
* to clear localStorage inside a single test. Yields `localStorage` object.
*
* @see https://on.cypress.io/clearlocalstorage
* @param {options} [object] - options object
* @example
```
// Removes all local storage items, without logging
cy.clearLocalStorage({ log: false })
```
*/
clearLocalStorage(options: Partial): Chainable
/**
* Clear data in local storage.
* Cypress automatically runs this command before each test to prevent state from being
* shared across tests. You shouldn't need to use this command unless you're using it
* to clear localStorage inside a single test. Yields `localStorage` object.
*
* @see https://on.cypress.io/clearlocalstorage
* @param {string} [key] - name of a particular item to remove (optional).
* @param {options} [object] - options object
* @example
```
// Removes item "todos" without logging
cy.clearLocalStorage("todos", { log: false })
```
*/
clearLocalStorage(key: string, options: Partial): Chainable
/**
* Click a DOM element.
*
* @see https://on.cypress.io/click
* @example
* cy.get('button').click() // Click on button
* cy.focused().click() // Click on el with focus
* cy.contains('Welcome').click() // Click on first el containing 'Welcome'
*/
click(options?: Partial): Chainable
/**
* Click a DOM element at specific corner / side.
*
* @param {PositionType} position - The position where the click should be issued.
* The `center` position is the default position.
* @see https://on.cypress.io/click
* @example
* cy.get('button').click('topRight')
*/
click(position: PositionType, options?: Partial): Chainable
/**
* Click a DOM element at specific coordinates
*
* @param {number} x The distance in pixels from the element's left to issue the click.
* @param {number} y The distance in pixels from the element's top to issue the click.
* @see https://on.cypress.io/click
* @example
```
// The click below will be issued inside of the element
// (15px from the left and 40px from the top).
cy.get('button').click(15, 40)
```
*/
click(x: number, y: number, options?: Partial): Chainable
/**
* `cy.clock()` overrides native global functions related to time allowing them to be controlled
* synchronously via [cy.tick()](https://on.cypress.io/tick) or the yielded clock object.
* This includes controlling:
* * `setTimeout`
* * `clearTimeout`
* * `setInterval`
* * `clearInterval`
* * `Date` Objects
*
* The clock starts at the unix epoch (timestamp of 0).
* This means that when you instantiate new Date in your application,
* it will have a time of January 1st, 1970.
*
* To restore the real clock call `.restore()`
*
* @example
* cy.clock()
* ...
* // restore the application clock
* cy.clock().then(clock => {
* clock.restore()
* })
* // or use this shortcut
* cy.clock().invoke('restore')
*
* @see https://on.cypress.io/clock
*/
clock(): Chainable
/**
* Mocks global clock and sets current timestamp to the given value.
* Overrides all functions that deal with time.
*
* @see https://on.cypress.io/clock
* @example
* // in your app code
* $('#date').text(new Date().toJSON())
* // in the spec file
* // March 14, 2017 timestamp or Date object
* const now = new Date(2017, 2, 14).getTime()
* cy.clock(now)
* cy.visit('/index.html')
* cy.get('#date').contains('2017-03-14')
* // to restore the real clock
* cy.clock().then(clock => {
* clock.restore()
* })
* // or use this shortcut
* cy.clock().invoke('restore')
*/
clock(now: number | Date, options?: Loggable): Chainable
/**
* Mocks global clock but only overrides specific functions.
*
* @see https://on.cypress.io/clock
* @example
* // keep current date but override "setTimeout" and "clearTimeout"
* cy.clock(null, ['setTimeout', 'clearTimeout'])
*/
clock(now: number | Date, functions?: Array<'setTimeout' | 'clearTimeout' | 'setInterval' | 'clearInterval' | 'Date'>, options?: Loggable): Chainable
/**
* Mocks global clock and all functions.
*
* @see https://on.cypress.io/clock
* @example
* // mock clock but do not log this command
* cy.clock({ log: false })
*/
clock(options: Loggable): Chainable
/**
* Get the first DOM element that matches the selector (whether it be itself or one of its ancestors).
*
* @see https://on.cypress.io/closest
*/
closest(selector: K, options?: Partial): Chainable>
closest(selector: string, options?: Partial): Chainable>
/**
* Get the DOM element containing the text.
* DOM elements can contain more than the desired text and still match.
* Additionally, Cypress prefers some DOM elements over the deepest element found.
*
* @see https://on.cypress.io/contains
* @example
* // Yield el in .nav containing 'About'
* cy.get('.nav').contains('About')
* // Yield first el in document containing 'Hello'
* cy.contains('Hello')
* // you can use regular expression
* cy.contains(/^b\w+/)
* // yields