Add basic tests for all non DOM/Window calls

Note that these are very basic tests and just a start to learn vitest. There are no tests for DOM/Window because I do not know how to do those tests the best way with some headless brower testing suit or which to use
This commit is contained in:
2025-03-10 10:49:35 +09:00
parent 233fb6a235
commit 31d71afe47
5 changed files with 164 additions and 8 deletions

View File

@@ -5,8 +5,11 @@ Creator: Clemens Schwaighofer
*/
export {
errorCatch, isFunction, executeFunctionByName, isObject, getObjectCount,
keyInObject, getKeyByValue,valueInObject, deepCopyFunction
errorCatch, isFunction, executeFunctionByName,
isObject, getObjectCount,
keyInObject, objectKeyExists,
getKeyByValue, valueInObject, objectValueExists,
deepCopyFunction
};
/**
@@ -90,10 +93,13 @@ function isObject(val)
/**
* get the length of an object (entries)
* @param {Object} object object to check
* @return {Number} number of entry
* @return {Number} number of entry, or -1 if not object
*/
function getObjectCount(object)
{
if (!isObject(object)) {
return -1;
}
return Object.keys(object).length;
}
@@ -102,8 +108,20 @@ function getObjectCount(object)
* @param {String} key key name
* @param {Object} object object to search key in
* @return {Boolean} true/false if key exists in object
* @deprecated Use objectKeyExists
*/
function keyInObject(key, object)
{
return objectKeyExists(object, key);
}
/**
* This is the correct order and will superseed keyInObject
* @param {Object} object object to search key in
* @param {String} key key name
* @returns {Boolean} true/false if key exists in object
*/
function objectKeyExists(object, key)
{
return Object.prototype.hasOwnProperty.call(object, key) ? true : false;
}
@@ -124,8 +142,20 @@ function getKeyByValue(object, value)
* @param {Object} object object to search value in
* @param {any} value any value (String, Number, etc)
* @return {Boolean} true on value found, false on not found
* @deprecated use objectValueExists
*/
function valueInObject(object, value)
{
return objectValueExists(object, value);
}
/**
* returns true if value is found in object with a key
* @param {Object} object object to search value in
* @param {any} value any value (String, Number, etc)
* @return {Boolean} true on value found, false on not found
*/
function objectValueExists(object, value)
{
return Object.keys(object).find(key => object[key] === value) ? true : false;
}

View File

@@ -25,9 +25,10 @@ function generateId(len)
}
/**
* creates a pseudo random string of 11 characters
* creates a pseudo random string of 10 or 11 characters
* works on all browsers
* after many runs it will create duplicates
* NOTE: no idea why this sometimes returns 10 or 11
* @return {String} not true random string
*/
function randomIdF()