feat: add mock generation for DTOs, models, and repositories with corresponding templates

This commit is contained in:
didavila
2026-03-25 11:01:21 +01:00
parent a0a8ba28f5
commit 917cc3b9cf
12 changed files with 289 additions and 4 deletions

View 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}}

View 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}}

View 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}}

View 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}}

View 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}}

View 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}}