diff --git a/src/utils/tests/assert.js b/src/utils/tests/assert.js new file mode 100644 index 0000000000..cef48dcbd5 --- /dev/null +++ b/src/utils/tests/assert.js @@ -0,0 +1,42 @@ +import assert from "../assert.js"; + +let testAssertMessageHead, testAssertMessage; + +describe("assert", () => { + beforeEach(() => { + testAssertMessageHead = "Assertion failure: "; + testAssertMessage = "Test assert.js Message"; + }); + + describe("when isDevelopment and the condition is truthy", () => { + it("does not throw an Error", () => { + expect(() => { + assert(true, testAssertMessage); + }).not.toThrow(); + }); + }); + + describe("when isDevelopment and the condition is falsy", () => { + it("throws an Error displaying the passed message", () => { + expect(() => { + assert(false, testAssertMessage); + }).toThrow(new Error(testAssertMessageHead + testAssertMessage)); + }); + }); + + describe("when not isDevelopment", () => { + beforeEach(() => { + process.env.NODE_ENV = "production"; + }); + + afterEach(() => { + delete process.env.NODE_ENV; + }); + + it("does not throw an Error", () => { + expect(() => { + assert(false, testAssertMessage); + }).not.toThrow(); + }); + }); +});