perf: use O(1) queue implementation in async locking code
[e-mobility-charging-stations-simulator.git] / test / utils / CircularArrayTest.ts
index db1e529e8f0105082cc9defe26978478cc72b618..720ca68de3c4e006c7739ffed7f61f0f6523b70f 100644 (file)
@@ -1,7 +1,8 @@
+import { expect } from 'expect';
+
 import { CircularArray } from '../../src/utils/CircularArray';
-import expect from 'expect';
 
-describe('Circular array test suite', () => {
+describe('CircularArray test suite', () => {
   it('Verify that circular array can be instantiated', () => {
     const circularArray = new CircularArray();
     expect(circularArray).toBeInstanceOf(CircularArray);
@@ -9,7 +10,7 @@ describe('Circular array test suite', () => {
 
   it('Verify circular array default size at instance creation', () => {
     const circularArray = new CircularArray();
-    expect(circularArray.size).toBe(Number.MAX_SAFE_INTEGER);
+    expect(circularArray.size).toBe(1024);
   });
 
   it('Verify that circular array size can be set at instance creation', () => {
@@ -26,9 +27,17 @@ describe('Circular array test suite', () => {
     expect(circularArray.length).toBe(4);
   });
 
-  it('Verify that circular array size can\'t be negative at instance creation', () => {
+  it('Verify that circular array size is valid at instance creation', () => {
+    expect(() => new CircularArray(0.25)).toThrowError(
+      new TypeError('Invalid circular array size: 0.25 is not a safe integer')
+    );
     expect(() => new CircularArray(-1)).toThrowError(
-      new RangeError('Invalid circular array size')
+      new RangeError('Invalid circular array size: -1 < 0')
+    );
+    expect(() => new CircularArray(Number.MAX_SAFE_INTEGER + 1)).toThrowError(
+      new TypeError(
+        `Invalid circular array size: ${Number.MAX_SAFE_INTEGER + 1} is not a safe integer`
+      )
     );
   });
 
@@ -103,8 +112,16 @@ describe('Circular array test suite', () => {
   });
 
   it('Verify that circular array resize works as intended', () => {
+    expect(() => new CircularArray().resize(0.25)).toThrowError(
+      new TypeError('Invalid circular array size: 0.25 is not a safe integer')
+    );
     expect(() => new CircularArray().resize(-1)).toThrowError(
-      new RangeError('Invalid circular array size')
+      new RangeError('Invalid circular array size: -1 < 0')
+    );
+    expect(() => new CircularArray().resize(Number.MAX_SAFE_INTEGER + 1)).toThrowError(
+      new TypeError(
+        `Invalid circular array size: ${Number.MAX_SAFE_INTEGER + 1} is not a safe integer`
+      )
     );
     let circularArray = new CircularArray(5, 1, 2, 3, 4, 5);
     circularArray.resize(0);