UNPKG

siesta-lite

Version:

Stress-free JavaScript unit testing and functional testing tool, works in NodeJS and browsers

91 lines (71 loc) 2.82 kB
/* Siesta 5.6.1 Copyright(c) 2009-2022 Bryntum AB https://bryntum.com/contact https://bryntum.com/products/siesta/license */ /** @class Siesta.Test.Action.Type @extends Siesta.Test.Action @mixin Siesta.Test.Action.Role.HasTarget This action will {@link Siesta.Test.Browser#type type} the provided {@link #text} into the provided {@link #target}. For more information about how you can type special characters and hold special keys such as ALT or SHIFT, please see the docs for the {@link Siesta.Test.Browser#type type} method. The target provide should be a {@link Siesta.Test.ActionTarget} - CSS selector, DOM element instance, Component Query etc. This action can be included in a `t.chain` call with the "type" shortcut. **Note** that unlike other actions, in its compact form the value of the "type" property should contain the text to type, not the target of action. t.chain( { // "type" into the currently focused DOM element type : 'Some text[ENTER]' }, // or { action : 'type', target : someDOMElement, text : 'Some text', options : { shiftKey : true } }, // or { // NOTE: "type" contains text to type, not the action target as in other actions type : 'Some text', target : someDOMElement } ); */ Class('Siesta.Test.Action.Type', { isa : Siesta.Test.Action, does : Siesta.Test.Action.Role.HasTarget, has : { requiredTestMethod : 'type', /** * @cfg {String} text * * The text to type into the target */ text : '', /** * @cfg {Object} options * * Any options that will be used when simulating the event. For information about possible * config options, please see: <https://developer.mozilla.org/en-US/docs/DOM/event.initMouseEvent> */ options : null, /** * @cfg {Boolean} clearExisting * * true to clear existing text in the target before typing */ clearExisting : false }, methods : { process : function () { var waitForTarget = this.waitForTarget || !!this.target; // By default use the current focused element as target this.target = this.target || this.test.activeElement(); // additional "getTarget" to allow functions as "target" value this.test.type(this.getTarget(), this.text, this.next, null, this.options, this.clearExisting, waitForTarget); } } }); Siesta.Test.ActionRegistry().registerAction('type', Siesta.Test.Action.Type)