Presupuestador_web/shared/lib/contexts/common/domain/entities/Quantity.test.ts
2024-04-23 17:29:38 +02:00

81 lines
2.5 KiB
TypeScript

import { Quantity } from "./Quantity"; // Asegúrate de importar correctamente la clase Quantity.
describe("Quantity Value Object", () => {
// Prueba la creación de una cantidad válida.
it("Should create a valid quantity (number)", () => {
const validQuantity = Quantity.create(5);
expect(validQuantity.isSuccess).toBe(true);
expect(validQuantity.object.toNumber()).toBe(5);
});
it("Should create a valid quantity (string)", () => {
const validQuantity = Quantity.create("99");
expect(validQuantity.isSuccess).toBe(true);
expect(validQuantity.object.toNumber()).toBe(99);
});
it("Should create a valid quantity (null)", () => {
const validQuantity = Quantity.create(null);
expect(validQuantity.isSuccess).toBe(true);
expect(validQuantity.object.isNull).toBeTruthy();
});
// Prueba la creación de una cantidad nula.
it("Should create a valid null quantity", () => {
const nullQuantity = Quantity.create(null);
expect(nullQuantity.isSuccess).toBe(true);
expect(nullQuantity.object.isNull()).toBe(true);
});
// Prueba la creación de una cantidad válida a partir de una cadena.
it("Should create a valid quantity from string", () => {
const validQuantityFromString = Quantity.create("10");
expect(validQuantityFromString.isSuccess).toBe(true);
expect(validQuantityFromString.object.toNumber()).toBe(10);
});
// Prueba la creación de una cantidad con una cadena no válida.
it("Should fail to create quantity from invalid string", () => {
const invalidQuantityFromString = Quantity.create("invalid");
expect(invalidQuantityFromString.isFailure).toBe(true);
});
// Prueba la conversión a número.
it("Should convert to number", () => {
const quantity = Quantity.create(7).object;
const result = quantity.toNumber();
expect(result).toBe(7);
});
// Prueba la conversión a cadena.
it("Should convert to string", () => {
const quantity = Quantity.create(15).object;
const result = quantity.toString();
expect(result).toBe("15");
});
// Prueba la operación de incremento.
it("Should increment quantity", () => {
const quantity = Quantity.create(5).object;
const incrementedQuantity = quantity.increment(3).object;
expect(incrementedQuantity.toNumber()).toBe(8);
});
// Prueba la operación de decremento.
it("Should decrement quantity", () => {
const quantity = Quantity.create(10).object;
const decrementedQuantity = quantity.decrement(4).object;
expect(decrementedQuantity.toNumber()).toBe(6);
});
});