Skip to content

Commit

Permalink
refactor(cli): flatten file arch
Browse files Browse the repository at this point in the history
  • Loading branch information
cdcabrera committed Jan 15, 2024
1 parent a05f696 commit f76c5c2
Show file tree
Hide file tree
Showing 17 changed files with 62 additions and 62 deletions.
2 changes: 1 addition & 1 deletion bin/cli.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const { existsSync } = require('fs');
const nodeWatch = require('node-watch');
const yargs = require('yargs');
const packageJson = require('../package');
const { logger } = require('../src/logger/configLogger');
const { logger } = require('../src/logger');
const { apiDocMock, OPTIONS } = require('../src');

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`BuildDocs should fail a build gracefully: fail 1`] = `[]`;
exports[`apidocBuild should fail a build gracefully: fail 1`] = `[]`;

exports[`BuildDocs should handle additional response content types: html mock 1`] = `
exports[`apidocBuild should handle additional response content types: html mock 1`] = `
{
"error": undefined,
"filename": "html.js",
Expand All @@ -17,7 +17,7 @@ exports[`BuildDocs should handle additional response content types: html mock 1`
}
`;

exports[`BuildDocs should handle additional response content types: svg mock 1`] = `
exports[`apidocBuild should handle additional response content types: svg mock 1`] = `
{
"error": undefined,
"filename": "svg.js",
Expand All @@ -32,7 +32,7 @@ exports[`BuildDocs should handle additional response content types: svg mock 1`]
}
`;

exports[`BuildDocs should setup api docs and create a predictable output: setupDocs 1`] = `
exports[`apidocBuild should setup api docs and create a predictable output: setupDocs 1`] = `
{
"error": "{"examples":[{"title":"Error-Response:","content":"HTTP/1.1 400 OK\\n{\\n \\"error\\": \\"test\\"\\n}","type":"json"}]}",
"filename": "test.js",
Expand Down
7 changes: 7 additions & 0 deletions src/__tests__/__snapshots__/apidocConfig.test.js.snap
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`apidocConfig should parse custom settings and return an object 1`] = `
{
"delayResponse": "3000",
}
`;
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`ParseApi return a 401 specific example: parseAuthExample 1`] = `
exports[`apidocParse return a 401 specific example: parseAuthExample 1`] = `
{
"content": "HTTP/1.1 401 Unauthorized
{
Expand All @@ -12,27 +12,27 @@ exports[`ParseApi return a 401 specific example: parseAuthExample 1`] = `
}
`;

exports[`ParseApi should force a response, or a general example: exampleResponse.fallback 1`] = `
exports[`apidocParse should force a response, or a general example: exampleResponse.fallback 1`] = `
{
"content": "Success",
"status": 200,
"type": "text",
}
`;

exports[`ParseApi should force a response, or a general example: exampleResponse.forcedStatus.200 1`] = `
exports[`apidocParse should force a response, or a general example: exampleResponse.forcedStatus.200 1`] = `
{
"status": 200,
}
`;

exports[`ParseApi should force a response, or a general example: exampleResponse.forcedStatus.400 1`] = `
exports[`apidocParse should force a response, or a general example: exampleResponse.forcedStatus.400 1`] = `
{
"status": 400,
}
`;

exports[`ParseApi should parse type and status examples: parseStatus.success.delete 1`] = `
exports[`apidocParse should parse type and status examples: parseStatus.success.delete 1`] = `
[
{
"content": "HTTP/1.1 200 OK
Expand All @@ -47,7 +47,7 @@ exports[`ParseApi should parse type and status examples: parseStatus.success.del
]
`;

exports[`ParseApi should parse type and status examples: parseStatus.success.get 1`] = `
exports[`apidocParse should parse type and status examples: parseStatus.success.get 1`] = `
[
{
"content": "HTTP/1.1 200 OK
Expand All @@ -62,7 +62,7 @@ exports[`ParseApi should parse type and status examples: parseStatus.success.get
]
`;

exports[`ParseApi should return specific properties: specific properties 1`] = `
exports[`apidocParse should return specific properties: specific properties 1`] = `
[
"exampleApiDocResponse",
"exampleResponse",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`BuildApi should build a response with specific properties: buildResponse 1`] = `
exports[`buildApiResponse should build a response with specific properties: buildResponse 1`] = `
{
"appResponses": [
{
Expand All @@ -13,7 +13,7 @@ exports[`BuildApi should build a response with specific properties: buildRespons
}
`;

exports[`BuildApi should build a response with specific properties: buildResponse callback 1`] = `
exports[`buildApiResponse should build a response with specific properties: buildResponse callback 1`] = `
[
[
"Cache-Control",
Expand All @@ -29,15 +29,15 @@ exports[`BuildApi should build a response with specific properties: buildRespons
]
`;

exports[`BuildApi should build specific headers: buildRequestHeaders.request.headers 1`] = `
exports[`buildApiResponse should build specific headers: buildRequestHeaders.request.headers 1`] = `
{
"Access-Control-Allow-Credentials": true,
"Access-Control-Allow-Methods": "GET, PUT, POST, DELETE, HEAD, OPTIONS, PATCH",
"Access-Control-Allow-Origin": "*",
}
`;

