Funcionalidades
- Registro de libros y clientes
- Búsqueda por identificador
- Préstamo con validación de disponibilidad
- Devolución con validación del cliente
PROGRAMACIÓN · TYPESCRIPT · PRUEBAS
Sistema de gestión de biblioteca en TypeScript con reglas de préstamo confiables, pruebas automatizadas e integración continua.
borrowBook(customerId: number, bookId: number): string {
const customer = this.findCustomerById(customerId);
const book = this.findBookById(bookId);
if (customer && book && book.available) {
customer.borrowBook(bookId);
book.toggleAvailability();
return `${customer.name} successfully borrowed "${book.title}".`;
}
return `Borrowing failed.`;
}// 01 · LA MISIÓN
Library Management simula la operación de una biblioteca: registro de libros y clientes, préstamos y devoluciones. El reto principal era garantizar que el sistema nunca quedara en un estado inconsistente —por ejemplo, prestar un libro que ya está prestado o recibir la devolución de un libro que el cliente no tiene—. Para lograrlo apliqué programación orientada a objetos, cubrí cada operación con pruebas unitarias en Jest y configuré GitHub Actions para que las pruebas se ejecuten automáticamente con cada cambio. Proyecto desarrollado en el programa Computer Programmer de Lambton College, en Ontario (Canadá), bajo estándares profesionales de desarrollo, documentación y control de versiones.
// QUÉ SE CONSTRUYÓ
// CALIDAD
Un libro solo se presta si está disponible y solo se devuelve si el cliente lo tiene, con mensajes claros de éxito o error.
Pruebas unitarias para agregar, prestar y devolver libros, que verifican tanto la respuesta como el estado final.
Las pruebas se ejecutan sobre el código TypeScript y sobre el JavaScript compilado, para asegurar que la versión final se comporte igual.
GitHub Actions ejecuta las pruebas en cada push y pull request, guarda en caché las dependencias y conserva el reporte de cobertura.
// PRUEBAS
$ npm test PASS src/tests/addBook.test.ts PASS src/tests/borrowBook.test.ts PASS src/tests/returnBook.test.ts PASS dist/tests/addBook.test.js PASS dist/tests/borrowBook.test.js PASS dist/tests/returnBook.test.js Test Suites: 6 passed, 6 total Tests: 6 passed, 6 total
Resultado registrado en el repositorio (results.txt).
MISIÓN CUMPLIDA
¿Necesitas un sistema confiable para tu negocio?
Desarrollo software con pruebas automatizadas para que cada cambio llegue a producción con seguridad.