-/* 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
});