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:
123
tests/JavaScriptHelpers.test.js
Normal file
123
tests/JavaScriptHelpers.test.js
Normal file
@@ -0,0 +1,123 @@
|
||||
import { describe, it, expect } from "vitest";
|
||||
|
||||
import {
|
||||
// errorCatch,
|
||||
// isFunction,
|
||||
// executeFunctionByName,
|
||||
isObject,
|
||||
getObjectCount,
|
||||
keyInObject,
|
||||
objectKeyExists,
|
||||
getKeyByValue,
|
||||
valueInObject,
|
||||
objectValueExists,
|
||||
deepCopyFunction
|
||||
} from '../src/utils/JavaScriptHelpers.mjs';
|
||||
|
||||
|
||||
// needs window class
|
||||
// function test() {}
|
||||
/* describe("isFunction", () => {
|
||||
it('Should return brack if function', () => {
|
||||
expect(isFunction("test")).toEqual(true);
|
||||
expect(isFunction("testFalse")).toEqual(false);
|
||||
});
|
||||
}); */
|
||||
|
||||
describe("isObject", () => {
|
||||
it('should return bool if object', () => {
|
||||
let empty_object = {};
|
||||
let is_object = {
|
||||
"a": 1
|
||||
};
|
||||
let is_string = "";
|
||||
let is_number = 1;
|
||||
expect(isObject(empty_object)).toEqual(true);
|
||||
expect(isObject(is_object)).toEqual(true);
|
||||
expect(isObject(is_string)).toEqual(false);
|
||||
expect(isObject(is_number)).toEqual(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("getObjectCount", () => {
|
||||
it('should return count of objects', () => {
|
||||
let zero = {};
|
||||
let one = {
|
||||
"a": 1
|
||||
};
|
||||
let notset = "";
|
||||
expect(getObjectCount(zero)).toEqual(0);
|
||||
expect(getObjectCount(one)).toEqual(1);
|
||||
expect(getObjectCount(notset)).toEqual(-1);
|
||||
});
|
||||
});
|
||||
|
||||
describe("objectKeyExists", () => {
|
||||
it('should return true if key exists in object', () => {
|
||||
let zero = {};
|
||||
let one = {
|
||||
"a": 1,
|
||||
"b": "foo"
|
||||
};
|
||||
let notset = "";
|
||||
expect(keyInObject("", zero)).toEqual(false);
|
||||
expect(objectKeyExists(zero, "")).toEqual(false);
|
||||
expect(keyInObject("a", one)).toEqual(true);
|
||||
expect(objectKeyExists(one, "a")).toEqual(true);
|
||||
expect(keyInObject("c", one)).toEqual(false);
|
||||
expect(objectKeyExists(one, "c")).toEqual(false);
|
||||
expect(keyInObject("", notset)).toEqual(false);
|
||||
expect(objectKeyExists(notset, "")).toEqual(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe("getKeyByValue", () => {
|
||||
it('should return the key for matching volume, first serve', () => {
|
||||
let zero = {};
|
||||
let one = {
|
||||
"a": 1,
|
||||
"b": "foo"
|
||||
};
|
||||
let notset = "";
|
||||
expect(getKeyByValue(zero, "")).toEqual("");
|
||||
expect(getKeyByValue(one, 1)).toEqual("a");
|
||||
expect(getKeyByValue(one, "foo")).toEqual("b");
|
||||
expect(getKeyByValue(one, "bar")).toEqual("");
|
||||
expect(getKeyByValue(notset, "")).toEqual("");
|
||||
});
|
||||
});
|
||||
|
||||
describe("objectValueExists", () => {
|
||||
it('should return true if key exists in object', () => {
|
||||
let zero = {};
|
||||
let one = {
|
||||
"a": 1,
|
||||
"b": "foo"
|
||||
};
|
||||
let notset = "";
|
||||
expect(valueInObject(zero, "")).toEqual(false);
|
||||
expect(objectValueExists(zero, "")).toEqual(false);
|
||||
expect(valueInObject(one, 1)).toEqual(true);
|
||||
expect(objectValueExists(one, 1)).toEqual(true);
|
||||
expect(valueInObject(one, "foo")).toEqual(true);
|
||||
expect(objectValueExists(one, "foo")).toEqual(true);
|
||||
expect(valueInObject(one, "bar")).toEqual(false);
|
||||
expect(objectValueExists(one, "bar")).toEqual(false);
|
||||
expect(valueInObject(notset, "")).toEqual(false);
|
||||
expect(objectValueExists(notset, "")).toEqual(false);
|
||||
});
|
||||
});
|
||||
|
||||
// deepCopyFunction
|
||||
describe("deepCopyFunction", () => {
|
||||
it('should deep copy an object', () => {
|
||||
let one = {
|
||||
"a": 1,
|
||||
"b": "foo"
|
||||
};
|
||||
let new_object = deepCopyFunction(one);
|
||||
expect(new_object).toStrictEqual(one);
|
||||
});
|
||||
});
|
||||
|
||||
// __END__
|
||||
@@ -19,10 +19,11 @@ import {
|
||||
}); */
|
||||
|
||||
describe("randomIdF", () => {
|
||||
it('Should create a 10 character long random id', () => {
|
||||
it('Should create a 10 or 11 character long random id', () => {
|
||||
let rand_id = randomIdF();
|
||||
expect(rand_id).lengthOf(11);
|
||||
expect(rand_id).match(/^[a-z0-9]{11}$/);
|
||||
expect(rand_id.length).toBeGreaterThanOrEqual(10);
|
||||
expect(rand_id.length).toBeLessThanOrEqual(11);
|
||||
expect(rand_id).match(/^[a-z0-9]{10,11}$/);
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user