Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: fix jest config and refactor imports to absolute imports #31

Merged
merged 1 commit into from
Oct 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@ module.exports = {
transform: {
'^.+\\.[jt]sx?$': [
'ts-jest',
// {
// isolatedModules: true,
// },
],
},
moduleNameMapper: {
'src/(.*)': '<rootDir>/src/$1',
'tests/(.*)': '<rootDir>/tests/$1'
},
setupFiles: ['jest-date-mock']
};
2 changes: 1 addition & 1 deletion src/configuration/driving/REST/express/app.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import express from 'express';
import carRentalsQueryRouter from '../../../../driving/REST/express/routes/query/carRentals';
import carRentalsQueryRouter from 'src/driving/REST/express/routes/query/carRentals';

/**
* Creates and returns an instance of express.
Expand Down
10 changes: 5 additions & 5 deletions src/configuration/injection/containers/repositories/inMemory.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import {container} from 'tsyringe';
import InMemoryCarReadRepository from '../../../../driven/repositories/inMemory/car/read';
import UnitOfWork from '../../../../driven/repositories/inMemory/common/unitOfWork';
import InMemoryCarRentalReadRepository from '../../../../driven/repositories/inMemory/carRental/read';
import InMemoryCarRentalWriteRepository from '../../../../driven/repositories/inMemory/carRental/write';
import InMemoryTransactionManagerProxy from '../../../../driven/repositories/inMemory/common/transactions/proxy';
import InMemoryCarReadRepository from 'src/driven/repositories/inMemory/car/read';
import UnitOfWork from 'src/driven/repositories/inMemory/common/unitOfWork';
import InMemoryCarRentalReadRepository from 'src/driven/repositories/inMemory/carRental/read';
import InMemoryCarRentalWriteRepository from 'src/driven/repositories/inMemory/carRental/write';
import InMemoryTransactionManagerProxy from 'src/driven/repositories/inMemory/common/transactions/proxy';

/**
* Configures tsyringe to use inMemory repositories.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import {container} from 'tsyringe';
import TypeORMCarRentalReadRepository from '../../../../driven/repositories/typeorm/carRental/read';
import TypeORMCarRentalReadRepository from 'src/driven/repositories/typeorm/carRental/read';

/**
* Configures tsyringe to use typeORM repositories.
Expand Down
10 changes: 5 additions & 5 deletions src/core/useCases/carRental/rentACar/handler.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import {v4} from 'uuid';
import CarRentalDTO from '../../../domain/carRental/dto';
import CarRentalDTO from 'src/core/domain/carRental/dto';
import RentACarCommand from './types/command';
import CarReadRepositoryInterface from '../../../domain/car/interfaces/repositories/read';
import CarRentalWriteRepositoryInterface from '../../../domain/carRental/interfaces/repositories/write';
import CarRental from '../../../domain/carRental/model';
import TransactionManagerInterface from '../../../domain/common/interfaces/transactionManager';
import CarReadRepositoryInterface from 'src/core/domain/car/interfaces/repositories/read';
import CarRentalWriteRepositoryInterface from 'src/core/domain/carRental/interfaces/repositories/write';
import CarRental from 'src/core/domain/carRental/model';
import TransactionManagerInterface from 'src/core/domain/common/interfaces/transactionManager';

/**
* Use case class to rent a car for a customer.
Expand Down
4 changes: 2 additions & 2 deletions src/core/useCases/carRental/retrieveACarRental/handler.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import CarRentalDTO from '../../../domain/carRental/dto';
import CarRentalDTO from 'src/core/domain/carRental/dto';
import RetrieveACarRentalQuery from './types/query';
import CarRentalReadRepositoryInterface from '../../../domain/carRental/interfaces/repositories/read';
import CarRentalReadRepositoryInterface from 'src/core/domain/carRental/interfaces/repositories/read';

/**
* Use case class to retrieve a car rental.
Expand Down
8 changes: 4 additions & 4 deletions src/driven/repositories/inMemory/car/read.ts
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import 'reflect-metadata';
import {inject, injectable} from 'tsyringe';
import _ from 'lodash';
import Car from '../../../../core/domain/car/model';
import Car from 'src/core/domain/car/model';
import UnitOfWork from '../common/unitOfWork';
import CarReadRepositoryInterface from '../../../../core/domain/car/interfaces/repositories/read';
import CarReadRepositoryInterface from 'src/core/domain/car/interfaces/repositories/read';
import InMemoryCar from './car.entity';
import InMemoryCarRental from '../carRental/carRental.entity';
import CarModel from '../../../../core/domain/carModel/model';
import CarModel from 'src/core/domain/carModel/model';
import InMemoryCarModel from '../carModel/carModel.entity';
import UnavailableCarError from '../../../../core/domain/car/errors/unavailable';
import UnavailableCarError from 'src/core/domain/car/errors/unavailable';

@injectable()
export default class InMemoryCarReadRepository implements CarReadRepositoryInterface {
Expand Down
8 changes: 4 additions & 4 deletions src/driven/repositories/inMemory/carRental/read.ts
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import 'reflect-metadata';
import _ from 'lodash';
import {inject, injectable} from 'tsyringe';
import CarRentalReadRepositoryInterface from '../../../../core/domain/carRental/interfaces/repositories/read';
import CarRental from '../../../../core/domain/carRental/model';
import CarRentalReadRepositoryInterface from 'src/core/domain/carRental/interfaces/repositories/read';
import CarRental from 'src/core/domain/carRental/model';
import UnitOfWork from '../common/unitOfWork';
import Car from '../../../../core/domain/car/model';
import Car from 'src/core/domain/car/model';
import InMemoryCarRental from './carRental.entity';
import CarModel from '../../../../core/domain/carModel/model';
import CarModel from 'src/core/domain/carModel/model';
import InMemoryCarModel from '../carModel/carModel.entity';

@injectable()
Expand Down
4 changes: 2 additions & 2 deletions src/driven/repositories/inMemory/carRental/write.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import {inject, injectable} from 'tsyringe';
import UnitOfWork from '../common/unitOfWork';
import CarRentalWriteRepositoryInterface from '../../../../core/domain/carRental/interfaces/repositories/write';
import CarRentalDTO from '../../../../core/domain/carRental/dto';
import CarRentalWriteRepositoryInterface from 'src/core/domain/carRental/interfaces/repositories/write';
import CarRentalDTO from 'src/core/domain/carRental/dto';

@injectable()
export default class InMemoryCarRentalWriteRepository implements CarRentalWriteRepositoryInterface {
Expand Down
4 changes: 2 additions & 2 deletions src/driven/repositories/inMemory/common/transactions/proxy.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import {inject, singleton} from 'tsyringe';
import TransactionManagerInterface from '../../../../../core/domain/common/interfaces/transactionManager';
import TransactionManagerInterface from 'src/core/domain/common/interfaces/transactionManager';
import {UnitOfWorkOriginatorInterface} from '../unitOfWork';
import InMemoryTransactionManager from './manager';
import TransactionInterface from '../../../../../core/domain/common/interfaces/transaction';
import TransactionInterface from 'src/core/domain/common/interfaces/transaction';

/**
* Transaction manager proxy that can be used by the system's core.
Expand Down
8 changes: 4 additions & 4 deletions src/driven/repositories/typeorm/carRental/read.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import CarRentalReadRepositoryInterface from '../../../../core/domain/carRental/interfaces/repositories/read';
import CarRental from '../../../../core/domain/carRental/model';
import Car from '../../../../core/domain/car/model';
import CarModel from '../../../../core/domain/carModel/model';
import CarRentalReadRepositoryInterface from 'src/core/domain/carRental/interfaces/repositories/read';
import CarRental from 'src/core/domain/carRental/model';
import Car from 'src/core/domain/car/model';
import CarModel from 'src/core/domain/carModel/model';
import {TypeORMCarRental} from '../entities';
import {inject, singleton} from 'tsyringe';
import {DataSource} from 'typeorm';
Expand Down
2 changes: 1 addition & 1 deletion src/driven/repositories/typeorm/entities/carRental.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import {BaseEntity, Column, Entity, OneToOne, PrimaryColumn, JoinColumn} from 'typeorm';
import {TypeORMCar, TypeORMCustomer} from "./index";
import {TypeORMCar, TypeORMCustomer} from './index';

@Entity()
export default class TypeORMCarRental extends BaseEntity {
Expand Down
6 changes: 3 additions & 3 deletions src/driving/REST/express/routes/query/carRentals.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
import {container} from 'tsyringe';
import {Request, Response, Router} from 'express';
import RetrieveACarRental from '../../../../../core/useCases/carRental/retrieveACarRental/handler';
import CarRentalView from "../../../../views/carRental/base";
import CarRentalPresenter from "../../../../presenters/carRental/base";
import RetrieveACarRental from 'src/core/useCases/carRental/retrieveACarRental/handler';
import CarRentalView from 'src/driving/views/carRental/base';
import CarRentalPresenter from 'src/driving/presenters/carRental/base';

const router = Router();

Expand Down
4 changes: 2 additions & 2 deletions src/driving/presenters/carRental/base.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import CarRentalView from '../../views/carRental/base';
import CarRentalDTO from '../../../core/domain/carRental/dto';
import CarRentalView from 'src/driving/views/carRental/base';
import CarRentalDTO from 'src/core/domain/carRental/dto';

/**
* Base presenter for car rental views.
Expand Down
2 changes: 1 addition & 1 deletion tests/configuration/containers/utils.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import {container} from 'tsyringe';
import DateParser from '../../utils/dateParser';
import DateParser from 'tests/utils/dateParser';

/**
* Provides tsyringe with testing utilities, such as date parsers.
Expand Down
24 changes: 12 additions & 12 deletions tests/e2e/REST/express/carRental/query/retrieveCarRental.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@ import {advanceTo} from 'jest-date-mock';
import supertest from 'supertest';
import express from 'express';
import http from 'http';
import createApp from '../../../../../../src/configuration/driving/REST/express/app';
import CarRentalView from '../../../../../../src/driving/views/carRental/base';
import DateParser from '../../../../../utils/dateParser';
import useTestingUtilities from '../../../../../configuration/containers/utils';
import createApp from 'src/configuration/driving/REST/express/app';
import CarRentalView from 'src/driving/views/carRental/base';
import DateParser from 'tests/utils/dateParser';
import useTestingUtilities from 'tests/configuration/containers/utils';
import {startServer} from '../../utils/setup';
import useTypeORMRepositories from '../../../../../../src/configuration/injection/containers/repositories/typeorm';
import TypeORMCustomerFactory from '../../../../../integration/typeorm/seeding/factories/customer';
import TypeORMCarModelFactory from '../../../../../integration/typeorm/seeding/factories/carModel';
import TypeORMCarFactory from '../../../../../integration/typeorm/seeding/factories/car';
import TypeORMCarRentalFactory from '../../../../../integration/typeorm/seeding/factories/carRental';
import useAppDataSource from "../../../../../../src/configuration/injection/containers/database";
import {runDataSourceBeforeEachOps} from "../../../../../integration/typeorm/utils/setup";
import {runDataSourceAfterEachOps} from "../../../../../integration/typeorm/utils/tearDown";
import useTypeORMRepositories from 'src/configuration/injection/containers/repositories/typeorm';
import TypeORMCustomerFactory from 'tests/integration/typeorm/seeding/factories/customer';
import TypeORMCarModelFactory from 'tests/integration/typeorm/seeding/factories/carModel';
import TypeORMCarFactory from 'tests/integration/typeorm/seeding/factories/car';
import TypeORMCarRentalFactory from 'tests/integration/typeorm/seeding/factories/carRental';
import useAppDataSource from 'src/configuration/injection/containers/database';
import {runDataSourceBeforeEachOps} from 'tests/integration/typeorm/utils/setup';
import {runDataSourceAfterEachOps} from 'tests/integration/typeorm/utils/tearDown';


describe.each([
Expand Down
25 changes: 12 additions & 13 deletions tests/integration/typeorm/carRental/query/read.test.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
import 'reflect-metadata';
import {container} from 'tsyringe';
import {v4} from 'uuid';
import {DataSource} from 'typeorm';
import {advanceTo} from 'jest-date-mock';
import useTypeORMRepositories from '../../../../../src/configuration/injection/containers/repositories/typeorm';
import useAppDataSource from '../../../../../src/configuration/injection/containers/database';
import DateParser from '../../../../utils/dateParser';
import useTestingUtilities from '../../../../configuration/containers/utils';
import TypeORMCarRentalReadRepository from '../../../../../src/driven/repositories/typeorm/carRental/read';
import CarRentalDTO from '../../../../../src/core/domain/carRental/dto';
import TypeORMCarRentalFactory from '../../seeding/factories/carRental';
import TypeORMCustomerFactory from '../../seeding/factories/customer';
import TypeORMCarFactory from '../../seeding/factories/car';
import TypeORMCarModelFactory from '../../seeding/factories/carModel';
import {runDataSourceBeforeEachOps} from '../../utils/setup';
import {runDataSourceAfterEachOps} from '../../utils/tearDown';
import useTypeORMRepositories from 'src/configuration/injection/containers/repositories/typeorm';
import useAppDataSource from 'src/configuration/injection/containers/database';
import DateParser from 'tests/utils/dateParser';
import useTestingUtilities from 'tests/configuration/containers/utils';
import TypeORMCarRentalReadRepository from 'src/driven/repositories/typeorm/carRental/read';
import CarRentalDTO from 'src/core/domain/carRental/dto';
import TypeORMCarRentalFactory from 'tests/integration/typeorm/seeding/factories/carRental';
import TypeORMCustomerFactory from 'tests/integration/typeorm/seeding/factories/customer';
import TypeORMCarFactory from 'tests/integration/typeorm/seeding/factories/car';
import TypeORMCarModelFactory from 'tests/integration/typeorm/seeding/factories/carModel';
import {runDataSourceBeforeEachOps} from 'tests/integration/typeorm/utils/setup';
import {runDataSourceAfterEachOps} from 'tests/integration/typeorm/utils/tearDown';

describe.each([
{
Expand Down
2 changes: 1 addition & 1 deletion tests/integration/typeorm/seeding/factories/car.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import {container} from 'tsyringe';
import {DataSource} from 'typeorm';
import {v4} from 'uuid';
import {FactorizedAttrs, Factory} from '@jorgebodega/typeorm-factory';
import {TypeORMCar} from '../../../../../src/driven/repositories/typeorm/entities';
import {TypeORMCar} from 'src/driven/repositories/typeorm/entities';

export default class TypeORMCarFactory extends Factory<TypeORMCar> {
protected entity = TypeORMCar;
Expand Down
2 changes: 1 addition & 1 deletion tests/integration/typeorm/seeding/factories/carModel.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import {container} from 'tsyringe';
import {DataSource} from 'typeorm';
import {v4} from 'uuid';
import {FactorizedAttrs, Factory} from '@jorgebodega/typeorm-factory';
import {TypeORMCarModel} from '../../../../../src/driven/repositories/typeorm/entities';
import {TypeORMCarModel} from 'src/driven/repositories/typeorm/entities';

export default class TypeORMCarModelFactory extends Factory<TypeORMCarModel> {
protected entity = TypeORMCarModel;
Expand Down
2 changes: 1 addition & 1 deletion tests/integration/typeorm/seeding/factories/carRental.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import {container} from 'tsyringe';
import {DataSource} from 'typeorm';
import {v4} from 'uuid';
import {FactorizedAttrs, Factory} from '@jorgebodega/typeorm-factory';
import {TypeORMCar, TypeORMCarRental, TypeORMCustomer} from '../../../../../src/driven/repositories/typeorm/entities';
import {TypeORMCar, TypeORMCarRental, TypeORMCustomer} from 'src/driven/repositories/typeorm/entities';

export default class TypeORMCarRentalFactory extends Factory<TypeORMCarRental> {
protected entity = TypeORMCarRental;
Expand Down
2 changes: 1 addition & 1 deletion tests/integration/typeorm/seeding/factories/customer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import {container} from 'tsyringe';
import {DataSource} from 'typeorm';
import {v4} from 'uuid';
import {FactorizedAttrs, Factory} from '@jorgebodega/typeorm-factory';
import {TypeORMCustomer} from '../../../../../src/driven/repositories/typeorm/entities';
import {TypeORMCustomer} from 'src/driven/repositories/typeorm/entities';


export default class TypeORMCustomerFactory extends Factory<TypeORMCustomer> {
Expand Down
26 changes: 13 additions & 13 deletions tests/unit/carRental/command/rentACar.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,22 @@ import 'reflect-metadata';
import {v4} from 'uuid';
import {container} from 'tsyringe';
import {advanceTo} from 'jest-date-mock';
import DateParser from '../../../utils/dateParser';
import RentACar from '../../../../src/core/useCases/carRental/rentACar/handler';
import RentACarCommand from '../../../../src/core/useCases/carRental/rentACar/types/command';
import CarRentalDTO from '../../../../src/core/domain/carRental/dto';
import useInMemoryRepositories from '../../../../src/configuration/injection/containers/repositories/inMemory';
import {convertToNumericPrice} from '../../../utils/misc';
import useTestingUtilities from '../../../configuration/containers/utils';
import DateParser from 'tests/utils/dateParser';
import RentACar from 'src/core/useCases/carRental/rentACar/handler';
import RentACarCommand from 'src/core/useCases/carRental/rentACar/types/command';
import CarRentalDTO from 'src/core/domain/carRental/dto';
import useInMemoryRepositories from 'src/configuration/injection/containers/repositories/inMemory';
import {convertToNumericPrice} from 'tests/utils/misc';
import useTestingUtilities from 'tests/configuration/containers/utils';
import {
populateAvailableCarFromTestCase,
populateCarsAndCarRentalsFromTestCase
} from '../../utils/populateFromTestCase';
import {CarTestCaseEntry} from '../../utils/testCase.types';
import InMemoryCarRentalReadRepository from '../../../../src/driven/repositories/inMemory/carRental/read';
import TransactionInterface from '../../../../src/core/domain/common/interfaces/transaction';
import TransactionManagerInterface from '../../../../src/core/domain/common/interfaces/transactionManager';
import UnavailableCarError from '../../../../src/core/domain/car/errors/unavailable';
} from 'tests/unit/utils/populateFromTestCase';
import {CarTestCaseEntry} from 'tests/unit/utils/testCase.types';
import InMemoryCarRentalReadRepository from 'src/driven/repositories/inMemory/carRental/read';
import TransactionInterface from 'src/core/domain/common/interfaces/transaction';
import TransactionManagerInterface from 'src/core/domain/common/interfaces/transactionManager';
import UnavailableCarError from 'src/core/domain/car/errors/unavailable';

describe.each([
{
Expand Down
22 changes: 11 additions & 11 deletions tests/unit/carRental/query/retrieveACarRental.test.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
import 'reflect-metadata';
import {container} from 'tsyringe';
import {advanceTo} from 'jest-date-mock';
import useTestingUtilities from '../../../configuration/containers/utils';
import RetrieveACarRental from '../../../../src/core/useCases/carRental/retrieveACarRental/handler';
import DateParser from '../../../utils/dateParser';
import useInMemoryRepositories from '../../../../src/configuration/injection/containers/repositories/inMemory';
import TransactionManagerInterface from '../../../../src/core/domain/common/interfaces/transactionManager';
import TransactionInterface from '../../../../src/core/domain/common/interfaces/transaction';
import CarRentalDTO from '../../../../src/core/domain/carRental/dto';
import {convertToNumericPrice} from '../../../utils/misc';
import RetrieveACarRentalQuery from '../../../../src/core/useCases/carRental/retrieveACarRental/types/query';
import useTestingUtilities from 'tests/configuration/containers/utils';
import RetrieveACarRental from 'src/core/useCases/carRental/retrieveACarRental/handler';
import DateParser from 'tests/utils/dateParser';
import useInMemoryRepositories from 'src/configuration/injection/containers/repositories/inMemory';
import TransactionManagerInterface from 'src/core/domain/common/interfaces/transactionManager';
import TransactionInterface from 'src/core/domain/common/interfaces/transaction';
import CarRentalDTO from 'src/core/domain/carRental/dto';
import {convertToNumericPrice} from 'tests/utils/misc';
import RetrieveACarRentalQuery from 'src/core/useCases/carRental/retrieveACarRental/types/query';
import {populateCarModel, populateCarRental} from '../../utils/populate';
import UnitOfWork from '../../../../src/driven/repositories/inMemory/common/unitOfWork';
import InMemoryCarRentalReadRepository from '../../../../src/driven/repositories/inMemory/carRental/read';
import UnitOfWork from 'src/driven/repositories/inMemory/common/unitOfWork';
import InMemoryCarRentalReadRepository from 'src/driven/repositories/inMemory/carRental/read';

describe.each([
{
Expand Down
4 changes: 2 additions & 2 deletions tests/unit/utils/populate.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import UnitOfWork from '../../../src/driven/repositories/inMemory/common/unitOfWork';
import InMemoryCarModel from '../../../src/driven/repositories/inMemory/carModel/carModel.entity';
import UnitOfWork from 'src/driven/repositories/inMemory/common/unitOfWork';
import InMemoryCarModel from 'src/driven/repositories/inMemory/carModel/carModel.entity';

/**
* Populates the unit of work with a car.
Expand Down
6 changes: 3 additions & 3 deletions tests/unit/utils/populateFromTestCase.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import 'reflect-metadata';
import {v4} from 'uuid';
import {container} from 'tsyringe';
import UnitOfWork from '../../../src/driven/repositories/inMemory/common/unitOfWork';
import DateParser from '../../utils/dateParser';
import UnitOfWork from 'src/driven/repositories/inMemory/common/unitOfWork';
import DateParser from 'tests/utils/dateParser';
import {populateCar, populateCarModel, populateCarRental} from './populate';
import {CarTestCaseEntry} from './testCase.types';
import {convertToNumericPrice} from '../../utils/misc';
import {convertToNumericPrice} from 'tests/utils/misc';

/**
* Populates the system with an available car and its rentals,
Expand Down
Loading