siesta-lite
Version:
Stress-free JavaScript unit testing and functional testing tool, works in NodeJS and browsers
67 lines (52 loc) • 1.98 kB
JavaScript
/*
Siesta 5.6.1
Copyright(c) 2009-2022 Bryntum AB
https://bryntum.com/contact
https://bryntum.com/products/siesta/license
*/
Ext.define('Siesta.Recorder.UI.Editor.ActionName', {
extend : 'Ext.form.field.ComboBox',
alias : 'widget.typeeditor',
displayField : 'id',
valueField : 'id',
queryMode : 'local',
matchFieldWidth : false,
forceSelection : true,
typeAhead : true,
selectOnFocus : true,
store : {
fields : [ 'id', 'type' ]
},
// TODO move to test class autogenerate these (either during Siesta build or at Siesta runtime - via JsDuck?)
// Not all commands can be edited either (like waitForStoresToLoad etc).
actions : [
{ id : 'group', type : 'group' },
{ id : 'click', type : 'mouseinput' },
{ id : 'dblclick', type : 'mouseinput' },
{ id : 'contextmenu', type : 'mouseinput' },
{ id : 'drag', type : 'mouseinput' },
{ id : 'fn', type : 'fn' },
{ id : 'moveCursorTo', type : 'mouseinput' },
{ id : 'moveCursorBy', type : 'mouseinput' },
{ id : 'mousedown', type : 'mouseinput' },
{ id : 'mouseup', type : 'mouseinput' },
{ id : 'type', type : 'keyinput' },
{ id : 'screenshot', type : 'screenshot' },
{ id : 'setUrl', type : 'navigate' }
],
applyChanges : function (actionRecord) {
var value = this.getValue();
actionRecord.setAction(value)
actionRecord.set('leaf', value !== 'group');
},
populate : function (test) {
var waitActions = [];
for (var o in test) {
if (o.match(/waitFor.+/) && typeof test[ o ] === 'function') {
waitActions.push({ id : o, type : 'wait' });
}
}
var actions = this.actions.concat(waitActions).sort(function(a, b) { return a.id < b.id ? -1 : 1; });
this.store.loadData(actions);
}
});