import { makeAllSchemaStubs } from '~/data/tests/stubs/make-all-schema-stub'; import { schemaTypes } from '~/domain'; import { ValidationBuilderAdapter } from './index'; const makeSut = () => { const stubs = { makeSchema: makeAllSchemaStubs(), }; const sut = new ValidationBuilderAdapter(stubs.makeSchema); return { sut, stubs }; }; describe('ValidationBuilder Adapter Test', () => { schemaTypes.forEach(type => { test(`property [ ${type} ] should be defined`, () => { const { sut } = makeSut(); const builder = sut.load(); expect(builder[type]).toBeDefined(); }); test(`property [ ${type} ] should be the output of makeSchemaBuilder.make('${type}')`, () => { const { sut, stubs } = makeSut(); jest.spyOn(stubs.makeSchema[type], 'make').mockReturnValueOnce(`valid-schema-of-type-${type}` as any); const builder = sut.load(); expect(builder[type]({})).toBe(`valid-schema-of-type-${type}`); }); }); });