diff --git a/.eslintrc.json b/.eslintrc.json index 14b20c9..baaef8e 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -10,6 +10,7 @@ "project": "./tsconfig.json" }, "rules": { + "object-curly-spacing": ["error", "always"], "quotes": [ "error", "single", @@ -18,6 +19,8 @@ "allowTemplateLiterals": true } ], + "semi": ["error", "always"], + "semi-style": ["error", "last"], "@typescript-eslint/consistent-type-definitions": "off", "@typescript-eslint/strict-boolean-expressions": [ "error", diff --git a/src/lib/controllers/create-audit-log.controller.ts b/src/lib/controllers/create-audit-log.controller.ts index 51ad7ef..618e07d 100644 --- a/src/lib/controllers/create-audit-log.controller.ts +++ b/src/lib/controllers/create-audit-log.controller.ts @@ -1,10 +1,10 @@ -import {type Request, type ResponseObject, type ResponseToolkit, type ServerRoute} from '@hapi/hapi'; +import { type Request, type ResponseObject, type ResponseToolkit, type ServerRoute } from '@hapi/hapi'; import Joi from 'joi'; -import {type CreateAuditLog} from '../domain/usecases/create-audit-log'; -import {type AuditLog} from '../domain/models/audit-log.ts'; -import {createAuditLogUseCase} from '../domain/usecases/usecases.ts'; -import {AuditLogActionTypes, AuditLogClientTypes, AuditLogRoleTypes} from '../domain/models/models.definition.ts'; +import { type CreateAuditLog } from '../domain/usecases/create-audit-log'; +import { type AuditLog } from '../domain/models/audit-log.ts'; +import { createAuditLogUseCase } from '../domain/usecases/usecases.ts'; +import { AuditLogActionTypes, AuditLogClientTypes, AuditLogRoleTypes } from '../domain/models/models.definition.ts'; export class CreateAuditLogController { diff --git a/src/lib/domain/usecases/usecases.ts b/src/lib/domain/usecases/usecases.ts index b7e26fe..5cbf074 100644 --- a/src/lib/domain/usecases/usecases.ts +++ b/src/lib/domain/usecases/usecases.ts @@ -1,5 +1,5 @@ -import {CreateAuditLog} from './create-audit-log.ts'; -import {auditLogPostgresRepository} from '../../infrastructure/repositories/audit-log-postgres-repository.ts'; +import { CreateAuditLog } from './create-audit-log.ts'; +import { auditLogPostgresRepository } from '../../infrastructure/repositories/audit-log-postgres-repository.ts'; const createAuditLogUseCase = new CreateAuditLog(auditLogPostgresRepository); diff --git a/src/lib/index.ts b/src/lib/index.ts index 4b1f54f..9789d73 100644 --- a/src/lib/index.ts +++ b/src/lib/index.ts @@ -1,5 +1,5 @@ -import {HapiServer} from './server.ts'; -import {logger} from './infrastructure/logger.ts'; +import { HapiServer } from './server.ts'; +import { logger } from './infrastructure/logger.ts'; process.on('SIGTERM', (): void => { _exitOnSignal('SIGTERM').then(() => {}, () => {}); @@ -8,15 +8,15 @@ process.on('SIGINT', () => { _exitOnSignal('SIGINT').then(() => {}, () => {}); }); -const hapiServer: HapiServer = new HapiServer() +const hapiServer: HapiServer = new HapiServer(); try { - await hapiServer.start() + await hapiServer.start(); logger.info(`Server started`); } catch (error: unknown) { - logger.error(`Error when launching server : `) - logger.error(error) - await hapiServer.stop() + logger.error(`Error when launching server : `); + logger.error(error); + await hapiServer.stop(); } async function _exitOnSignal(signal: string): Promise { logger.info(`Received signal: ${signal}.`); diff --git a/src/lib/infrastructure/repositories/audit-log-postgres-repository.ts b/src/lib/infrastructure/repositories/audit-log-postgres-repository.ts index a6be68d..42f9af5 100644 --- a/src/lib/infrastructure/repositories/audit-log-postgres-repository.ts +++ b/src/lib/infrastructure/repositories/audit-log-postgres-repository.ts @@ -1,12 +1,12 @@ import { AuditLog } from '../../domain/models/audit-log.ts'; import { type AuditLogRepository } from '../../domain/interfaces/audit-log-repository'; -import {knex} from '../../../db/knex-database-connection.ts'; +import { knex } from '../../../db/knex-database-connection.ts'; export class AuditLogPostgresRepository implements AuditLogRepository { async create(auditLog: AuditLog): Promise { - const [result] = await knex('audit-log').insert(auditLog).returning('*') + const [result] = await knex('audit-log').insert(auditLog).returning('*'); - return new AuditLog (result as AuditLog) + return new AuditLog (result as AuditLog); } } diff --git a/src/lib/routes.ts b/src/lib/routes.ts index 637f6a8..57143e0 100644 --- a/src/lib/routes.ts +++ b/src/lib/routes.ts @@ -1,4 +1,4 @@ -import {CREATE_AUDIT_LOG_ROUTE} from './controllers/create-audit-log.controller.ts'; +import { CREATE_AUDIT_LOG_ROUTE } from './controllers/create-audit-log.controller.ts'; export const ROUTES = [ CREATE_AUDIT_LOG_ROUTE diff --git a/src/lib/server.ts b/src/lib/server.ts index 8a0ff08..e8daaab 100644 --- a/src/lib/server.ts +++ b/src/lib/server.ts @@ -1,14 +1,14 @@ import { Server } from '@hapi/hapi'; import { config } from './config.ts'; -import {ROUTES} from './routes.ts'; -import {disconnect} from '../db/knex-database-connection.ts'; -import {logger} from './infrastructure/logger.ts'; +import { ROUTES } from './routes.ts'; +import { disconnect } from '../db/knex-database-connection.ts'; +import { logger } from './infrastructure/logger.ts'; const { port } = config; export class HapiServer { - private readonly _server: Server + private readonly _server: Server; constructor() { this._server = new Server({ @@ -28,24 +28,24 @@ export class HapiServer { isCaseSensitive: false, stripTrailingSlash: true, }, - }) + }); this._server.route(ROUTES); } get server(): Server { - return this._server + return this._server; } async start(): Promise { - await this._server.start() - throw new Error() + await this._server.start(); + throw new Error(); } async stop(options?: {timeout: number} | undefined): Promise { logger.info('Stopping HAPI server...'); - await this._server.stop(options) + await this._server.stop(options); logger.info('Closing connections to database...'); - await disconnect() + await disconnect(); logger.info('Exiting process...'); } } diff --git a/src/scripts/database/drop-database.ts b/src/scripts/database/drop-database.ts index c80f6df..fd207ff 100644 --- a/src/scripts/database/drop-database.ts +++ b/src/scripts/database/drop-database.ts @@ -2,7 +2,7 @@ import * as dotenv from 'dotenv'; import { logger } from '../../lib/infrastructure/logger.ts'; import { PGSQL_NON_EXISTENT_DATABASE_ERROR } from '../../lib/domain/errors.ts'; -import PgClient from '../../lib/infrastructure/pg-client.ts' +import PgClient from '../../lib/infrastructure/pg-client.ts'; dotenv.config(); diff --git a/src/tests/acceptance/controllers/create-audit-log.controller.test.ts b/src/tests/acceptance/controllers/create-audit-log.controller.test.ts index 6e27328..785827f 100644 --- a/src/tests/acceptance/controllers/create-audit-log.controller.test.ts +++ b/src/tests/acceptance/controllers/create-audit-log.controller.test.ts @@ -1,6 +1,6 @@ -import {afterEach, beforeEach, describe, expect, test} from 'vitest'; -import {HapiServer} from '../../../lib/server'; -import {type Server, type ServerInjectOptions,} from '@hapi/hapi'; +import { afterEach, beforeEach, describe, expect, test } from 'vitest'; +import { HapiServer } from '../../../lib/server'; +import { type Server, type ServerInjectOptions, } from '@hapi/hapi'; describe('Acceptance | Controllers | CreateAuditLogController', () => { let server: Server; @@ -25,7 +25,7 @@ describe('Acceptance | Controllers | CreateAuditLogController', () => { afterEach(async function (): Promise { await server.stop(); - }) + }); describe('when request is valid', () => { test('returns a created http status', async () => { diff --git a/src/tests/integration/infrastructure/repositories/audit-log-postgres-repository.test.ts b/src/tests/integration/infrastructure/repositories/audit-log-postgres-repository.test.ts index 5009abb..19145d9 100644 --- a/src/tests/integration/infrastructure/repositories/audit-log-postgres-repository.test.ts +++ b/src/tests/integration/infrastructure/repositories/audit-log-postgres-repository.test.ts @@ -1,18 +1,18 @@ -import {afterEach, describe, expect, test, beforeAll} from 'vitest'; -import {AuditLog} from '../../../../lib/domain/models/audit-log.ts'; -import {auditLogPostgresRepository} from '../../../../lib/infrastructure/repositories/audit-log-postgres-repository.ts'; -import {knex} from '../../../../db/knex-database-connection.ts'; +import { afterEach, describe, expect, test, beforeAll } from 'vitest'; +import { AuditLog } from '../../../../lib/domain/models/audit-log.ts'; +import { auditLogPostgresRepository } from '../../../../lib/infrastructure/repositories/audit-log-postgres-repository.ts'; +import { knex } from '../../../../db/knex-database-connection.ts'; describe('Integration | Repository | AuditLogPostgresRepository', () => { beforeAll(async() => { - await knex('audit-log').truncate() - }) + await knex('audit-log').truncate(); + }); afterEach(async() => { - await knex('audit-log').truncate() - }) + await knex('audit-log').truncate(); + }); describe('create', () => { test('creates new audit log', async () => { @@ -24,10 +24,10 @@ describe('Integration | Repository | AuditLogPostgresRepository', () => { targetUserId: '2', client: 'PIX_ADMIN', role: 'SUPER_ADMIN', - }) + }); // when - const result = await auditLogPostgresRepository.create(auditLog) + const result = await auditLogPostgresRepository.create(auditLog); // then const expectedResult = new AuditLog({ @@ -39,8 +39,8 @@ describe('Integration | Repository | AuditLogPostgresRepository', () => { client: 'PIX_ADMIN', role: 'SUPER_ADMIN', createdAt: result.createdAt - }) - expect(result).toEqual(expectedResult) - }) - }) -}) + }); + expect(result).toEqual(expectedResult); + }); + }); +}); diff --git a/src/tests/unit/domain/usecases/create-audit-log.test.ts b/src/tests/unit/domain/usecases/create-audit-log.test.ts index dd20da1..2340e09 100644 --- a/src/tests/unit/domain/usecases/create-audit-log.test.ts +++ b/src/tests/unit/domain/usecases/create-audit-log.test.ts @@ -1,7 +1,7 @@ -import {describe, expect, vi, test} from 'vitest'; -import {AuditLog} from '../../../../lib/domain/models/audit-log.ts'; -import {CreateAuditLog} from '../../../../lib/domain/usecases/create-audit-log.ts'; -import {type AuditLogRepository} from '../../../../lib/domain/interfaces/audit-log-repository.ts'; +import { describe, expect, vi, test } from 'vitest'; +import { AuditLog } from '../../../../lib/domain/models/audit-log.ts'; +import { CreateAuditLog } from '../../../../lib/domain/usecases/create-audit-log.ts'; +import { type AuditLogRepository } from '../../../../lib/domain/interfaces/audit-log-repository.ts'; describe('Unit | UseCases | CreateAuditLog', () => { describe('when an audit log is created', function () { @@ -26,14 +26,14 @@ describe('Unit | UseCases | CreateAuditLog', () => { create: vi.fn(async () => expectedAuditLog) }; - const createAuditLog: CreateAuditLog = new CreateAuditLog(auditLogRepository) + const createAuditLog: CreateAuditLog = new CreateAuditLog(auditLogRepository); // when - const createdAuditLog: AuditLog = await createAuditLog.execute(auditLog) + const createdAuditLog: AuditLog = await createAuditLog.execute(auditLog); // then expect(createdAuditLog).toEqual(expectedAuditLog); expect(auditLogRepository.create).toBeCalledWith(auditLog); }); }); -}) +});