UNPKG

ddd-tool-kit

Version:

A development tool kit for using Domain Driven Design in your Web API Node.js

49 lines (48 loc) 2.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ip_value_object_1 = require("../../implementations/value-objects/ip/ip.value-object"); const session_entity_1 = require("../../implementations/entities/session/session.entity"); const verify_are_entities_util_1 = require("./verify-are-entities.util"); const entity_abstract_1 = require("../../abstract/entity/entity.abstract"); describe('verify-are-entities.util.spec', () => { it('should be return true if all array is entities', () => { const sessionIp = ip_value_object_1.IpValueObject.init({ value: '139.205.112.175' }) .result; const entities = [ session_entity_1.SessionEntity.init({ ip: sessionIp }).result, session_entity_1.SessionEntity.init({ ip: sessionIp }).result, session_entity_1.SessionEntity.init({ ip: sessionIp }).result, ]; const propNames = ['sessions']; const entity = { sessions: entities }; const areEntities = (0, verify_are_entities_util_1.verifyAreEntities)(propNames, entity); expect(entities[0]).toBeInstanceOf(entity_abstract_1.Entity); expect(entities[1]).toBeInstanceOf(entity_abstract_1.Entity); expect(entities[2]).toBeInstanceOf(entity_abstract_1.Entity); expect(areEntities).toBeTruthy(); }); it('should be return false if some prop name is not array', () => { const propNames = ['sessions']; const entity = { sessions: 'string' }; const areEntities = (0, verify_are_entities_util_1.verifyAreEntities)(propNames, entity); expect(areEntities).toBeFalsy(); }); it('should be return false if some is not instance of entity', () => { const invalidIp = ip_value_object_1.IpValueObject.init({ value: 'invalidIP' }) .result; const sessionIp = ip_value_object_1.IpValueObject.init({ value: '139.205.112.175' }) .result; const entities = [ session_entity_1.SessionEntity.init({ ip: sessionIp }).result, session_entity_1.SessionEntity.init({ ip: invalidIp }).result, session_entity_1.SessionEntity.init({ ip: sessionIp }).result, ]; const propNames = ['sessions']; const entity = { sessions: entities }; const areEntities = (0, verify_are_entities_util_1.verifyAreEntities)(propNames, entity); expect(entities[0]).toBeInstanceOf(entity_abstract_1.Entity); expect(entities[1]).not.toBeInstanceOf(entity_abstract_1.Entity); expect(entities[2]).toBeInstanceOf(entity_abstract_1.Entity); expect(areEntities).toBeFalsy(); }); });