2.3.0 • Published 4 years ago

@netsells/simulate-user v2.3.0

Weekly downloads
16
License
ISC
Repository
-
Last release
4 years ago

npm version Build Status codecov Mutation testing badge

@netsells/simulate-user

Library for simulating user interactions using JavaScript in the browser

Installation

yarn add @netsells/simulate-user

Usage

import SimulateUser from '@netsells/simulate-user';

const sim = new SimulateUser();

const el = await sim.find({ query: 'a', text: 'Click me' });
await el.click();

Documentation

Classes

Functions

Typedefs

DebugUser

Helper class for providing debug information.

Kind: global class

new DebugUser(...args)

Setup the class.

ParamType
...argsany

debugUser.build(...args) ⇒ Proxy.<object>

Generate a instance using the same class constructor and debug emitter.

Kind: instance method of DebugUser

ParamType
...argsany

debugUser.emit(callback, ...args)

Emit and log an event.

Kind: instance method of DebugUser

ParamType
callbackstring
...argsany

debugUser.on(...args)

Listen to a debug event.

Kind: instance method of DebugUser

ParamType
...argsany

SimulateUser

Simulate a user.

Kind: global class

new SimulateUser(node)

Create a SimulateUser class for a page element.

ParamType
nodeHTMLElement

simulateUser.visible ⇒ boolean

Check if the node is visible.

Kind: instance property of SimulateUser

simulateUser.hidden ⇒ boolean

Check if the node is hidden.

Kind: instance property of SimulateUser

simulateUser.nextElementSibling ⇒ SimulateUser | null

NextElementSibling but returns a wrapper.

Kind: instance property of SimulateUser

simulateUser.options ⇒ Array.<string>

Get all select option values.

Kind: instance property of SimulateUser

simulateUser.text ⇒ string

Get trimmed text content.

Kind: instance property of SimulateUser

simulateUser.directText ⇒ string

Get text content which is a direct child of this node.

Kind: instance property of SimulateUser

simulateUser.parentElement ⇒ SimulateUser

Get the parentElement in a wrapper.

Kind: instance property of SimulateUser

simulateUser.className ⇒ string

Proxy for className.

Kind: instance property of SimulateUser

simulateUser.value ⇒ string

Proxy for value.

Kind: instance property of SimulateUser

simulateUser.htmlFor ⇒ string

Proxy for htmlFor.

Kind: instance property of SimulateUser

simulateUser.tag ⇒ string

TagName but lower case.

Kind: instance property of SimulateUser

simulateUser.build(...args) ⇒ Proxy.<SimulateUser>

Generate a instance using the same class constructor and debug emitter.

Kind: instance method of SimulateUser

ParamType
...argsany

simulateUser.sleep(timeout) ⇒ Promise.<undefined>

Returns a promise which resolves in a certain amount of milliseconds.

Kind: instance method of SimulateUser

ParamType
timeoutnumber

simulateUser.timeout(func, limit) ⇒ Promise.<*>

Returns a promise which times out if the passed in promise doesn't resolve in time.

Kind: instance method of SimulateUser

ParamType
funcfunction
limitnumber

simulateUser.getEventOptions(options) ⇒ object

Get options for an event.

Kind: instance method of SimulateUser

ParamType
optionsobject

simulateUser.querySelectorAll(query) ⇒ Array.<SimulateUser>

Proxy for querySelectorAll but returns an array of wrappers instead of nodes.

Kind: instance method of SimulateUser

ParamType
querystring | Array.<string>

simulateUser.getElementById(id) ⇒ SimulateUser | null

GetElementById but returns a wrapper.

Kind: instance method of SimulateUser

ParamType
idstring

simulateUser.getElementsByName(name) ⇒ Array.<SimulateUser>

GetElementsByName but returns an array of wrappers.

Kind: instance method of SimulateUser

ParamType
namestring

simulateUser.closest(...args) ⇒ SimulateUser | null

Closest but returns a wrapper.

