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
JavaScript
"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();
});
});