exports[`BuildApi should build specific headers: buildRequestHeaders.request.preflight 1`] = `
exports[`buildApiResponse should build specific headers: buildRequestHeaders.request.preflight 1`] = `
{
"Access-Control-Allow-Credentials": true,
"Access-Control-Allow-Headers": "x-test-header",
Expand All @@ -47,7 +47,7 @@ exports[`BuildApi should build specific headers: buildRequestHeaders.request.pre
}
`;

exports[`BuildApi should parse custom mock api settings: parseCustomMockSettings 1`] = `
exports[`buildApiResponse should parse custom mock api settings: parseCustomMockSettings 1`] = `
{
"delay": 2000,
"forceStatus": 401,
Expand All @@ -56,7 +56,7 @@ exports[`BuildApi should parse custom mock api settings: parseCustomMockSettings
}
`;

exports[`BuildApi should parse malformed mock api settings and provide fallbacks: parseCustomMockSettings.delayResponse.malformed 1`] = `
exports[`buildApiResponse should parse malformed mock api settings and provide fallbacks: parseCustomMockSettings.delayResponse.malformed 1`] = `
{
"delay": 1000,
"forceStatus": undefined,
Expand All @@ -65,7 +65,7 @@ exports[`BuildApi should parse malformed mock api settings and provide fallbacks
}
`;

exports[`BuildApi should parse malformed mock api settings and provide fallbacks: parseCustomMockSettings.forceStatus.malformed 1`] = `
exports[`buildApiResponse should parse malformed mock api settings and provide fallbacks: parseCustomMockSettings.forceStatus.malformed 1`] = `
{
"delay": undefined,
"forceStatus": 200,
Expand All @@ -74,7 +74,7 @@ exports[`BuildApi should parse malformed mock api settings and provide fallbacks
}
`;

exports[`BuildApi should parse random mock api settings: parseCustomMockSettings.randomError 1`] = `
exports[`buildApiResponse should parse random mock api settings: parseCustomMockSettings.randomError 1`] = `
{
"delay": undefined,
"forceStatus": undefined,
Expand All @@ -83,7 +83,7 @@ exports[`BuildApi should parse random mock api settings: parseCustomMockSettings
}
`;

exports[`BuildApi should parse random mock api settings: parseCustomMockSettings.randomSuccess 1`] = `
exports[`buildApiResponse should parse random mock api settings: parseCustomMockSettings.randomSuccess 1`] = `
{
"delay": undefined,
"forceStatus": undefined,
Expand All @@ -92,14 +92,14 @@ exports[`BuildApi should parse random mock api settings: parseCustomMockSettings
}
`;

exports[`BuildApi should return a mock mime type and parsed content: parseContentAndType 1`] = `
exports[`buildApiResponse should return a mock mime type and parsed content: parseContentAndType 1`] = `
{
"content": ""{\\n \\"foo\\": \\"hello\\",\\n \\"bar\\": \\"world\\"\\n}"",
"contentType": "application/json",
}
`;

exports[`BuildApi should return a mock mime type and parsed content: parseContentAndType.fallback 1`] = `
exports[`buildApiResponse should return a mock mime type and parsed content: parseContentAndType.fallback 1`] = `
{
"content": "{
"foo": "hello",
Expand All @@ -109,7 +109,7 @@ exports[`BuildApi should return a mock mime type and parsed content: parseConten
}
`;

exports[`BuildApi should return a mock mime type and parsed content: parseContentAndType.passthrough 1`] = `
exports[`buildApiResponse should return a mock mime type and parsed content: parseContentAndType.passthrough 1`] = `
{
"content": "{
"foo": "hello",
Expand All @@ -119,21 +119,21 @@ exports[`BuildApi should return a mock mime type and parsed content: parseConten
}
`;

exports[`BuildApi should return a mock mime type and parsed content: parseContentAndType.svg 1`] = `
exports[`buildApiResponse should return a mock mime type and parsed content: parseContentAndType.svg 1`] = `
{
"content": "<lorem><ipsum dolor="sit" /></lorem>",
"contentType": "image/svg+xml",
}
`;

exports[`BuildApi should return a mock mime type and parsed content: parseContentAndType.xml 1`] = `
exports[`buildApiResponse should return a mock mime type and parsed content: parseContentAndType.xml 1`] = `
{
"content": "<lorem><ipsum dolor="sit" /></lorem>",
"contentType": "text/xml",
}
`;

exports[`BuildApi should return specific properties: specific properties 1`] = `
exports[`buildApiResponse should return specific properties: specific properties 1`] = `
[
"buildResponse",
"buildRequestHeaders",
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
const { setupDocs } = require('../buildDocs');
const { OPTIONS } = require('../../global');
const { setupDocs } = require('../apidocBuild');
const { OPTIONS } = require('../global');

describe('BuildDocs', () => {
describe('apidocBuild', () => {
it('should have specific defined properties', () => {
expect(setupDocs()).toBeDefined();
});
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const { parse, path, getGroup, method } = require('../configDocs');
const { parse, path, getGroup, method } = require('../apidocConfig');

describe('ConfigDocs', () => {
describe('apidocConfig', () => {
it('should have specific defined properties', () => {
expect(parse).toBeDefined();
expect(path).toBeDefined();
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
const parseApi = require('../parseApi');
const { exampleResponse, parseAuthExample, parseStatus } = parseApi;
const apidocParse = require('../apidocParse');
const { exampleResponse, parseAuthExample, parseStatus } = apidocParse;

describe('ParseApi', () => {
describe('apidocParse', () => {
it('should return specific properties', () => {
expect(Object.keys(parseApi)).toMatchSnapshot('specific properties');
expect(Object.keys(apidocParse)).toMatchSnapshot('specific properties');
});

it('should force a response, or a general example', () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
const buildApi = require('../buildApi');
const { buildRequestHeaders, buildResponse, getContentAndType, getCustomMockSettings } = buildApi;
const buildApiResponse = require('../buildApiResponse');
const { buildRequestHeaders, buildResponse, getContentAndType, getCustomMockSettings } = buildApiResponse;

describe('BuildApi', () => {
describe('buildApiResponse', () => {
it('should return specific properties', () => {
expect(Object.keys(buildApi)).toMatchSnapshot('specific properties');
expect(Object.keys(buildApiResponse)).toMatchSnapshot('specific properties');
});

it('should build specific headers', () => {
Expand Down
8 changes: 4 additions & 4 deletions src/docs/buildDocs.js → src/apidocBuild.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const apidoc = require('apidoc');
const { logger } = require('../logger/configLogger');
const { OPTIONS } = require('../global');
const { logger } = require('./logger');
const { OPTIONS } = require('./global');

/**
* Build ApiDoc documentation.
Expand All @@ -27,10 +27,10 @@ const setupDocs = ({ apiDocBaseConfig, watchPath: src, docsPath: dest, silent }
try {
const { data } = apidoc.createDoc(apiDocsConfig);
const updatedResult = JSON.parse(data);
logger.info('buildDocs.read.apiJsonFile');
logger.info('apidocBuild.read.apiJsonFile');
return updatedResult;
} catch (e) {
logger.error(`buildDocs.apiDoc.createDoc[${e.message}]`);
logger.error(`apidocBuild.apiDoc.createDoc[${e.message}]`);
}

return [];
Expand Down
File renamed without changes.
4 changes: 2 additions & 2 deletions src/api/parseApi.js → src/apidocParse.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
const { logger } = require('../logger/configLogger');
const { memo } = require('../global');
const { logger } = require('./logger');
const { memo } = require('./global');

/**
* Return a 401 specific example.
Expand Down
6 changes: 3 additions & 3 deletions src/api/buildApi.js → src/buildApiResponse.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const { logger } = require('../logger/configLogger');
const { exampleApiDocResponse } = require('./parseApi');
const { memo } = require('../global');
const { logger } = require('./logger');
const { exampleApiDocResponse } = require('./apidocParse');
const { memo } = require('./global');

/**
* Parse custom mock settings.
Expand Down
7 changes: 0 additions & 7 deletions src/docs/__tests__/__snapshots__/configDocs.test.js.snap

This file was deleted.

2 changes: 1 addition & 1 deletion src/global.js
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ const apiDocBaseConfig = {
dryRun: process.env.NODE_ENV === 'test',
silent: process.env.NODE_ENV === 'test',
parsers: {
apimock: join(__dirname, './docs/configDocs.js')
apimock: join(__dirname, './apidocConfig.js')
}
};

Expand Down
6 changes: 3 additions & 3 deletions src/index.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
const express = require('express');
const { createHttpTerminator } = require('http-terminator');
const { OPTIONS } = require('./global');
const { logger } = require('./logger/configLogger');
const { setupDocs } = require('./docs/buildDocs');
const { buildRequestHeaders, buildResponse } = require('./api/buildApi');
const { logger } = require('./logger');
const { setupDocs } = require('./apidocBuild');
const { buildRequestHeaders, buildResponse } = require('./buildApiResponse');
const CACHE = { app: null, httpTerminator: null };

/**
Expand Down
4 changes: 2 additions & 2 deletions src/logger/configLogger.js → src/logger.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ const { colorize, combine, timestamp, printf } = format;
*
* @type {{ error: Function, info: Function, warn: Function }}
*/
const configLogger = createLogger({
const logger = createLogger({
format: combine(
colorize(),
timestamp({
Expand All @@ -18,4 +18,4 @@ const configLogger = createLogger({
silent: process.env.NODE_ENV === 'test'
});

module.exports = { logger: configLogger };
module.exports = { logger };

0 comments on commit f76c5c2

Please sign in to comment.