import {Injectable} from '@angular/core'; import {} from 'jest'; import { {{#definitions}}{{name}}{{^last}}, {{/last}}{{/definitions}} } from '../../models'; export class {{controllerName}}ServiceSpy { {{#methods}} public {{&methodName}}Mock: jest.Mock<{{&returnType}}, [{{#parameters}}{{typescriptType}}{{^last}}, {{/last}}{{/parameters}}]> = jest.fn<{{&returnType}}, [{{#parameters}}{{typescriptType}}{{^last}}, {{/last}}{{/parameters}}]>( () => {{#returnTypeIsVoid}}{}{{/returnTypeIsVoid}}{{^returnTypeIsVoid}}this._{{&methodName}}ResponseData{{/returnTypeIsVoid}} ); {{/methods}} {{#methods}}{{^returnTypeIsVoid}} public set{{&methodNamePascalCase}}Mock(func: ({{#parameters}}{{&camelCaseName}}{{^required}}?{{/required}}: {{typescriptType}}{{^last}}, {{/last}}{{/parameters}}) => {{&returnType}}): void { this.{{&methodName}}Mock = jest.fn<{{&returnType}}, [{{#parameters}}{{typescriptType}}{{^last}}, {{/last}}{{/parameters}}]>( ({{#parameters}}{{&camelCaseName}}{{^last}}, {{/last}}{{/parameters}}) => func({{#parameters}}{{&camelCaseName}}{{^last}}, {{/last}}{{/parameters}}) ); } {{/returnTypeIsVoid}}{{/methods}} {{#methods}}{{^returnTypeIsVoid}} public with{{&methodNamePascalCase}}(data: {{&returnType}}): {{controllerName}}ServiceSpy { this._{{&methodName}}ResponseData = data; return this; } {{/returnTypeIsVoid}}{{/methods}} constructor( {{#methods}}{{^returnTypeIsVoid}} private _{{&methodName}}ResponseData?: {{&returnType}}, {{/returnTypeIsVoid}}{{/methods}} ) {} {{#methods}} public {{&methodName}}: ({{#parameters}}{{&camelCaseName}}{{^required}}?{{/required}}: {{typescriptType}}{{^last}}, {{/last}}{{/parameters}}) => Promise<{{&returnType}}> = ({{#parameters}}{{&camelCaseName}}{{^last}}, {{/last}}{{/parameters}}) => Promise.resolve(this.{{&methodName}}Mock({{#parameters}}{{&camelCaseName}}{{^last}}, {{/last}}{{/parameters}})); {{/methods}} }