Skip to content

Instantly share code, notes, and snippets.

View paulodutra's full-sized avatar

Paulo Dutra paulodutra

View GitHub Profile
@paulodutra
paulodutra / task.service.spec.ts
Created August 12, 2024 02:05
Service test cases
import { Test, TestingModule } from '@nestjs/testing';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Connection } from 'typeorm';
import { TaskSeedService } from '../../infrastructure/database/seeds/task-seed-service';
import { TaskService } from './task.service';
import { Task } from '../../infrastructure/database/entities/task.entity';
import { DatabaseModule } from '@/infrastructure/database/database.module';
describe('TaskService', () => {
let service: TaskService;
@paulodutra
paulodutra / task.e2e-spec.ts
Created August 12, 2024 02:03
Task end to end tests
import { Test, TestingModule } from '@nestjs/testing';
import { HttpStatus, INestApplication } from '@nestjs/common';
import * as request from 'supertest';
import { Connection } from 'typeorm';
import { ModulesModule } from '@/modules/modules.module';
import { TaskSeedService } from '@/infrastructure/database/seeds/task-seed-service';
describe('TaskController (e2e)', () => {
let app: INestApplication;
let taskSeedService: TaskSeedService;
@paulodutra
paulodutra / task.controller.spec.ts
Created August 12, 2024 02:00
Controller default test
import { Test, TestingModule } from '@nestjs/testing';
import { TaskController } from './task.controller';
import { TaskService } from './task.service';
import { ModulesModule } from '../modules.module';
import { DatabaseModule } from '@/infrastructure/database/database.module';
describe('TaskController', () => {
let controller: TaskController;
beforeEach(async () => {
@paulodutra
paulodutra / modules.module.ts
Created August 12, 2024 01:59
Configuration of the module
import { Module } from '@nestjs/common';
import { DatabaseModule } from '@/infrastructure/database/database.module';
import { TaskController } from '@/modules/task/task.controller';
import { TaskService } from '@/modules/task/task.service';
@Module({
imports: [DatabaseModule.forRoot()],
controllers: [TaskController],
providers: [TaskService],
})
@paulodutra
paulodutra / task.service.ts
Created August 12, 2024 01:58
Method that called the repository
import { Injectable } from '@nestjs/common';
import { TaskRepository } from '@/infrastructure/database/repositories/task.repository';
@Injectable()
export class TaskService {
constructor(private readonly taskRepository: TaskRepository) {}
async execute(done: number) {
const data = await this.taskRepository.findByState(done);
if (data.length) {
@paulodutra
paulodutra / task.controller.ts
Created August 12, 2024 01:57
The method of controller that filter the tasks.
import { Controller, Get, Query, Req, Res, HttpStatus } from '@nestjs/common';
import type { Request, Response } from 'express';
import { TaskService } from '@/modules/task/task.service';
@Controller('tasks')
export class TaskController {
constructor(private readonly taskService: TaskService) {}
@Get()
async searchTaskByState(
@paulodutra
paulodutra / task.service.ts
Created August 7, 2024 22:31
Configuration of test module to run the migration and seed before run the test cases.
import { Test, TestingModule } from '@nestjs/testing';
import { TypeOrmModule } from '@nestjs/typeorm';
import { Connection } from 'typeorm';
import { TaskSeedService } from '../../infrastructure/database/seeds/task-seed-service';
import { TaskService } from './task.service';
import { Task } from '../../infrastructure/database/entities/task.entity';
import { DatabaseModule } from '../../infrastructure/database/database.module';
describe('TaskService', () => {
let service: TaskService;
@paulodutra
paulodutra / mysql.module.ts
Last active August 11, 2024 17:07
Mysql Database module with providers and exports
import { Module } from '@nestjs/common';
import { TypeOrmModule, TypeOrmModuleOptions } from '@nestjs/typeorm';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { mysqlDatabaseConfig } from '@/main/config/database/mysql-database.config';
import { TaskRepository } from '@/infrastructure/database/repositories/task.repository';
import { TaskSeedService } from '@/infrastructure/database/seeds/task-seed-service';
import { Task } from '@/infrastructure/database/entities/task.entity';
@Module({
imports: [
@paulodutra
paulodutra / in-memory.module.ts
Last active August 11, 2024 17:06
InMemory Database module with providers and exports
import { Module } from '@nestjs/common';
import { TypeOrmModule, TypeOrmModuleOptions } from '@nestjs/typeorm';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { inMemoryDatabaseConfig } from '@/main/config/database/in-memory-database.config';
import { TaskRepository } from '@/infrastructure/database/repositories/task.repository';
import { TaskSeedService } from '@/infrastructure/database/seeds/task-seed-service';
import { Task } from '@/infrastructure/database/entities/task.entity';
@Module({
imports: [
@paulodutra
paulodutra / task.repository.ts
Last active August 11, 2024 17:04
Task repository
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { Task } from '../entities/task.entity';
@Injectable()
export class TaskRepository {
constructor(
@InjectRepository(Task)
private repository: Repository<Task>,