Skip to content
This repository has been archived by the owner on Sep 12, 2023. It is now read-only.

Commit

Permalink
feat: add eslint rules
Browse files Browse the repository at this point in the history
Co-authored-by: Eric Lim <eric.lim@zenika.com>
Co-authored-by: Thomas Evano <thomas.evano@pix.fr>
  • Loading branch information
3 people committed Jul 6, 2023
1 parent 2da7d3e commit 7b880b3
Show file tree
Hide file tree
Showing 11 changed files with 58 additions and 55 deletions.
3 changes: 3 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"project": "./tsconfig.json"
},
"rules": {
"object-curly-spacing": ["error", "always"],
"quotes": [
"error",
"single",
Expand All @@ -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",
Expand Down
10 changes: 5 additions & 5 deletions src/lib/controllers/create-audit-log.controller.ts
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down
4 changes: 2 additions & 2 deletions src/lib/domain/usecases/usecases.ts
Original file line number Diff line number Diff line change
@@ -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);

Expand Down
14 changes: 7 additions & 7 deletions src/lib/index.ts
Original file line number Diff line number Diff line change
@@ -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(() => {}, () => {});
Expand All @@ -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<void> {
logger.info(`Received signal: ${signal}.`);
Expand Down
Original file line number Diff line number Diff line change
@@ -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<AuditLog> {
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);
}
}

Expand Down
2 changes: 1 addition & 1 deletion src/lib/routes.ts
Original file line number Diff line number Diff line change
@@ -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
Expand Down
20 changes: 10 additions & 10 deletions src/lib/server.ts
Original file line number Diff line number Diff line change
@@ -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({
Expand All @@ -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<void> {
await this._server.start()
throw new Error()
await this._server.start();
throw new Error();
}

async stop(options?: {timeout: number} | undefined): Promise<void> {
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...');
}
}
2 changes: 1 addition & 1 deletion src/scripts/database/drop-database.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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();

Expand Down
Original file line number Diff line number Diff line change
@@ -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;
Expand All @@ -25,7 +25,7 @@ describe('Acceptance | Controllers | CreateAuditLogController', () => {

afterEach(async function (): Promise<void> {
await server.stop();
})
});

describe('when request is valid', () => {
test('returns a created http status', async () => {
Expand Down
Original file line number Diff line number Diff line change
@@ -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 () => {
Expand All @@ -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({
Expand All @@ -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);
});
});
});
14 changes: 7 additions & 7 deletions src/tests/unit/domain/usecases/create-audit-log.test.ts
Original file line number Diff line number Diff line change
@@ -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 () {
Expand All @@ -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);
});
});
})
});

0 comments on commit 7b880b3

Please sign in to comment.