Merge branch 'v2.1-dev' as v2.1.2
[squeep-api-dingus] / test / lib / enum.js
index 0a86ec59e1518c7e534aa49f5750a2fbb06060db..a9be982c60082a7ce14ec6d23c68f26ca05d3a19 100644 (file)
@@ -1,21 +1,43 @@
-/* eslint-disable capitalized-comments */
-/* eslint-env mocha */
 'use strict';
 
-const assert = require('assert');
+const assert = require('node:assert');
 const Enum = require('../../lib/enum');
+const { mergeEnum } = require('../../lib/common');
 
-
-describe('enum', function () {
+describe('Enum', function () {
 
   describe('ErrorResponse', function () {
-    it('covers default', function () {
+    it('covers broken', function () {
       const result = Enum.ErrorResponse.notPresent;
       const expected = {
-        errorMessage: 'undefined error response \'notPresent\'',
+        statusCode: 500,
+        errorMessage: 'Internal Server Error',
+        details: ['undefined error response \'notPresent\''],
+      };
+      assert.deepStrictEqual(result, expected);
+    });
+    it('covers success', function () {
+      const result = Enum.ErrorResponse.Forbidden;
+      const expected = {
+        statusCode: 403,
+        errorMessage: 'Forbidden',
       };
       assert.deepStrictEqual(result, expected);
     });
+    it('can be merged', function () {
+      const NewResponse = { statusCode: 444, errorMessage: 'stuff' };
+      const localErr = mergeEnum(Enum.ErrorResponse, { NewResponse });
+      const newResult = localErr.NewResponse;
+      assert.deepStrictEqual(newResult, NewResponse);
+      const oldResult = localErr.NotFound;
+      assert.deepStrictEqual(oldResult, { statusCode: 404, errorMessage: 'Not Found' });
+      const missingResult = localErr.Wrong;
+      assert.deepStrictEqual(missingResult, {
+        statusCode: 500,
+        errorMessage: 'Internal Server Error',
+        details: ['undefined error response \'Wrong\''],
+      });
+    });
   }); // ErrorResponse
 
 });