From 49c369759fbdf7c858fb91ab11a2046f21e41d98 Mon Sep 17 00:00:00 2001 From: Atharva Rajurkar Date: Sun, 18 Sep 2022 21:23:29 -0500 Subject: [PATCH] Added unit tests --- .../browserCommunicationTypes.test.js | 22 +++++++++++++ src/tests/lodashTest/isFunction.test.js | 28 +++++++++++++++++ src/tests/lodashTest/isObjectLike.test.js | 31 +++++++++++++++++++ src/tests/lodashTest/isPlainObject.test.js | 27 ++++++++++++++++ src/tests/lodashTest/isString.test.js | 30 ++++++++++++++++++ src/tests/run.js | 5 +++ 6 files changed, 143 insertions(+) create mode 100644 src/tests/dataTest/browserCommunicationTypes.test.js create mode 100644 src/tests/lodashTest/isFunction.test.js create mode 100644 src/tests/lodashTest/isObjectLike.test.js create mode 100644 src/tests/lodashTest/isPlainObject.test.js create mode 100644 src/tests/lodashTest/isString.test.js diff --git a/src/tests/dataTest/browserCommunicationTypes.test.js b/src/tests/dataTest/browserCommunicationTypes.test.js new file mode 100644 index 00000000..d5fd1a15 --- /dev/null +++ b/src/tests/dataTest/browserCommunicationTypes.test.js @@ -0,0 +1,22 @@ +import "https://unpkg.com/mocha@5.2.0/mocha.js"; /* globals mocha */ +import "https://unpkg.com/chai@4.1.2/chai.js"; /* globals chai */ + +import * as BrowserCommunicationTypes from "/common/modules/data/BrowserCommunicationTypes.js"; + + +describe("common data: BrowserCommunicationTypes", function () { + describe("COMMUNICATION_MESSAGE_TYPE", function () { + it("is there", function () { + chai.assert.exists(BrowserCommunicationTypes.COMMUNICATION_MESSAGE_TYPE); + chai.assert.isNotEmpty(BrowserCommunicationTypes.COMMUNICATION_MESSAGE_TYPE); + }); + + it("is object", function () { + chai.assert.isObject(BrowserCommunicationTypes.COMMUNICATION_MESSAGE_TYPE); + }); + + it("is frozen", function () { + chai.assert.isFrozen(BrowserCommunicationTypes.COMMUNICATION_MESSAGE_TYPE); + }); + }); +}); \ No newline at end of file diff --git a/src/tests/lodashTest/isFunction.test.js b/src/tests/lodashTest/isFunction.test.js new file mode 100644 index 00000000..943417c5 --- /dev/null +++ b/src/tests/lodashTest/isFunction.test.js @@ -0,0 +1,28 @@ +import "https://unpkg.com/mocha@5.2.0/mocha.js"; /* globals mocha */ +import "https://unpkg.com/chai@4.1.2/chai.js"; /* globals chai */ + +import isFunction from "/common/modules/lodash/isFunction.js"; + +describe("common lodash: isFunction", function () { + + it("method is a function", function () { + /** + * Dummy function + * @returns {number}. + */ + function Foo() { + return 1 + 2; + } + chai.assert.isTrue(isFunction(Foo)); + }); + + it("null is not function", function () { + chai.assert.isFalse(isFunction(null)); + }); + + it("list is not function", function () { + chai.assert.isFalse(isFunction([1,2,3])); + }); + + +}); diff --git a/src/tests/lodashTest/isObjectLike.test.js b/src/tests/lodashTest/isObjectLike.test.js new file mode 100644 index 00000000..f37a3466 --- /dev/null +++ b/src/tests/lodashTest/isObjectLike.test.js @@ -0,0 +1,31 @@ +import "https://unpkg.com/mocha@5.2.0/mocha.js"; /* globals mocha */ +import "https://unpkg.com/chai@4.1.2/chai.js"; /* globals chai */ + +import isObjectLike from "/common/modules/lodash/isObjectLike.js"; + +describe("common lodash: isObjectLike", function () { + + it("method is like object", function () { + /** + * Dummy function + * @returns {number}. + */ + function Foo() { + return 1 + 2; + } + chai.assert.isTrue(isObjectLike(new Foo)); + }); + + it("null is not object", function () { + chai.assert.isFalse(isObjectLike(null)); + }); + + it("list is like object", function () { + chai.assert.isTrue(isObjectLike([1,2,3])); + }); + + it("JSON is like object", function () { + chai.assert.isTrue(isObjectLike({})); + }); + +}); diff --git a/src/tests/lodashTest/isPlainObject.test.js b/src/tests/lodashTest/isPlainObject.test.js new file mode 100644 index 00000000..4d5bebd5 --- /dev/null +++ b/src/tests/lodashTest/isPlainObject.test.js @@ -0,0 +1,27 @@ +import "https://unpkg.com/mocha@5.2.0/mocha.js"; /* globals mocha */ +import "https://unpkg.com/chai@4.1.2/chai.js"; /* globals chai */ + +import isPlainObject from "/common/modules/lodash/isPlainObject.js"; + +describe("common lodash: isPlainObject", function () { + + it("method is not plain object", function () { + /** + * Dummy function + * @returns {number}. + */ + function Foo() { + return 1 + 2; + } + chai.assert.isFalse(isPlainObject(new Foo)); + }); + + it("list is not plain object", function () { + chai.assert.isFalse(isPlainObject([1, 2, 3])); + }); + + it("JSON object is plain object", function () { + chai.assert.isTrue(isPlainObject({ "x": 0, "y": 0 })); + }); + +}); diff --git a/src/tests/lodashTest/isString.test.js b/src/tests/lodashTest/isString.test.js new file mode 100644 index 00000000..6cdb92b0 --- /dev/null +++ b/src/tests/lodashTest/isString.test.js @@ -0,0 +1,30 @@ +import "https://unpkg.com/mocha@5.2.0/mocha.js"; /* globals mocha */ +import "https://unpkg.com/chai@4.1.2/chai.js"; /* globals chai */ + +import isString from "/common/modules/lodash/isString.js"; + +describe("common lodash: isString", function () { + + it("character is a String", function () { + chai.assert.isTrue(isString('testCharacters')); + }); + + it("method is not a String", function () { + /** + * Dummy function + * @returns {number}. + */ + function Foo() { + return 1 + 2; + } + chai.assert.isFalse(isString(Foo)); + }); + + it("null is not a String", function () { + chai.assert.isFalse(isString(null)); + }); + + it("number is not a String", function () { + chai.assert.isFalse(isString(12)); + }); +}); diff --git a/src/tests/run.js b/src/tests/run.js index e7f72828..c23ce8ee 100644 --- a/src/tests/run.js +++ b/src/tests/run.js @@ -3,6 +3,11 @@ import "https://unpkg.com/mocha@5.2.0/mocha.js"; /* globals mocha */ /* tests */ import "./dataTest/globalConsts.test.js"; import "./dataTest/messageLevel.test.js"; +import "./dataTest/browserCommunicationTypes.test.js"; +import "./lodashTest/isPlainObject.test.js"; +import "./lodashTest/isObjectLike.test.js"; +import "./lodashTest/isFunction.test.js"; +import "./lodashTest/isString.test.js"; import "/common/modules/RandomTips/tests/dataTest/tips.test.js"; import "/common/modules/AddonSettings/tests/dataTest/defaultSettings.test.js"; import "./colors.test.js";