Saltar al contenido
← Todos los ejercicios

El avatar que falla con un nombre vacío

TypeScript · Un componente de avatar en un panel de equipo · Casos límite · dificultad 1/3 · ~5 min

Un compañero de equipo le pidió al asistente de IA: "Escribe un helper initials(fullName) para el componente de avatar. Una palabra da una letra; dos o más palabras dan la primera letra de la primera y de la última palabra, siempre en mayúsculas. Añade un wrapper avatarInitials(user) que funcione con nuestros registros de usuario, donde firstName y lastName son opcionales, porque algunas cuentas se importaron desde un enlace de invitación que solo tenía un email."

El código llegó con tests, y los avatares se ven bien en el equipo de demo. El contrato que promete el docstring:

  • Las palabras se separan por espacios en blanco.
  • "Ada" da "A", "Ada King Lovelace" da "AL".
  • Un nombre vacío o formado solo por espacios en blanco da "", para que el componente pueda mostrar un placeholder.
  • avatarInitials acepta un registro al que le falte cualquiera de las dos partes del nombre.

Revísalo antes de que llegue a la página de miembros, que lista todas las cuentas, incluidas las importadas.

Repara el código hasta que pasen las pruebas ocultas.

code.ts

Pruebas visibles (pasan con el código tal como está)
import { describe, it, expect } from "@debunk/harness";
import { initials, avatarInitials } from "./code";

describe("initials", () => {
  it("takes the first letter of the first and last word", () => {
    expect(initials("Ada Lovelace")).toBe("AL");
    expect(initials("Ada King Lovelace")).toBe("AL");
  });

  it("uppercases a single-word name", () => {
    expect(initials("ada")).toBe("A");
  });

  it("avatarInitials joins first and last name", () => {
    expect(avatarInitials({ firstName: "Grace", lastName: "Hopper" })).toBe("GH");
  });
});