import { expectResult, getMakeSut, getMakeRules } from './helpers'; describe('Integration - String Tests', () => { const makeSut = getMakeSut('string'); const makeRule = getMakeRules('match'); test('if match is an array, should allow only strings included in it', () => { const rules = makeRule(['a', 'b', 'c']); const { sut } = makeSut(rules); expectResult(sut.validate('a')).toBeValid(); expectResult(sut.validate('b')).toBeValid(); expectResult(sut.validate('x')).toBeInvalid(); expectResult(sut.validate('ab')).toBeInvalid(); expectResult(sut.validate('batata')).toBeInvalid(); }); test('if match is a pattern, should allow only strings matching it', () => { const rules = makeRule(/^b.+a$/); const { sut } = makeSut(rules); expectResult(sut.validate('batata')).toBeValid(); expectResult(sut.validate('baa')).toBeValid(); expectResult(sut.validate(`b${'lorem ipsum'}a`)).toBeValid(); expectResult(sut.validate('ba')).toBeInvalid(); expectResult(sut.validate('abatata')).toBeInvalid(); expectResult(sut.validate('batatat')).toBeInvalid(); }); });