UNPKG

@hexadrop/value-object

Version:

Hexagonal architecture utils library

36 lines (32 loc) 1.25 kB
import { describe, expect, test } from 'bun:test'; import { EmptyStringValueError, InvalidStringValueError, InvalidStringValueTypeError, } from './string.value-object.error'; import StringValueObjectMother from './string.value-object.mother'; describe('StringValueObject', () => { describe('constructor()', () => { test('should instantiate', () => { const value = 'as'; const vo = StringValueObjectMother.create(value); const less = StringValueObjectMother.random(); expect(vo).toBeDefined(); expect(vo.value).toBe('as'); expect(vo.toString()).toBe('as'); expect(vo.isEqualsTo(less)).toBeFalsy(); }); test('should throw an error if arg is undefined', () => { const invalid = () => StringValueObjectMother.invalidWithUndefined(); expect(invalid).toThrow(new EmptyStringValueError()); }); test('should throw an error if arg has an invalid type', () => { const invalid = () => StringValueObjectMother.invalidWithNumber(); expect(invalid).toThrow(new InvalidStringValueTypeError()); }); test('should throw an error if arg is invalid value', () => { const invalid = () => StringValueObjectMother.invalidValue(); expect(invalid).toThrow(new InvalidStringValueError('melon')); }); }); });