Class: ComponentDriver<T>
@atomic-testing/core.ComponentDriver
Base class for all component drivers. It provides the basic functionality to interact with the component
Type parameters
Name | Type |
---|---|
T | extends ScenePart = |
Hierarchy
-
ComponentDriver
Implements
IComponentDriver
<T
>
Constructors
constructor
• new ComponentDriver<T
>(locator
, interactor
, option?
): ComponentDriver
<T
>
Type parameters
Name | Type |
---|---|
T | extends ScenePart = |
Parameters
Name | Type |
---|---|
locator | PartLocator |
interactor | Interactor |
option? | Partial <IComponentDriverOption <T >> |
Returns
Defined in
packages/core/src/drivers/ComponentDriver.ts:37
Properties
_locator
• Private
_locator: PartLocator
Defined in
packages/core/src/drivers/ComponentDriver.ts:26
_parts
• Private
Readonly
_parts: ScenePartDriver
<T
>
Defined in
packages/core/src/drivers/ComponentDriver.ts:27
commutableOption
• Readonly
commutableOption: IComponentDriverOption
<T
>
Option passed to the constructor includes both universal options which can be shared across all component driver tree, and component specific options which are only applicable to the component.
Commutable option is the option that can be shared across all component driver tree.
Defined in
packages/core/src/drivers/ComponentDriver.ts:35
interactor
• Readonly
interactor: Interactor
Defined in
packages/core/src/drivers/ComponentDriver.ts:39
Accessors
driverName
• get
driverName(): string
Returns
string
Defined in
packages/core/src/drivers/ComponentDriver.ts:247
locator
• get
locator(): PartLocator
Return the locator of the component
Returns
Implementation of
IComponentDriver.locator
Defined in
packages/core/src/drivers/ComponentDriver.ts:88
parts
• get
parts(): ScenePartDriver
<T
>
Return driver instance of all the named parts
Returns
Implementation of
IComponentDriver.parts
Defined in
packages/core/src/drivers/ComponentDriver.ts:81
Methods
click
▸ click(option?
): Promise
<void
>
Parameters
Name | Type |
---|---|
option? | Partial <ClickOption > |
Returns
Promise
<void
>
Defined in
packages/core/src/drivers/ComponentDriver.ts:155
enforcePartExistence
▸ enforcePartExistence(partName
): Promise
<void
>
Check the specified parts' existences, and throw MissPartError if any of the part is found not existence. Existence is defined by the part's existence in the DOM regardless of its visibility on the screen
Parameters
Name | Type | Description |
---|---|---|
partName | keyof T | readonly keyof T [] | Single or array of the names of the parts to be enforced |
Returns
Promise
<void
>
Defined in
packages/core/src/drivers/ComponentDriver.ts:97
exists
▸ exists(): Promise
<boolean
>
Whether the component exists/attached to the DOM
Returns
Promise
<boolean
>
true if the component is attached to the DOM, false otherwise
Implementation of
IComponentDriver.exists
Defined in
packages/core/src/drivers/ComponentDriver.ts:151
focus
▸ focus(option?
): Promise
<void
>
Parameters
Name | Type |
---|---|
option? | Partial <FocusOption > |
Returns
Promise
<void
>
Defined in
packages/core/src/drivers/ComponentDriver.ts:191
getAttribute
▸ getAttribute(attributeName
): Promise
<Optional
<string
>>
Parameters
Name | Type |
---|---|
attributeName | string |
Returns
Promise
<Optional
<string
>>
Defined in
packages/core/src/drivers/ComponentDriver.ts:143
getMissingPartNames
▸ getMissingPartNames(partName
): Promise
<readonly keyof T
[]>
Get the names of parts not in the DOM
Parameters
Name | Type | Description |
---|---|---|
partName | keyof T | readonly keyof T [] | Single or array of the names of the parts to be examined |
Returns
Promise
<readonly keyof T
[]>
Defined in
packages/core/src/drivers/ComponentDriver.ts:110
getText
▸ getText(): Promise
<Optional
<string
>>
Get the combined text content of the component
Returns
Promise
<Optional
<string
>>
If the component exists and has content, it should return the text or otherwise undefined
Implementation of
IComponentDriver.getText
Defined in
packages/core/src/drivers/ComponentDriver.ts:139
hover
▸ hover(option?
): Promise
<void
>
Parameters
Name | Type |
---|---|
option? | Partial <HoverOption > |
Returns
Promise
<void
>
Defined in
packages/core/src/drivers/ComponentDriver.ts:159
isVisible
▸ isVisible(): Promise
<boolean
>
Whether the component is visible. Visibility is defined
that the component does not have the CSS property display: none
,
visibility: hidden
, or opacity: 0
. However this does not
check wether the component is within the viewport.
Returns
Promise
<boolean
>
true if the component is visible, false otherwise
Implementation of
IComponentDriver.isVisible
Defined in
packages/core/src/drivers/ComponentDriver.ts:203
mouseDown
▸ mouseDown(option?
): Promise
<void
>
Parameters
Name | Type |
---|---|
option? | Partial <MouseDownOption > |
Returns
Promise
<void
>
Defined in
packages/core/src/drivers/ComponentDriver.ts:167
mouseEnter
▸ mouseEnter(option?
): Promise
<void
>
Parameters
Name | Type |
---|---|
option? | Partial <MouseEnterOption > |
Returns
Promise
<void
>
Defined in
packages/core/src/drivers/ComponentDriver.ts:183
mouseLeave
▸ mouseLeave(option?
): Promise
<void
>
Parameters
Name | Type |
---|---|
option? | Partial <MouseLeaveOption > |
Returns
Promise
<void
>
Defined in
packages/core/src/drivers/ComponentDriver.ts:187
mouseMove
▸ mouseMove(option?
): Promise
<void
>
Parameters
Name | Type |
---|---|
option? | Partial <MouseMoveOption > |
Returns
Promise
<void
>
Defined in
packages/core/src/drivers/ComponentDriver.ts:163
mouseOut
▸ mouseOut(option?
): Promise
<void
>
Parameters
Name | Type |
---|---|
option? | Partial <MouseOutOption > |
Returns
Promise
<void
>
Defined in
packages/core/src/drivers/ComponentDriver.ts:179
mouseOver
▸ mouseOver(option?
): Promise
<void
>
Parameters
Name | Type |
---|---|
option? | Partial <HoverOption > |
Returns
Promise
<void
>
Defined in
packages/core/src/drivers/ComponentDriver.ts:175
mouseUp
▸ mouseUp(option?
): Promise
<void
>
Parameters
Name | Type |
---|---|
option? | Partial <MouseUpOption > |
Returns
Promise
<void
>
Defined in
packages/core/src/drivers/ComponentDriver.ts:171
overriddenParentLocator
▸ overriddenParentLocator(): Optional
<PartLocator
>
Usually this should be undefined as the component driver corresponds to a component nested inside the parent DOM, thus the driver's locator would automatically chain with its parent's locator.
When the component is rendered outside the parent's DOM, which usually happens when the component is a modal or popup, supply the PartLocator on how to locate the component with the component's own locator.
Caution of usage: this function is called before the construction of the driver, so it should not use any instance properties
Returns
Defined in
packages/core/src/drivers/ComponentDriver.ts:59
overrideLocatorRelativePosition
▸ overrideLocatorRelativePosition(): Optional
<LocatorRelativePosition
>
Usually this should be undefined when the locator is defined by the ScenePart, thus it reflects the natural relative position of the component
However, in some implementation such as MUI v5 dialog, the actual dialog DOM is rendered outside the parent DOM, and the selector is "siblings", by defining this function, it allows the driver to have the knowledge of the actual relative position instead of offloading the knowledge to the consumer.
Caution of usage: this function is called before the construction of the driver, so it should not use any instance properties
Returns
Optional
<LocatorRelativePosition
>
Defined in
packages/core/src/drivers/ComponentDriver.ts:74
waitUntil
▸ waitUntil(option?
): Promise
<void
>
Wait until the component is in the expected state such as the component's visibility or existence. If the component has not reached the expected state within the timeout, it will throw an error.
By default it waits until the component is attached to the DOM within 30 seconds.
Parameters
Name | Type | Default value | Description |
---|---|---|---|
option | Partial <Readonly <WaitForOption >> | defaultWaitForOption | The option to configure the wait behavior |
Returns
Promise
<void
>
Implementation of
IComponentDriver.waitUntil