feat: add mock generation for DTOs, models, and repositories with corresponding templates
This commit is contained in:
21
templates/api.repository.impl.mock.mustache
Normal file
21
templates/api.repository.impl.mock.mustache
Normal file
@@ -0,0 +1,21 @@
|
||||
{{#apiInfo}}
|
||||
{{#apis}}
|
||||
{{#operations}}
|
||||
import { MockService } from 'ng-mocks';
|
||||
import { of } from 'rxjs';
|
||||
|
||||
import { {{classname}}RepositoryImpl } from '@/data/repositories/{{classFilename}}.repository.impl';
|
||||
{{#returnImports}}
|
||||
import { mock{{classname}}Model } from '@/entities/models/{{classFilename}}.model.mock';
|
||||
{{/returnImports}}
|
||||
|
||||
export const mock{{classname}}RepositoryImpl = () =>
|
||||
MockService({{classname}}RepositoryImpl, {
|
||||
{{#operation}}
|
||||
{{nickname}}: () => of({{#isListContainer}}[mock{{returnBaseType}}Model()]{{/isListContainer}}{{^isListContainer}}{{#returnBaseType}}mock{{returnBaseType}}Model(){{/returnBaseType}}{{^returnBaseType}}undefined{{/returnBaseType}}{{/isListContainer}}),
|
||||
{{/operation}}
|
||||
});
|
||||
|
||||
{{/operations}}
|
||||
{{/apis}}
|
||||
{{/apiInfo}}
|
||||
21
templates/api.use-cases.mock.mustache
Normal file
21
templates/api.use-cases.mock.mustache
Normal file
@@ -0,0 +1,21 @@
|
||||
{{#apiInfo}}
|
||||
{{#apis}}
|
||||
{{#operations}}
|
||||
import { MockService } from 'ng-mocks';
|
||||
import { of } from 'rxjs';
|
||||
|
||||
import { {{classname}}UseCasesImpl } from '@/domain/use-cases/{{classFilename}}.use-cases.impl';
|
||||
{{#returnImports}}
|
||||
import { mock{{classname}}Model } from '@/entities/models/{{classFilename}}.model.mock';
|
||||
{{/returnImports}}
|
||||
|
||||
export const mock{{classname}}UseCasesImpl = () =>
|
||||
MockService({{classname}}UseCasesImpl, {
|
||||
{{#operation}}
|
||||
{{nickname}}: () => of({{#isListContainer}}[mock{{returnBaseType}}Model()]{{/isListContainer}}{{^isListContainer}}{{#returnBaseType}}mock{{returnBaseType}}Model(){{/returnBaseType}}{{^returnBaseType}}undefined{{/returnBaseType}}{{/isListContainer}}),
|
||||
{{/operation}}
|
||||
});
|
||||
|
||||
{{/operations}}
|
||||
{{/apis}}
|
||||
{{/apiInfo}}
|
||||
16
templates/dto.mock.mustache
Normal file
16
templates/dto.mock.mustache
Normal file
@@ -0,0 +1,16 @@
|
||||
{{#models}}
|
||||
{{#model}}
|
||||
{{#mockImports}}
|
||||
import { mock{{classname}}Dto } from './{{classFilename}}.dto.mock';
|
||||
{{/mockImports}}
|
||||
import { {{classname}}Dto } from './{{classFilename}}.dto';
|
||||
|
||||
export const mock{{classname}}Dto = (overrides: Partial<{{classname}}Dto> = {}): {{classname}}Dto => ({
|
||||
{{#vars}}
|
||||
{{name}}: {{{mockValue}}},
|
||||
{{/vars}}
|
||||
...overrides
|
||||
});
|
||||
|
||||
{{/model}}
|
||||
{{/models}}
|
||||
14
templates/model.mock.mustache
Normal file
14
templates/model.mock.mustache
Normal file
@@ -0,0 +1,14 @@
|
||||
{{#models}}
|
||||
{{#model}}
|
||||
import { {{classname}} } from './{{classFilename}}.model';
|
||||
import { {{classVarName}}Mapper } from '@/mappers/{{classFilename}}.mapper';
|
||||
import { mock{{classname}}Dto } from '@/dtos/{{classFilename}}.dto.mock';
|
||||
|
||||
export const mock{{classname}}Model = (overrides: Partial<{{classname}}> = {}): {{classname}} =>
|
||||
Object.assign(new {{classname}}(), {
|
||||
...{{classVarName}}Mapper(mock{{classname}}Dto()),
|
||||
...overrides
|
||||
});
|
||||
|
||||
{{/model}}
|
||||
{{/models}}
|
||||
20
templates/repository.provider.mock.mustache
Normal file
20
templates/repository.provider.mock.mustache
Normal file
@@ -0,0 +1,20 @@
|
||||
{{#apiInfo}}
|
||||
{{#apis}}
|
||||
{{#operations}}
|
||||
import { Provider } from '@angular/core';
|
||||
|
||||
import { {{constantName}}_REPOSITORY } from '@/domain/repositories/{{classFilename}}.repository.contract';
|
||||
import { mock{{classname}}RepositoryImpl } from '@/data/repositories/{{classFilename}}.repository.impl.mock';
|
||||
|
||||
export function mock{{classname}}Repository(): Provider[] {
|
||||
return [
|
||||
{
|
||||
provide: {{constantName}}_REPOSITORY,
|
||||
useFactory: () => mock{{classname}}RepositoryImpl()
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
{{/operations}}
|
||||
{{/apis}}
|
||||
{{/apiInfo}}
|
||||
20
templates/use-cases.provider.mock.mustache
Normal file
20
templates/use-cases.provider.mock.mustache
Normal file
@@ -0,0 +1,20 @@
|
||||
{{#apiInfo}}
|
||||
{{#apis}}
|
||||
{{#operations}}
|
||||
import { Provider } from '@angular/core';
|
||||
|
||||
import { {{constantName}}_USE_CASES } from '@/domain/use-cases/{{classFilename}}.use-cases.contract';
|
||||
import { mock{{classname}}UseCasesImpl } from '@/domain/use-cases/{{classFilename}}.use-cases.mock';
|
||||
|
||||
export function mock{{classname}}UseCases(): Provider[] {
|
||||
return [
|
||||
{
|
||||
provide: {{constantName}}_USE_CASES,
|
||||
useFactory: () => mock{{classname}}UseCasesImpl()
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
{{/operations}}
|
||||
{{/apis}}
|
||||
{{/apiInfo}}
|
||||
Reference in New Issue
Block a user