Kind: instance method of SimulateUser

ParamType
...argsany

simulateUser.all(options) ⇒ SimulateUser | null

Search through page elements as a user would, using text.

Kind: instance method of SimulateUser

ParamType
optionsSearchProperties

simulateUser.first(options) ⇒ SimulateUser | null

Get the first element of a query to all.

Kind: instance method of SimulateUser

ParamType
optionsSearchProperties

simulateUser.find(options, limit) ⇒ SimulateUser

Get the first element of a query to all, but throws an error if it's not found. Will wait for an element to appear (e.g. If a form is updating).

Kind: instance method of SimulateUser
Throws:

  • Error
ParamTypeDescription
optionsSearchProperties
options.similarbooleanIf no exact matches found, fall back to a fuzzy search.
limitnumber

simulateUser.field(label, findOptions) ⇒ SimulateUser | null

Get a field based on its label.

Kind: instance method of SimulateUser
Throws:

  • Error
ParamTypeDefault
labelstring
findOptionsobject{}

simulateUser.fieldSet(legend) ⇒ SimulateUser | null

Get a fieldset based on its legend.

Kind: instance method of SimulateUser
Throws:

  • Error
ParamType
legendstring

simulateUser.dispatchEvent(event)

Proxy for dispatchEvent.

Kind: instance method of SimulateUser

ParamType
eventEvent

simulateUser.click(search)

Click this node.

Kind: instance method of SimulateUser

ParamTypeDefault
searchSearchProperties

simulateUser.attach(files)

Attach files to this input element.

Kind: instance method of SimulateUser

ParamType
filesArray.<Files>

simulateUser.check(checked)

Check this checkbox.

Kind: instance method of SimulateUser

ParamTypeDefault
checkedbooleantrue

simulateUser.focus()

Focus this element.

Kind: instance method of SimulateUser

simulateUser.blur()

Blur this element.

Kind: instance method of SimulateUser

simulateUser.typeKey(key)

Type a single key on this element.

Kind: instance method of SimulateUser

ParamType
keystring

simulateUser.type(text)

Type a string on this element.

Kind: instance method of SimulateUser

ParamType
textstring

simulateUser.typeValue(text)

Type into a fields value. Only simulates the final key press then triggers a single change event.

Kind: instance method of SimulateUser

ParamType
textstring | number

simulateUser.fillIn(label, value) ⇒ SimulateUser

Find a field by its label then fill it in.

Kind: instance method of SimulateUser
Returns: SimulateUser - - The field wrapper.

ParamType
labelstring
valueValueSelector

simulateUser.fill(value)

Fill in this node as a field.

Kind: instance method of SimulateUser

ParamType
valueValueSelector

simulateUser.select(value)

Change a value by the option text.

Kind: instance method of SimulateUser

ParamType
valueValueSelector

simulateUser.sendChangeEvent()

Send a change event.

Kind: instance method of SimulateUser

getDebugUser(Klass) ⇒ object

Get a debug user extending a user class.user.

Kind: global function

ParamType
KlassSimulateUser

get(target, prop) ⇒ any

Get the needed property.

Kind: global function

ParamType
targetobject
propany

SearchProperties : object

Kind: global typedef
Properties

NameTypeDescription
textstringText to search on.
querystringOptional query to filter on.
caseSensitivebooleanWhether text is case sensitive.
exactbooleanWhether text match should be exact (not including trimmed white space).
predicatefunctionPredicate function wrappers must match.
visiblebooleanIf element must be visible or not.
directbooleanIf text should be a direct child or not.

ValueSelector : SearchProperties | string | number

A generic value selector. For a textarea or input it should always be a string or number, for a select it can be a string or a SearchProperties.

Kind: global typedef

2.3.0

4 years ago

2.2.0

4 years ago

2.1.2

4 years ago

2.1.1

4 years ago

2.1.0

4 years ago

2.0.2

4 years ago

2.0.1

4 years ago

1.1.0

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago