siesta-lite
Version:
Stress-free JavaScript unit testing and functional testing tool, works in NodeJS and browsers
92 lines (66 loc) • 2.64 kB
JavaScript
/*
Siesta 5.6.1
Copyright(c) 2009-2022 Bryntum AB
https://bryntum.com/contact
https://bryntum.com/products/siesta/license
*/
Class('Siesta.Test.BDD.Placeholder', {
does : Siesta.Test.Role.Placeholder,
has : {
clsConstructor : { required : true },
t : null,
context : null,
globals : {
init : [
'String',
'Boolean',
'Number',
'Date',
'RegExp',
'Function',
'Array',
'Object'
]
}
},
methods : {
getClassName : function (onlyGlobals) {
var clsConstructor = this.getClassConstructor()
var context = this.context
var clsName
Joose.A.each(this.globals, function (property) {
if (clsConstructor == context[ property ]) { clsName = property; return false }
})
return onlyGlobals ? clsName : clsName || (clsConstructor ? clsConstructor + '' : '')
},
getClassConstructor : function () {
return this.clsConstructor
},
equalsTo : function (value) {
var clsConstructor = this.getClassConstructor()
if (!clsConstructor) return true
if (value instanceof Siesta.Test.BDD.Placeholder) {
var ownClassName = this.getClassName(true)
if (
value.getClassName(true) == 'Object' && (
ownClassName == 'Date' ||
ownClassName == 'RegExp' ||
ownClassName == 'Function'||
ownClassName == 'Array'
)
) {
return true
}
return clsConstructor == value.getClassConstructor()
}
var isEqual = false
var globalCls = this.getClassName(true)
if (globalCls)
isEqual = this.t.typeOf(value) == globalCls || (value instanceof this.context[ globalCls ])
return isEqual || (value instanceof clsConstructor)
},
toString : function () {
return 'any ' + (this.getClassName() || 'value')
}
}
})