domain-objects
Version:
A simple, convenient way to represent domain objects, leverage domain knowledge, and add runtime validation in your code base.
33 lines • 1.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const DomainEntity_1 = require("../instantiation/DomainEntity");
const DomainLiteral_1 = require("../instantiation/DomainLiteral");
const getUniqueIdentifierSlug_1 = require("./getUniqueIdentifierSlug");
describe('getUniqueIdentifierSlug', () => {
it('should look reasonable for a literal', () => {
class Address extends DomainLiteral_1.DomainLiteral {
}
const address = new Address({
street: '123 Elm Street',
city: 'Austin',
state: 'TX',
postal: '78704',
});
const slug = (0, getUniqueIdentifierSlug_1.getUniqueIdentifierSlug)(address);
expect(slug).toEqual('Address.Austin.78704.TX.123ElmStreet.e3e858b5d0a134d71970398358e8601acd48a3c7b06f17beadf56319242e180c');
});
it('should look reasonable for an entity', () => {
class RocketShip extends DomainEntity_1.DomainEntity {
}
RocketShip.unique = ['serialNumber'];
RocketShip.updatable = ['fuelQuantity', 'passengers'];
const ship = new RocketShip({
serialNumber: 'SN5',
fuelQuantity: 9001,
passengers: 21,
});
const slug = (0, getUniqueIdentifierSlug_1.getUniqueIdentifierSlug)(ship);
expect(slug).toEqual('RocketShip.SN5.88b02544d3a4e5eb8e803136027931f0d54cb5d6f77ec0e8906afe61928b8046');
});
});
//# sourceMappingURL=getUniqueIdentifierSlug.test.js.map