add HTTP status enums, rework ErrorReponse proxy to use them
[squeep-api-dingus] / test / lib / enum.js
1 /* eslint-disable capitalized-comments */
2 /* eslint-env mocha */
3 'use strict';
4
5 const assert = require('assert');
6 const Enum = require('../../lib/enum');
7 const { mergeEnum } = require('../../lib/common');
8
9 describe('Enum', function () {
10
11 describe('ErrorResponse', function () {
12 it('covers broken', function () {
13 const result = Enum.ErrorResponse.notPresent;
14 const expected = {
15 statusCode: 500,
16 errorMessage: 'Internal Server Error',
17 details: ['undefined error response \'notPresent\''],
18 };
19 assert.deepStrictEqual(result, expected);
20 });
21 it('covers success', function () {
22 const result = Enum.ErrorResponse.Forbidden;
23 const expected = {
24 statusCode: 403,
25 errorMessage: 'Forbidden',
26 };
27 assert.deepStrictEqual(result, expected);
28 });
29 it('can be merged', function () {
30 const NewResponse = { statusCode: 444, errorMessage: 'stuff' };
31 const localErr = mergeEnum(Enum.ErrorResponse, { NewResponse });
32 const newResult = localErr.NewResponse;
33 assert.deepStrictEqual(newResult, NewResponse);
34 const oldResult = localErr.NotFound;
35 assert.deepStrictEqual(oldResult, { statusCode: 404, errorMessage: 'Not Found' });
36 const missingResult = localErr.Wrong;
37 assert.deepStrictEqual(missingResult, {
38 statusCode: 500,
39 errorMessage: 'Internal Server Error',
40 details: ['undefined error response \'Wrong\''],
41 });
42 });
43 }); // ErrorResponse
44
45 });