PROGRAMACIÓN · TYPESCRIPT · PRUEBAS

Library Management

Sistema de gestión de biblioteca en TypeScript con reglas de préstamo confiables, pruebas automatizadas e integración continua.

src/services/Bookstore.ts
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.`;
}
Formación
Programa Computer Programmer · Lambton College
Año
2024
Rol
Desarrolladora
Calidad
Pruebas en Jest + integración continua

// 01 · LA MISIÓN

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Ó

Funcionalidades

  • Registro de libros y clientes
  • Búsqueda por identificador
  • Préstamo con validación de disponibilidad
  • Devolución con validación del cliente

Arquitectura

  • Modelos Book y Customer
  • Servicio Bookstore con la lógica de negocio
  • TypeScript compilado a JavaScript en dist/

// CALIDAD

Cómo se garantiza que funcione

01

Reglas de negocio claras

Un libro solo se presta si está disponible y solo se devuelve si el cliente lo tiene, con mensajes claros de éxito o error.

02

Pruebas por operación

Pruebas unitarias para agregar, prestar y devolver libros, que verifican tanto la respuesta como el estado final.

03

Código fuente y compilado

Las pruebas se ejecutan sobre el código TypeScript y sobre el JavaScript compilado, para asegurar que la versión final se comporte igual.

04

Integración continua

GitHub Actions ejecuta las pruebas en cada push y pull request, guarda en caché las dependencias y conserva el reporte de cobertura.

// PRUEBAS

Todas las pruebas aprobadas

npm test
$ 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

Resultados e impacto

¿Necesitas un sistema confiable para tu negocio?

Desarrollo software con pruebas automatizadas para que cada cambio llegue a producción con seguridad.